I don't know how cold it has to be for it not to snow, but I know that Canada has no problem with snow in -25 degree Celcius weather. One of many reasons I'm moving to California next week.
So far I like mr_mischief's reply best. Aside from that, here's what keeps me on track:
Triangulate. A common mistake I see that produces bad code is people assuming that their code will be used for one thing and one thing always. That is almost never the case, unless you have the time, resources, and naivety to write code from scratch for every project. Try to see beyond the original assignment; set multiple scenarios and applications to your code, and try to fulfill as many of them as you can. Unification is good, and specialization is good--learn when to pick each end of the spectrum.
Take pride. It's easy to come up with a 15 if-statement hack, but you'll always save more time in the long run if you spend that extra 15-30 min doing research on how to solve your problem elegantly. If you can't spare the time, do your best to isolate the hacks (such as into their own helper methods) so that you can come back later and replace them with something more sensible. Avoid duplicating code, avoid creating deep chains of method calls, avoid complex undocumented code (if you must write complex code, document what it does so you can keep skimming). In general, try to write beautiful code--something you'd want to paste to your friend, so maybe he can learn a thing or two.
Music. When you reach a certain level of confidence that lets you build a flow, try immersing yourself in some good music. For me, listening to The Knife or Justice can significantly enhance my productivity and artistic spirit. Find what works for you.
But much more importantly, get enough sleep. I'm at least x2 more productive when I have 8.5 hours of sleep than when I have <7 hours of sleep. That's 1.5 hours that makes the difference of +4 hours of useful work. It's worth it, if you care about your work at all.
Yes, chances are Apple will leave you alone unless you're being particularly clever. But you can only have so many use-the-accelerometer-to-maneuver-the-virtual-ball-into-the-correct-hole apps.
It's more of an IDE "container" that handles things like file browsing, buffer management, multiple projects, consoles, TODO/FIXME comments, pastebin, and more. It supports vim, emacs, and others. Makes life much easier. Personally, I use the vim mode.
Nothing quite like having an IDE tell me it loves me each morning.
Setup VNC or something similar on your home desktop. Create a list of passwords you'll use for the duration of your trip.
Every time you stop by at a cybercafe, connect to your VNC, do your business with all your passwords pre-saved safely on your home desktop. Once done, execute a script which will change the password to the next password on the list, log out, and move on.
I haven't done this myself, but last time I went to Italy and had to use some really shady cybercafes, I really wished I had a system like this in place...
Absolutely. WoW is clearly a vastly superior product to SWG, FFXI, Asheron's Call 2, EQ2, DAoC, etc. I just didn't think that comparing it to EQ1 made a lot of sense due to the time gap.
Anyways, Blizzard has a reputation for releasing incredibly polished, stylized, and innovative games. Every time a "Top 100 games of all time" list comes out, all of Blizzard's games are in the Top 15.
EQ2's userbase is nowhere near where WoW's is. Neither is the game quality for today's standards.
Ultima Online surpassed MUDs. EverQuest surpassed Ultima Online. World of Warcraft surpassed EverQuest. EverQuest 2 surpassed a shriveled piece of ginger root vaguely shaped like a one-armed voodoo doll.
The more interesting thing is, EverQuest only ever achieved roughly a twentieth of WoW's subscription figures. So, more valuable than simply listing the things SOE already did as Blizzard innovations* would be to look at what Blizzard did differently that got them 20 times SOE's subscriber base - and fifty times that of most other competitors. Might have something to do with the fact that EverQuest was released in 1999, while World of Warcraft was released in 2005. A lot changes in six years. I wouldn't be surprised if the amount of people with internet access grew more than 20 times in that time span.
The team at the University of Toronto, who are using a neural networks approach, are led by Geoffrey Hinton who has a bachelors degree in experimental psychology.
You can skip introduction classes. In fact, you can skip any requirement, so long as you make a good argument for it.
I also took graduate courses in my undergrad, did research, took advantage of networking opportunities and so on. I honestly felt there was no bureaucratic limitation for me at UofT -- all of the rules were sufficiently flexible to overcome to those who were sufficiently interested.
I certainly wouldn't say that my university sucked ass. I chose it over a scholarship offer from Waterloo, and I don't regret it one bit.
And if we did make a machine that could self improve and learn without human assistance, it wouldn't be restricted by organic limitations and capacity. Since the CPUs electrons travel near the speed of light gives it a far faster thinking ability than a humans slow moving chemical neurons. And since its memories are digital it does not need to memorize facts etc etc or suffer memory loss. There are many designs of neural networks like Boltzmann machines that exhibit fuzzy memory, included with memory loss and slow thinking due to the massive amounts of computation required to process data (despite the speed of light).
AI is likely to utilize neural networks in one way or another... unless we're completely on the wrong track. Just thought you'd like to know.:-P
Actually, it's more likely that the reason all their software is locked away and kept secret is because it's probably infringing on numerous software patents. When Joe Sixpack can go down to the patent office and register a doubly linked list as his own invention, lots of possibilities for lawsuits open up.
I did some research into this for a course, but I don't have sources to cite off the top of my head. Definitely something worth looking into.
Wikipedia tends to be better for this type of thing. Here's an excerpt from Parakey @ Wikipedia:
Parakey is a Web-based computer user interface proposed by Firefox creator Blake Ross. Ross describes it as a "a Web operating system that can do everything an OS can do." [...]
That explains the reference to Firefox and Blake Ross. I guess it is kind of on topic... in a strange sort of way.
With all the hype of rapid development frameworks (Ruby on Rails, TurboGears, etc) it's easier than ever to make web applications, for yourself or someone else. It's also damn easy to install them. Only problem? They require a web server.
Having a webserver on your cellphone, even if it's only accessible to you, is extremely useful. You can build your own truly cross-platform applications without having to worry about crazy microjava doodie.
In terms of power consumption, why would it have to be continuously active? It can have a "sleep" mode just like anything else on a cellphone does. It's not like your phone has a continuous open line to someone. When you finish talking to someone, it goes into a sleep mode and waits for the next call. A webserver could work the same way -- when you use it, it fires up. When you stop using it, it takes a nap. Both, you and your battery, are happy.
I, for one, welcome our Cellphone-hosted website overlords.
You make a very good point. A very depressingly good point.:-(
There seems to be a similar parallel in software and operating systems. My beloved Linux (and Unix in general) took the component model from the beginning. Making little programs that do little things very well, strapping them together and doing clever things. Then Microsoft came along with Windows which seems to employ the end-to-end model. Especially with the upcoming Vista which has a version of the OS for each type of user (a brillaint economic move in terms of price discrimination).
This depresses me, but you may be right. Things may be moving towards a proprietary world.
I'd assume that those percentages are in comparison to a monolithic kernel.
You're right about that. The comparisons were micro vs monolithic kernel. And the operations I mentioned were system call operations like performing IO read/writes, caching, interfacing with devices, etc. So yes, most applications would not be affected significantly.
From the lecture, my impression was that those numbers were merely benchmarks taken on the same system with each type of kernel. Although there was a 6-14% performance difference, as I mentioned a lot of the slowdowns were "constant-time" overhead operations, i.e. O(1). That is, as the hardware speed increases, the percentage of the slowdown decreases. Between, say, 300mhz CPU's, the performance difference may be 6-14%, but 600mhz CPU's it may shrink down to 3-7% for instance. So yes, with the rate speeds are increasing, eventually it will be negligible.
But then you'd have issues with performance and such.
You're right, and there is.
There is about a 6% to 14% performance hit, depending on the operation. Although most of the slowdown is constant-time. And Andy claims that that kind of performance hit is insignificant in today's uber-fast systems. Then again he goes on to say that Minix is intended for small embedded devices (which tends to be much slower). So I'm skeptical as well.
Andy Tanenbaum came to my university and gave a presentation/lecture about Minix, you can read my bloggish writeup if you're interested.
wouldn't rule compartmentalization out completely, but it should be understood that doing so will increase the complexity/size and not necessarily lower the size/complexity.
Just to clear things up, my understanding is that Tanenbaum is advocating moving the complexity out of kernel space to user space (such as drivers). So you wouldn't be lowering the size/complexity of the kernel altogether, you'd just be moving huge portions of it to a place where it can't do as much damage to the system. Then the kernel just becomes one big manager which tells the OS what it's allowed to do and how.
Isn't the very popularity of Sims proof against this ?-)
You're right, clearly that isn't the _only_ reason someone would play with action figures or The Sims. Hell, it might not even be the main reason. But I think it's an interesting hypothesis to consider. On average, certainly the "desire" to simulate situations with action figures has dies down with age.
Anyway, I (a 27-year old man) still play with dolls / action figures / whatever whenever no one else is around, so I think that it's more of a desire to appear grownup rather than any real difference in brains that stops adults from playing.
Whenever I find myself pulling out my old action-figures from my childhood (every few years) it's more about experiencing the nostalgia than doing something semi "productive". I really have no "desire" to sit around and play with my barbie^Waction figure, except as an excuse to procrastinate doing work.;-)
Perhaps another observation: as we age, we are more interested in seeing others play out scenarios, as a method of aggregating experiences to our repository of life lessons. This desire also seems to deteriorate as we reach an elderly age (about which I am not qualified to speak about as a personal experience).
Reiser4 is the killer one. My laptop can attest to it. :/
I don't know how cold it has to be for it not to snow, but I know that Canada has no problem with snow in -25 degree Celcius weather. One of many reasons I'm moving to California next week.
- shazow
Remote device images are also win:
Not to mention combining ssh tunnel with more ssh tunneling and then more ssh! Mmm, ssh. Almost as awesome as netcat. - shazow
So far I like mr_mischief's reply best. Aside from that, here's what keeps me on track:
But much more importantly, get enough sleep. I'm at least x2 more productive when I have 8.5 hours of sleep than when I have <7 hours of sleep. That's 1.5 hours that makes the difference of +4 hours of useful work. It's worth it, if you care about your work at all.
- shazow
Since when is the iPhone only available to AT&T customers?
Do iPhone apps have to read and conform to every single iPhone provider in the world?
A must have application like NetShare perhaps?
Yes, chances are Apple will leave you alone unless you're being particularly clever. But you can only have so many use-the-accelerometer-to-maneuver-the-virtual-ball-into-the-correct-hole apps.
- shazow
I use PIDA, because it loves me.
It's more of an IDE "container" that handles things like file browsing, buffer management, multiple projects, consoles, TODO/FIXME comments, pastebin, and more. It supports vim, emacs, and others. Makes life much easier. Personally, I use the vim mode.
Nothing quite like having an IDE tell me it loves me each morning.
- shazow
You mean... is the music on my hard drive stolen or was it collaborated on by hundreds of peers, each telling my box of one small chunk from it?
- shazow
Setup VNC or something similar on your home desktop. Create a list of passwords you'll use for the duration of your trip.
Every time you stop by at a cybercafe, connect to your VNC, do your business with all your passwords pre-saved safely on your home desktop. Once done, execute a script which will change the password to the next password on the list, log out, and move on.
I haven't done this myself, but last time I went to Italy and had to use some really shady cybercafes, I really wished I had a system like this in place...
- shazow
Absolutely. WoW is clearly a vastly superior product to SWG, FFXI, Asheron's Call 2, EQ2, DAoC, etc. I just didn't think that comparing it to EQ1 made a lot of sense due to the time gap.
Anyways, Blizzard has a reputation for releasing incredibly polished, stylized, and innovative games. Every time a "Top 100 games of all time" list comes out, all of Blizzard's games are in the Top 15.
- shazow
Ultima Online surpassed MUDs.
EverQuest surpassed Ultima Online.
World of Warcraft surpassed EverQuest.
EverQuest 2 surpassed a shriveled piece of ginger root vaguely shaped like a one-armed voodoo doll.
- shazow
- shazow
The team at the University of Toronto, who are using a neural networks approach, are led by Geoffrey Hinton who has a bachelors degree in experimental psychology.
You'd be interested to know that it's not true.
You can skip introduction classes. In fact, you can skip any requirement, so long as you make a good argument for it.
I also took graduate courses in my undergrad, did research, took advantage of networking opportunities and so on. I honestly felt there was no bureaucratic limitation for me at UofT -- all of the rules were sufficiently flexible to overcome to those who were sufficiently interested.
I certainly wouldn't say that my university sucked ass. I chose it over a scholarship offer from Waterloo, and I don't regret it one bit.
- shazow
AI is likely to utilize neural networks in one way or another... unless we're completely on the wrong track. Just thought you'd like to know.
- shazow
Actually, it's more likely that the reason all their software is locked away and kept secret is because it's probably infringing on numerous software patents. When Joe Sixpack can go down to the patent office and register a doubly linked list as his own invention, lots of possibilities for lawsuits open up.
I did some research into this for a course, but I don't have sources to cite off the top of my head. Definitely something worth looking into.
- shazow
That explains the reference to Firefox and Blake Ross. I guess it is kind of on topic... in a strange sort of way.
- shazow
ASCII art to the rescue.
Just so you know, Eve Online works under Cedega (and probably Wine, too).
With all the hype of rapid development frameworks (Ruby on Rails, TurboGears, etc) it's easier than ever to make web applications, for yourself or someone else. It's also damn easy to install them. Only problem? They require a web server.
Having a webserver on your cellphone, even if it's only accessible to you, is extremely useful. You can build your own truly cross-platform applications without having to worry about crazy microjava doodie.
In terms of power consumption, why would it have to be continuously active? It can have a "sleep" mode just like anything else on a cellphone does. It's not like your phone has a continuous open line to someone. When you finish talking to someone, it goes into a sleep mode and waits for the next call. A webserver could work the same way -- when you use it, it fires up. When you stop using it, it takes a nap. Both, you and your battery, are happy.
I, for one, welcome our Cellphone-hosted website overlords.
- shazow
You make a very good point. A very depressingly good point. :-(
There seems to be a similar parallel in software and operating systems. My beloved Linux (and Unix in general) took the component model from the beginning. Making little programs that do little things very well, strapping them together and doing clever things. Then Microsoft came along with Windows which seems to employ the end-to-end model. Especially with the upcoming Vista which has a version of the OS for each type of user (a brillaint economic move in terms of price discrimination).
This depresses me, but you may be right. Things may be moving towards a proprietary world.
- shazow
You're right about that. The comparisons were micro vs monolithic kernel. And the operations I mentioned were system call operations like performing IO read/writes, caching, interfacing with devices, etc. So yes, most applications would not be affected significantly.
From the lecture, my impression was that those numbers were merely benchmarks taken on the same system with each type of kernel. Although there was a 6-14% performance difference, as I mentioned a lot of the slowdowns were "constant-time" overhead operations, i.e. O(1). That is, as the hardware speed increases, the percentage of the slowdown decreases. Between, say, 300mhz CPU's, the performance difference may be 6-14%, but 600mhz CPU's it may shrink down to 3-7% for instance. So yes, with the rate speeds are increasing, eventually it will be negligible.
- shazow
You're right, and there is.
There is about a 6% to 14% performance hit, depending on the operation. Although most of the slowdown is constant-time. And Andy claims that that kind of performance hit is insignificant in today's uber-fast systems. Then again he goes on to say that Minix is intended for small embedded devices (which tends to be much slower). So I'm skeptical as well.
Andy Tanenbaum came to my university and gave a presentation/lecture about Minix, you can read my bloggish writeup if you're interested.
Also the Minix Wikipedia node has some informative stuff.
- shazow
Just to clear things up, my understanding is that Tanenbaum is advocating moving the complexity out of kernel space to user space (such as drivers). So you wouldn't be lowering the size/complexity of the kernel altogether, you'd just be moving huge portions of it to a place where it can't do as much damage to the system. Then the kernel just becomes one big manager which tells the OS what it's allowed to do and how.
- shazow
You're right, clearly that isn't the _only_ reason someone would play with action figures or The Sims. Hell, it might not even be the main reason. But I think it's an interesting hypothesis to consider. On average, certainly the "desire" to simulate situations with action figures has dies down with age.
Whenever I find myself pulling out my old action-figures from my childhood (every few years) it's more about experiencing the nostalgia than doing something semi "productive". I really have no "desire" to sit around and play with my barbie^Waction figure, except as an excuse to procrastinate doing work.
Perhaps another observation: as we age, we are more interested in seeing others play out scenarios, as a method of aggregating experiences to our repository of life lessons. This desire also seems to deteriorate as we reach an elderly age (about which I am not qualified to speak about as a personal experience).
- shazow