Slashdot Mirror


User: joe_cot

joe_cot's activity in the archive.

Stories
0
Comments
85
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 85

  1. some tips ... on Taking Your Programming Skills to the Next Level? · · Score: 1

    1) Try numerous languages (C++, java, php, python, PERL, lisp, scheme) -- you don't need to become proficient in all of them. Learn their mechanics, their strengths and weaknesses, what fields they're applicable for, etc (ie lisp and scheme are practically de facto AI languages; PERL treats a regular expression like it was a plus sign). The more languages you're familiar with, the more abstractly you can program.

    2) Pick a language you're comfortable with. Learn every wonderful, disgusting detail of what you can do with it (our head programmer knows more about php than its developers do). Preferably, pick one that's managed for now (ie not C++ or C) so you spend more time programming and less time worrying about memory leaks. Yes, unmanaged code is faster, but you're learning about being a _better_ programmer, not writing an operating system.

    3) Give yourself projects that you know are beyond your scope. Pick something you're interested enough in that you'll stick with it if it gets annoying. For example, I taught myself php and sql by writing a Character Manager for a roleplaying game. It's not pretty, it's not the most efficient it could be, but it served its purpose; I wrote it from scratch, and every time I learned something knew, I rewrote half of it. Certain languages (PERL, Scheme) you really have to give yourself a goal in order to stick with. You're never going to learn anything about programming if you're not working on something you care about. Stuck on how to do something? That's the point. Find out how. Look it up on google, or better yet, Google Code Search. Plaigarism schmaigarism. You're learning, and no one's going to use your stuff but you.

    4) When you write a piece of code, think logically through how it works, how long it takes in best case, how long it takes in worst case, etc. If you have time, look into Time Complexity Theory, but in most situations you should be able to tell if it's a god awful way to do the job, even if you can't think of a better way at the moment. Make it as efficient as possible (or at least understand what _is_ the most efficient way, had you the time to implement it), and move on. My first CS teacher took points off because my algorythm iterated one more time than it needed to. That might sound silly, but when it's running 1000 times a second, it counts.

    5) Do the pthread dance. Write a multithreaded program that does what it's supposed to do, every time.

    6) Learn about security, buffer overflows, sql injection, etc. Hack your own software.

    7) Books -- skim lots of them, read very few of them. All that reading books gets you is a lot of knowledge, but many times not a whole lot of application. Read the tips and tricks that stick out. O'Reilly books are great for that sort of thing. One of theirs you should definately skim very strongly is "Mastering Regular Expressions".

    8) Don't be afraid to specialize. If you like web development, do it. If you like a specific language, use it. If you want to write simulators for gravitational wave theory (I have no idea, but it sounds obscure enough to me), go right ahead. Someone will need what you're putting out there, and if they don't, you're probably learning skills that apply just as well for what they /do/ need. If you build your knowledge around being able to program 3d engines, AND being able to do web development, AND being able to do xyz completely different CS field, you'll be good at none of those things.

    8) Don't burn out. If there's another problem you feel like working on more, stop whatever you're doing and work on that instead. Write stuff for Open-Source projects. Find bugs in open-source projects. Read open-source code and try to figure out just what in the hell it's doing. Think about how you could do it better.

    You get the idea.

  2. In other words... on How Much Does a Vista Upgrade Cost? · · Score: 4, Funny

    Dear OEM distributors:

    We screwed up. Please don't go selling Linux PCs this Christmas.

    Regards,

    Bill

  3. Yes, I get it. It's free as in freedom. on Debian Conference Video DVDs Released · · Score: 4, Funny

    The DVD images are now available for download along with the source videos, as are the software and menu design used for them.

    If you'll pay travel expenses, the Debian developers will even come to your house and show you the entire video editing process step-by-step.

  4. And the consequences of this? on Iran Caps Net Access to Keep West Out · · Score: 3, Insightful

    Short answer: Instead of quickly downloading western culture, the average Iranian will now be mildly inconvenienced by a cap on bandwidth speeds.

    Long answer: What makes this restriction really useful to the Iranian government is that it will help curb attempts to get around their filtering. Countries which censor (such as China) have had flourishing peer-to-peer anonymous darknets spring up as a result of technologies such as Tor and Freenet (link to wp article, as the site appears to be down currently). By capping the bandwidth at 128kbps, it's much more difficult to have faster supernodes on such networks, and fewer Iranians will be willing to dedicate bandwidth to running a p2p web server. Between a combination of web censorship, and an added (though not insurmountable) barrier to darknets, this will help Iran rather effectively cut off its citizens from what the government doesn't want them to see.

    The other main consequence is to servers; besides the comical bad ping for Iran counter-strike server which a commenter mentioned earlier, this will affect anyone trying to spread subversive material over their connection; on the other hand, this will cripple anyone trying to serve anything over their connection. I wouldn't be surprised if Iran soon gives exemptions to various research and commercial groups to help stem the latter conquences.

  5. It's all about scalability on Friendster's Rise and Fall · · Score: 2, Insightful

    Facebook has something that none of the others ever had: it scales upward. Friendster was interesting at first, but as more and more people joined, it got slower and slower, to the point that it was unbearable. Eventually, people switched to the faster MySpace -- unfortunately, MySpace was only faster because it had less users. Since then, as MySpace has grown, it has gotten much slower, and quite often is unreachable for minutes at a time. I can't remember a point of time that I logged onto MySpace and every feature was working at once (at least _something_ is always down for "maintenance").

    From the start, Facebook appeared to be aware of reliability and scalability. The system (seems to be) separated by network (college), making it extremely easy to, say, add a whole new server for a particular college if necessary. While myspace accepted everyone who wanted to join and could fill out a submit form, Facebook added universities as they were able to support the increased load. Now, almost 2 years later, Facebook has opened its doors to the world, and adds features left and right: the only new feature I can recall MySpace adding is putting _videos_ on your myspace (oooh), and being extremely unreliable.

    Some restrictions which Facebook uses might be considered "un-fun" by the MySpace crowd (not being allowed to customize their profile as much, restrictions on sign up, etc), but browse the two and notice the difference: Facebook looks consistent across the board, and half the MySpace profiles are unviewable, because people can't be trusted to not be idiots. I recieve friend requests every day on myspace from porn webcam stars and con artists.

    In summary, I think Facebook will outlive the set mortality tables for internet phenomenoms, because unlike most web fads, it's not being run into the ground by idiots. Unlike every other social networking group ever, it has yet to annoy the hell out of me.

  6. Re:Nothing wrong with that. on Common Interfaces for Gnome and KDE Released · · Score: 5, Funny

    Too simple? I remember my mother's blank stare when she saw Ubuntu shut down for the first time: "why is it sending the KILL signal?"

  7. Re:bandwidth on Deprecating the Datacenter? · · Score: 1

    On a similar note, many home broadband providers have blocked port 80 for consumer broadband. Simple google searches for how Verizon and Comcast spell out how they approached the matter (blocking port 80 across the board, but not actually telling anyone about it). This seems to be the case for many US broadband providers, whether or not you've paid for business-class service (which many businesses find out the hard way while trying to save money) -- and let's not even talk about reliability, off-site redundancy, etc. For most people, buying hosting from a data center is slightly cheaper than buying a t1 for yourself.

    The only innovations that could possibly support this kind of prediction are p2p nets, such as Freenet. Let me know how reliable you think that is.

  8. Re:Huh? on ICANN Grants Temporary Reprieve to Spamhaus · · Score: 1

    ICANN is the organization responsible for all domain registration. They were ordered to remove spamhous.org 's registration, and as the article says, have refused. The registrar that sponsors their domain, Tucows Inc., could still be ordered to cut their registration -- if that happens, watch your inbox for deluges of spam. If the registrar was GoDaddy or someone high profile like that, we'd probably be alright .... Tucows ... we're screwed.

  9. On snap! on AMD Unveils Barcelona Quad-Core Details · · Score: 5, Funny

    "In his analysis on ExtremeTech, Loyd Case considers that the shift isn't as major as Intel's move from NetBurst to Core 2, but AMD claims that its quad core is true quad core, while Intel's is two dual-cores grafted together."
    BUUUUUUUUUURNED
    Next week: Intel responds by telling us how fat AMD's mother is.

  10. Slightly off-topic on Google Code Search Reveals Dark Corners · · Score: 1

    Search results coming out a bit strange. for example:
    \W((java)|(python)|(php)|(C(\+\+)?)|(asp)|(javascr ipt))\ ((sucks)|(stinks))\W 30,800 results
    \W((java)|(python)|(php)|(C(\+\+)?)|(asp)|(javascr ipt)|(asm))\ ((sucks)|(stinks))\W 50 results
    In other words, either they're cutting off their reg-exs for some reason (based on length, time for computation, etc), or my regular expressions are getting a bit rusty, or their reg-ex engine needs a bit of work -- I sorta want them to put the Code Search code on Code Search, just so I can do the Buffer search and see if it comes up.