Lots of comments here suggesting that the water use is no big deal, but please note that Google is not using river water, they’re currently evaporating 29% of the municipal water, which comes from the aquifer, in a very dry region. The aquifer in question was being depleted prior to agriculture moving to river water and the local aluminum smelter shutting down, but it’s now healthy. Google’s planned use threatens to overdraw the aquifer. To offset Google’s use, the city plans to pump treated water into the aquifer.
There are also clang-based auto-complete and syntax-checking plugins for sublime, emacs, and presumably others.
Another emacs package I've been meaning to try is "disaster", which shows you the assembly that the code under your cursor compiles to: https://github.com/jart/disaster
What c++ is sorely lacking, in my opinion, is a (library) package management system.
I'm not on Lion, but even on Snow Leopard, Sublime will only show a tab for a file if you double click the file in the sidebar, or edit the file (which Convert Tabs to Spaces is doing). Though there might be a Lion specific issue aside from this.
I find mathematical notation to be very read-friendly. Reading a paper from an unfamiliar field can be tough, as knowledge of the standard notation is typically assumed (as is the case when reading code from an unfamiliar programming language).
Mathematical "code" isn't usually meant to be read without the surrounding variable and notation declarations, for example "Let x be ..." or "where • is the ... operation". If those are provided, short variable names and terse notation allow for the intent to be presented clearly, without it being obscured by line-length restrictions and a limited number of generic constructs (eg. for-loops instead of the summation operator).
That said, I'm finding this C implementation of J to be pretty cryptic. Of course, that's no reason to dismiss the J programming language itself.
The thing I'd really like to see in a portable computer is a touch-interface/mouse-interface hybrid. For example, you dock your iPad in a keyboard docking station (with mouse), and the interface morphs into standard OSX, with all the power and abilities that come along with that. Take it out of the keyboard dock, and it's an iPad again, with the finger friendly iOS touch interface (and limited to touch apps). Desktop apps and touch apps could share data, but would ideally have different interfaces. E.g. OSX's Mail.app and iOS's Mail app.
For HP of course, substitute webOS "slate" for iPad and custom desktop Linux distribution for OSX (I wish).
Ah, good ol' At Ease. The crippled app-launching interface it provided seemed to be entirely responsible for the nearly universal hatred of Apple computers by students at my high school. Compared to Windows 95, At Ease gave the impression that Macs were only capable of performing simple tasks. Everyone was thrilled when the Macs were replaced with cheap Windows machines.
We're looking for a (junior) programmer. Must be comfortable on a unix-like OS (we use OS X and FreeBSD), and able to take on projects involving C, C++, Objective-C, PHP and SQL. You'd be part of a small group of developers, and have a lot of independence. We use git and SVN.
Email me (seanbillig@ the URL above) links to code you've written in any language if available, eg. github, bitbucket, personal website, etc, and we'll have an informal chat. Attach a resume and cover letter for HR.
We're also looking for a mid-level account manager/sales support person. Brief HR description: Account Manager - Finance is a mid-level position. It requires a B.S. in finance or accounting, strong analytical skills, and work experience in a similar role. Send resumes to jobs at ebureau.com
"My students need iPads to assist them in English, Social Studies and Creative Writing!" ($10,648 to go)
I bet they do.
(Of course, a lot of the requests are reasonable, but I'd like to see the donations go to students a bit more impoverished... Room to Read comes to mind.)
Personally, I found that taking a full-time programming job destroyed my out-of-office motivation and productivity. It might be worth trying a job in a new industry for a while, or working out some sort of part-time agreement with your employer -- you might find your brain itching to code and produce something after work hours.
Another headphone to consider is the AKG K81 DJ, for around $60-80. It's a closed supra-aural design (sits on your ear). I haven't tried them personally, but I've heard they sound fantastic.
I code almost all day wearing a pair of these. Without music playing, they mostly block out a conversation on the other side of the room. With music, the outside world is nonexistent. The biggest downside is a weak plastic headband casing. There's a strong metal band inside, but the plastic casing will eventually crack (it happens to most owners -- might be dependent on head size). That said, I wrapped mine with clear packing tape a couple years ago and they've been fine since. They're comfortable enough to wear for an hour or two on, 15 minutes off, repeat.
Another great sounding set is the Audio-Technica ATH-M50. I bought my brother a pair for $100 new on eBay. They're more durable than the HD280s, and fold up better for portability.
Avoid the HD202 unless you have small ears. Also avoid anything from Grado; they're totally open (lots of sound leaks in and out), and are mostly appropriate for rock (they have a very "colorful" sound -- not at all faithful to the source material). Don't go anywhere near Bose. You'll get a lot better sound for a hell of a lot cheaper from just about anything made by Sennheiser, Audio-Technica, Beyerdynamic or AKG.
This is a great source for info: http://www.head-fi.org/forum/ Try not to get too sucked into the hi-fi tomfoolery though, for $100 you can get a great set of cans, and a laptop or mp3 player will be a sufficient driver. A lot of the higher-end gear will require an amp to sound decent, and there's some wickedly diminishing returns once you pass the $100-200 point. There are a lot of conflicting reviews on that site, but there's seems to be a general consensus about certain models (the ATH-M50 is widely respected, for example).
[For the best noise blocking (aside from in-ear), you want a set of closed "circumaural" (around the ear) headphones. Open-back cans don't block any external sound, so you have to crank up the volume to drown it out.]
"But if we did that, who would drink Coors and drive forklift for Walmart and not complain about it?"
Robots? If the education system elevated more of the population, there would be a shortage of blue-collar workers, more pressure for system automation, and more well-educated minds to develop the robots. Of course, there would be no shortage of immigrants to fill the blue-collar positions, but perhaps in the long term, a "better" equilibrium would be reached.
Unless it has been diagnosed as carpel tunnel syndrome, I would guess that the wrist pain is actually a more general "repetitive stress injury" (RSI). Proper posture helps a lot for this, as does taking regular mini-breaks to let your wrists rest. Software RSI break timers help; I use AntiRSI on my mac. The idea is to let your arms hang down for 10 seconds or so every 5-10 minutes. Take longer breaks regularly, and stretch your wrists, arms and shoulders.
Google 'RSI wrist stretches' (or exercises), etc. The book "It's not Carpal Tunnel Syndrome! RSI Theory & Therapy for Computer Professionals" is highly praised, but I haven't read it personally.
I've found that a trackball is much easier on my wrist when I'm forced to do any mousing. The Microsoft Natural Ergonomic Keyboard 4000 helped too, but I couldn't stand the space bar's noise and action -- it's worth looking into a more friendly keyboard anyway.
Edit: As for eye strain, try to focus on something in the distance while you're letting your wrists rest. Human eyes aren't particularly well suited for focusing close-up for long periods of time, so you should let them relax once in a while.
Sure, but it's the massive parallelism of the hardware behind "the mind" that allows a human to intelligently filter information quickly. Our serial conscious thought is in no way indicative of the amount of (parallel) processing that goes on behind the scenes in order to make a "simple" decision.