|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On February 16 2015 11:58 travis wrote:Show nested quote +On February 16 2015 11:44 berated- wrote:On February 16 2015 06:57 travis wrote: nope, because myList saves a reference to the object, not the object's values.
So myList[0] would point to myObject, myList[1] would point to myObject, myList[3] would point to myObject, etc.
then if myObjects values change, it will say the new values regardless of which myList you call.
Blitzkrieg's solution was to just make myList[counter] = new myObject, which I am assuming makes the position in the arraylist the actual reference, instead of making the position in the arraylist hold a reference. that's what I think is happening there, at least. That's actually false, and not how java works. You should listen to Ropid. While that way may be confusing, it would not set all the objects to the same thing. that's not what I've read. what I've read is that if you create 2 instances and they have the same reference name, then every reference with that name will point to the newest instance. so, i really don't understand why this wouldn't do that.
It does work like they're saying.
Basically you have a reference to an object. You create a new object and set the reference to that object. Then you copy that reference into the array. Then when you loop you're creating a new object and placing a reference to it in the same place. The new object has a different address so when you add it to the array it will be a unique object.
There is no point doing this copy action though. You should just save the object into the array when you make it.
|
I really should have understood that faster to be honest. Makes me feel dumb lol
|
On February 16 2015 12:09 travis wrote: I really should have understood that faster to be honest. Makes me feel dumb lol
I've been doing this for 11 years and still had to write a main method to prove it to myself before posting... as long as you get it figured out keep learning I wouldn't feel too bad about it.
|
LOL
and yeah you really need to work a lot with C for a while before some things about references start clicking faster, sometimes i find myself wondering wtf is going on with & and then * and then *(*(&spp_var)) and then i meet a new operator && which is something about RHS or something
summoning nunez, what is &&variable in the parameter pls :d (http://stackoverflow.com/questions/4549151/c-double-address-operator)
|
Something that finally taught me some stuff about references was this:
void strcpy(char *p, const char *q) { while (*p++ = *q++); }
Understanding how this code works made my jaw drop at how beautifully designed it is (apart from possible buffer overflow of course).
|
summoning nunez, what is &&variable in the parameter pls :d (http://stackoverflow.com/questions/4549151/c-double-address-operator)
It's a reference to an object whose state we don't care (much) about after the function returns (e.g. a temporary object). This allows destructive, but efficient things, such as move operations to happen using that parameter.
Praise Visual Studio!
/discount nunez
|
So I decided to start learning a programming language (again!). I decided that clojure doesn't have much material for starters and I get a little lost after doing the most tutorials that I found so I decided to change for python because it seems the most similar language from the mainstream (I might just be completely wrong, don't be too harsh with me pls).
I wanted a book to study instead of using web tutorials since I usually like to lie on my bed and read something before sleep. What books do you recommend for python? Think Python is good enough? Should I try others? Thanks.
|
On February 17 2015 00:36 pedrlz wrote: So I decided to start learning a programming language (again!). I decided that clojure doesn't have much material for starters and I get a little lost after doing the most tutorials that I found so I decided to change for python because it seems the most similar language from the mainstream (I might just be completely wrong, don't be too harsh with me pls).
I wanted a book to study instead of using web tutorials since I usually like to lie on my bed and read something before sleep. What books do you recommend for python? Think Python is good enough? Should I try others? Thanks.
http://learnpythonthehardway.org/
It's a free web tutorial (and a good one at that) but you can always buy the book for it if you feel like it.
Don't try others. Start with either Python (getting into it is relatively easy) or C (simple language but much more daunting - here's a tutorial, you can check out if it's for you or not) and go with it. The author of both tutorials actually recommends doing the Python stuff before C, since C is targeted at people who are at least somewhat familiar with basic programming concepts.
P. S.
The newest gem I've found at work. Awesome class name: ReasonOfUnable.
|
On February 14 2015 14:47 BisuDagger wrote:Show nested quote +On February 14 2015 06:13 CorsairHero wrote: anyone linux users that are believers in vim here? I'm too used to using windows text based editors -_- As someone who hates developing in Linux, vim is the only way to go. Learning how to develop using vim helps make you a smart and efficient programmer. It's also great to know because vim is on all Linux devices and you may find yourself without an ide available to edit code on during delivery of a company project. Bottom line, the skill is to damn important to pass up. So don't be cheap and get 'practical vim' off Amazon now and become a wizard. thanks, i'll take a look at it. I'm also looking at using nerdtree plugin as well for file system access...seems useful.
|
On February 16 2015 17:47 Manit0u wrote:Something that finally taught me some stuff about references was this: void strcpy(char *p, const char *q) { while (*p++ = *q++); }
Understanding how this code works made my jaw drop at how beautifully designed it is (apart from possible buffer overflow of course).
And you probably learned a bit about operator precedence as well ;o)
|
apparently there's no operator precedence in play with *p++
|
On February 17 2015 03:17 Blisse wrote: apparently there's no operator precedence in play with *p++
You have to know if it will post-increment the pointer or the dereference. One of the options doesn't make sense so the answer is apparent, but it is still nifty.
That isn't going to help Travis though because java doesn't have pointers.
|
On February 17 2015 00:40 Manit0u wrote:Show nested quote +On February 17 2015 00:36 pedrlz wrote: So I decided to start learning a programming language (again!). I decided that clojure doesn't have much material for starters and I get a little lost after doing the most tutorials that I found so I decided to change for python because it seems the most similar language from the mainstream (I might just be completely wrong, don't be too harsh with me pls).
I wanted a book to study instead of using web tutorials since I usually like to lie on my bed and read something before sleep. What books do you recommend for python? Think Python is good enough? Should I try others? Thanks. http://learnpythonthehardway.org/It's a free web tutorial (and a good one at that) but you can always buy the book for it if you feel like it. Don't try others. Start with either Python (getting into it is relatively easy) or C (simple language but much more daunting - here's a tutorial, you can check out if it's for you or not) and go with it. The author of both tutorials actually recommends doing the Python stuff before C, since C is targeted at people who are at least somewhat familiar with basic programming concepts. P. S. The newest gem I've found at work. Awesome class name: ReasonOfUnable.
My favourite 'learn to program if you don't know anything at all' resource: Non-Programmer's Guide to Python 3. I learned with it, my girlfriend is learning with it... I love it, it makes things really easy for people who know literally nothing about programming. Sorry, it's not a book, but it's really good for learning with practical, simple examples which require you to be at your computer anyways
|
On February 16 2015 17:47 Manit0u wrote:Something that finally taught me some stuff about references was this: void strcpy(char *p, const char *q) { while (*p++ = *q++); }
Understanding how this code works made my jaw drop at how beautifully designed it is (apart from possible buffer overflow of course).
It's actually not as readable as it should be. And what happens if p's length isn't equal to q's length? Undefined behaviour?
|
Hyrule18982 Posts
|
On February 17 2015 08:47 darkness wrote:Show nested quote +On February 16 2015 17:47 Manit0u wrote:Something that finally taught me some stuff about references was this: void strcpy(char *p, const char *q) { while (*p++ = *q++); }
Understanding how this code works made my jaw drop at how beautifully designed it is (apart from possible buffer overflow of course). It's actually not as readable as it should be. And what happens if p's length isn't equal to q's length? Undefined behaviour?
If p is greater than q then it doesn't matter. If q is larger then you either segfault from accessing protected memory or you're overwriting memory that you shouldn't be.
The function expects a null terminated string so you can also run into problems if your string isn't null terminated. This makes the length of q undefined because it will copy characters until it hits a null character.
|
On February 17 2015 00:36 pedrlz wrote: So I decided to start learning a programming language (again!). I decided that clojure doesn't have much material for starters and I get a little lost after doing the most tutorials that I found so I decided to change for python because it seems the most similar language from the mainstream (I might just be completely wrong, don't be too harsh with me pls).
I wanted a book to study instead of using web tutorials since I usually like to lie on my bed and read something before sleep. What books do you recommend for python? Think Python is good enough? Should I try others? Thanks. Clojure is probably super different from normal mainstream stuff. Data is "immutable" by default, meaning it can't be changed after it's created, and people seem to try to keep that up as much as possible. They write "purely functional" code as much as they can.
In normal imperative thinking, you write code where you take a reference to data, then you run over the data and do the required changes.
In a functional style, your functions only look at the input data and do not touch it, the required changes only show up in the result of the function.
This should need help from the programming language itself or performance will be shit. If the compiler/interpreter knows that the things you work with are always immutable, it might be able to do something smart instead of making copies of everything all the time.
I struggle with the stuff and can't come up with good examples that shows that it's an interesting idea (I'm just a noob trying to learn enough Haskell that I can do something actually useful with it). Working like this is pretty mind blowing in practice coming from a "normal" imperative background, so that's fun. For some reason, complicated ideas end up as super compact code compared to the usual imperative code. When you do changes to your code, you can kind of look at the code as if it's some sort of math/logic proof, and you can then often be very confident that something is still correct after your changes, and then it actually is correct and bug-free. I guess that's the big upside.
Clojure then also is some sort of Lisp and can do Lisp stuff. I guess the big deal with that is "meta-programming"? Here's stuff to promote Lisp:
http://www.paulgraham.com/avg.html (this is some general marketing for Lisp) http://www.defmacro.org/ramblings/lisp.html (this is trying to explain metaprogramming and why it's neat)
I have no idea what other language with similar ideas to suggest with regards to a good, easy introduction. It's all very hard for me.
Were those even the reasons you started looking at Clojure?
|
On February 17 2015 08:54 Blitzkrieg0 wrote:Show nested quote +On February 17 2015 08:47 darkness wrote:On February 16 2015 17:47 Manit0u wrote:Something that finally taught me some stuff about references was this: void strcpy(char *p, const char *q) { while (*p++ = *q++); }
Understanding how this code works made my jaw drop at how beautifully designed it is (apart from possible buffer overflow of course). It's actually not as readable as it should be. And what happens if p's length isn't equal to q's length? Undefined behaviour? If p is greater than q then it doesn't matter. If q is larger then you either segfault from accessing protected memory or you're overwriting memory that you shouldn't be. The function expects a null terminated string so you can also run into problems if your string isn't null terminated. This makes the length of q undefined because it will copy characters until it hits a null character.
Well, that's actually part of the beauty of this function. Analysing it has taught me more about C, pointers, buffer overflows, user safe code (since it is one of those functions that let hackers take over your entire system) etc. than anything else. Making it user safe and guarding against buffer overflows is a good learning exercise too. For example you could use memcpy to do the job.
|
hey i was wondering if there is way to get a domain registered for free, including emails, and all the stuff necessary to make an own website
|
On February 17 2015 18:53 bypLy wrote: hey i was wondering if there is way to get a domain registered for free, including emails, and all the stuff necessary to make an own website
If you want free hosting then I believe that you can get it with Amazon AWS. Some low-level EC2 instances are free of charge if they don't generate too much traffic (you start paying some low fees after exceeding transfer treshold, but it's relatively high for simple sites).
|
|
|
|