|
Fastest pickpockets in the world, and there's boatloads of them
Sin tack ear lol
Pressing the "Any" key may be continuate
|
|
|
|
|
Rome is that kind of city where you get amazed just by simply walking in the streets.
It is busy yes, but like every capital city.
Enjoy the city and the food (i recommend having a good "Matriciana" in Trastevere) and don't bother to give credit to all those saying that it is dangerous and crazy over there.
These old cliches are carried on by those who never got out from their teeny town and still believe in Santa Claus
Enjoy, i envy you
|
|
|
|
|
Never been, supposed to be amazing, I have only been over the border to Liguria, so I am envious right now.
Try a Pizza, and tell W::Balboos how good it is, he is really interested in Italian pizza.
|
|
|
|
|
My wife was there in July with a friend of ours, and had a great time. I only got to see video of it, but try to get in to see the Blue Grotto if you can. It's amazing. Get there early, boats fill up quickly.
Have fun!
|
|
|
|
|
I'll be honest. One of the things that attracts me to crafting software is the end-product. I also am not always the most patient guy in the world (except for with computers, surprisingly, lol). In any event, I'm not super into data structures, although I try desperately hard to be because I know how fundamental they are and I know how important to even just landing a nice job they can be.
But nevertheless, I'd rather spend 5 hours coding and have something to show, rather than re-create an intangible data structure that already exists in the standard library, just for the sake of it (or erm... class). Right now, the data structures are not my strong point and I've been getting a little turned off to programming by spending so many hours on such primitive parts.
Surely there must be others who have suffered this? Do you have any tips on keeping motivated to give up production code time to study data structures for a while? I'd much rather write unit tests and design patterns!
|
|
|
|
|
Getting the data structures right for an application is absolutely the most important part: they underpin everything else you are going to do.
There was a famous book about it: Algorithms Plus Data Structures Equals Programs (Prentice-Hall series in automatic computation): Amazon.co.uk: Niklaus Wirth: 9780130224187: Books[^] in which he introduced the world to Pascal - one of the first "modern" languages which felt "together" even if classes and OOPs were a long way in the future.
Get 'em wrong, and your whole app is full of clunky code, and bodges: get 'em right and the code flows well from that. Look at any code where someone decided that storing dates in text format in SQL, or comma separated lists instead of separated foreign keyed tables and you will see what I mean.
It's worth investing a good deal of time at the beginning of a project to get them worked out in detail - and being prepared to scrap them and start from scratch if you missed something important.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
OriginalGriff wrote: It's worth investing a good deal of time at the beginning of a project to get them worked out in detail - and being prepared to scrap them and start from scratch if you missed something important.
Oh... yes. You can bet on it.
Inherited project, performance bad as hell, too big to refactor, pain in ass to maintain.
New Project (started from scratch), 30% more data handling, 75% less memory allocation, 5 times faster, even the maintenance guy was able to follow it and was enthusiastic. Change Request on basic data unit, everything refactored in a Saturday.
In the PLC world, where there are still limits for everything, if the initial structure is good, the rest is mostly piece of cake.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
OriginalGriff wrote: Get 'em wrong, and your whole app is full of clunky code, and bodges: get 'em right and the code flows well from that. Look at any code where someone decided that storing dates in text format in SQL, or comma separated lists instead of separated foreign keyed tables and you will see what I mean.
You just described everything a major wrong with javascript
|
|
|
|
|
You should at least learn the basics of data structures so you know they exists and if needed you can find them and use them.
I assume that 90+% of the work done in programming use basic data structures defined in the std libraries; the other 10% is basically variation of existing data structures or very custom data structures to support a very specific problem.
I'd rather be phishing!
|
|
|
|
|
Because data structures hold half of the logic of any program. Get them wrong and the code starts becoming strange and convoluted: necessary data not available in places where it should have been, redundant data around (which may lead to partially updated data and very hard to find bugs), overly complex modules and functions whose only usefulness is passing structures around.
Worse if one gets the classes wrong. Classes must work on their data so what they hold and how they hold it is of paramount importance.
EDIT: I forgot mentioning algorithms and drivers. If you work on these you absolutely need proper data structures due to communication / protocolo / timings / space constraints. While most of the "modern" developing isn't done at this level (and it shows) those are still the backbone of everything we work on.
DURA LEX, SED LEX
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver
When I was six, there were no ones and zeroes - only zeroes. And not all of them worked. -- Ravi Bhavnani
|
|
|
|
|
den2k88 wrote: EDIT: I forgot mentioning algorithms and drivers. If you work on these you absolutely need proper data structures due to communication / protocolo / timings / space constraints. While most of the "modern" developing isn't done at this level (and it shows) those are still the backbone of everything we work on.
The kids should start with programming PLCs or microprocessors. Then they would know about the importance of such things.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
They should, even if processing power seems unlimited at the moment - after all 640kB of ram should be enough for anybody!
To stay on the consumer side, videogames are processing and memory hogs and they are a growing industry. Enter the Enterprise (not THAT Enterprise, the other) and you'll find yourself with barely the processing time to do anything beyond the basics, especially if on-the-fly analysis are to be taken on real time systems.
Of course these are fields of which the usual QA-abusing developer used to clunky messes of frameworks and interpret-virtualiz-clouding thingies ignore the very existance. And rookies, of course, but that's not their fault, it still takes 10 years to make 10 years of experience.
DURA LEX, SED LEX
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver
When I was six, there were no ones and zeroes - only zeroes. And not all of them worked. -- Ravi Bhavnani
|
|
|
|
|
den2k88 wrote: after all 640kB of ram should be enough for anybody! I am not that old... I already had 1024 Kb But still had to deal with 64 Kb DataBlocks and 1-byte counters for sequence steps (max 255 of whatever).
Edit: this[^] is the new version of my favorite one. I have used the previous model for some years and still 1 Mb RAM
den2k88 wrote: To stay on the consumer side, videogames are processing and memory hogs and they are a growing industry. Mostly due to graphics, special effects. Not necessarily due to careless programming.
den2k88 wrote: you'll find yourself with barely the processing time to do anything beyond the basics, especially if on-the-fly analysis are to be taken on real time systems. You know... C and C++ are obsolete
den2k88 wrote: the usual QA-abusing developer QA-abusing... what? Are you calling them developers? if you mean the !"%$"§(/&% morons wannabe programers (we are in the lounge, not the soapbox) visiting the QA section... they will need 100 years to have 10 years experience.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
modified 18-Nov-16 8:54am.
|
|
|
|
|
Nelek wrote: Mostly due to graphics, special effects. Physics, actually. Ballistic trajectories (and still many weapons are hitscan), obstacles interference, walking/jumping/running/swimming/flying calculations for NPCs and players. Then there is the AI and the generation/keeping in readily accessible memory huge sets of relevant environment variables and decision made by the player to adjust the entire world reactions.
I'm using as examples big open sandbox games like The Elder Scrolls, Fallout and The Witcher series, but even highly compartimented games like Mass Effect and Deus Ex have a lot of computations to make that aren't graphically related.
Quote: Not necessarily due to careless programming. I never said that, in fact gaming industry is one of the most demanding out there and careless developers usually last for very very short times. Still some games are careless developed / designed, in my mind Crysis series and the first The Witcher were excessively demanding despite being about the same quality of much less onerous games.
DURA LEX, SED LEX
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver
When I was six, there were no ones and zeroes - only zeroes. And not all of them worked. -- Ravi Bhavnani
|
|
|
|
|
If this is for class, and the instructor has specified the language, not much you can do besides slog through it.
However, if the instructor has NOT specified the language, then you could spice up your studies by trying to implement them in a new language! I'm mostly a C# and JS developer and I've been learning Data Structures on my own, but I'm writing mine in C++.
|
|
|
|
|
Funny, I have the opposite problem. Once I implement what I consider to be "fundamental", I can't bring myself to add gold plating such as a user interface.
Anyway, what initially drew me to data structures was the awesome things you can actually do with them, perhaps that can inspire you too.
|
|
|
|
|
I'd expect a software developer to know what data structure to use in which situation. I've known people who will "just use a vector" with no due consideration to anything else. I think it sucks to work with such careless/lazy people.
If someone doesn't have the common sense to choose an appropriate data structure, they'll not like working with me. If someone didn't know as much to make the right choice from a vector, unordered set, queue, stack, list, etc. then they need to urgently educate themselves.
In short, you don't need to implement every kind of data structure, but you should at least know which one to pick from the standard library.
|
|
|
|
|
Awesome. I think I just needed to find the right instruction source and implementation. I found a book that is now working for me and I'm finding it much more interesting/fun to implement the data structures in C++ than C# or Java, mainly due to how pointers work.
|
|
|
|
|
Good on you for accepting critical feedback and working on it! I don't come across people like you ever so often.
|
|
|
|
|
Thanks. And I appreciate your post. Sometimes I need a kick in the right direction, which is also why I ask these types of questions. I try to follow this advice:
I am the smartest man in Athens because I know that I know nothing. - Socrates
|
|
|
|
|
They make life so much more pleasant.
I would often model them, at least to begin with, after a table row in a database.
It's a handy place to move and store the data around the system as a unit. Also, if you add or removed columns from said tables, you only need to change the definition of the structure to accommodate this (and, of course, handle the new data) - but all their data transport throughout your code still works as before without a change.
And you can build structures of structures - and move major blocks of data about (should the need arise) - yet have each component neatly wrapped by a recognizable name.
Maybe you'd like them better if you thought of them a bit like a record in a table.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
TheOnlyRealTodd wrote: I'd rather spend 5 hours coding and have something to show, rather than re-create an intangible data structure that already exists in the standard library, just for the sake of it (or erm... class).
I think the point of the exercise (or at least would be, if I were teaching a class on data structures) is several. Data structures can be complicated, you have to handle edge cases, consider where your performance issues are, often in tradeoffs between a performant search vs. a performant insert/delete, how do you test not just the simple operations and edge cases, but how do you test performance and memory utilization, etc.
In other words, it's a good exercise to bring to consciousness things that we rarely think about because, as you said, these things already exist, so why rewrite them? But the lessons learned are applicable in general programming, and that's important, IMO.
I also think one of the more fun things about data structures is using (or creating) the right structure for the particular task. When I was working on a multi-threaded solution to solve a complex end-of-life analysis of the switch ring topology in communication satellites, I realized there were times when a canned data structure was great, and other places where I needed a custom data structure of the same information, just organized differently. While maintaining both data structures took more memory, that was irrelevant (the memory usage was not the issue here) but what was relevant was the significant performance improvement by using the right data structure for the particular algorithm.
Marc
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|
TheOnlyRealTodd wrote: I'd much rather write unit tests and design patterns!
You lost me there...
|
|
|
|
|
|
I love being at the bottom of the abyss
DURA LEX, SED LEX
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver
When I was six, there were no ones and zeroes - only zeroes. And not all of them worked. -- Ravi Bhavnani
|
|
|
|
|