So my employer (Microsoft) announced layoffs this week. Not really shocking in this economy, but the first-ever company-wide layoffs in the 33-year history of MSFT.
One of the things that really struck me when I joined Microsoft three years ago was the large number of long-term employees, and the sense that one could really make a career there. Most people move between groups every few years, so it’s possible to have a very long career without stagnating.
Coming of age in the 90’s and graduating just after the end of the tech boom, I’m of a generation that sees loyalty in employment as a quaint idea: job-hopping is expected, layoffs are a part of life, and you should always be aware of your market value. Coming to Microsoft was a refreshing change–the prevailing idea was that you could commit to the company for the long term, and it would give you the opportunity for long-term growth. I knew the layoff taboo would be broken someday, I just had no idea it would be this soon. I thought it would be presaged by losses, not just a modest decrease in profits.
I still enjoy my job, and I still have the same great benefits I had on Wednesday. The possibility of not getting a raise doesn’t bother me much, given the current deflationary state of the economy. My real question is whether these lay-offs were a one-time occurrence, or signal a change in Microsoft culture. Will there be less focus on individual career growth? Will the loss of a few thousand jobs be a routine occurrence on every economic downturn? If so, it wouldn’t be a tragedy; it would just be another sign that Microsoft is growing up, and in growing up, losing the qualities that make it stand out from most other employers out there.
From PZ:
The Second Law of Thermodynamics argument is one of the hoariest, silliest claims in the creationist collection. It’s self-refuting. Point to the creationist: ask whether he was a baby once. Has he grown? Has he become larger and more complex? Isn’t he standing there in violation of the second law himself? Demand that he immediately regress to a slimy puddle of mingled menses and semen.
The 2nd Law argument is so hoary that it’s a real challenge to find a creative and memorable way of shooting it down, but I believe PZ has suceeded.
This is really, really cool:
MIT researchers are designing a “Digital Water Pavillion” for next year’s Expo Zaragoza in Spain. The walls of the structure are sheets of water sprayed from suspended pipes. Software-controlled valves enable the valves to be opened and closed with high accuracy to create gaps at very specific locations, forming something like liquid pixels. According to a press release, the liquid surfaces can then become “a one-bit-deep digital display that continuously scrolls downward.”
This is what it looks like:
This academic presentation has the most outstanding visual presentation of quantitative data that I have ever seen, by far. The software that was used is part of the GapMinder project.
Truly great work, from a technical, aesthetic and scientific perspective.
(Link via kcwalina.)
A Republican Congressional aide looking to apply to grad school contacted a couple of hackers (in the good, old-fashioned meaning of the term) and offered to pay them to break into his alma mater’s computer and alter his grades. They decided to have a little fun with him.
Unsurprisingly, Mr. Low GPA was not exactly the sharpest knife in the drawer. And somehow, it’s all that more amusing that this fine academic aspirant was a graduate of Texas Christian University.
(Via Alex Tabarrok.)
One of the many minor annoyances of Windows (or whoever you want to blame for it) is that when copying and pasting text from Word or a web browser, you often have to paste it through notepad (or use Paste Special) to avoid carrying along all kinds of screwy formatting garbage.
Which makes PureText a very simple and extremely handy tool. It binds to the (customizable) shortcut key Windows-V and automatically pastes the current clipboard contents as plain text.
A seemingly minor little thing, but really nice when you’re writing an e-mail or blog post and don’t want to interrupt your flow of composition.
Via MarkCC, someone proved a few years back that a complete Turing machine (PDF) can be expressed in the compilation process of C++ templates.
Via BPS research digest, researchers at Brown put implants in the brain of a man who was paralyzed due to a knife wound that severed his spinal cord. The electrodes were connected to the part of his brain that controlled his left arm, and he was able to control a computer cursor and a robotic arm by mentally ‘moving’ his arm.
Unlike previous reads of generalized brainwaves, which required the subject to focus intensely, this research involved connections to specific neurons, and so the subject was able to ‘move’ his arm instinctively, while simultaneously holding a conversation.
This is probably old news for anyone with a decent knowledge of palentology, but it was eye-opening for me. PZ Myers has a chart of the geological timescale, with corresponding life forms. It seems that, according to our current best estimates, it took over 2 billion years from the formation of the Earth to the appearance of the first bacteria, compared to just 22 million years from the first apes to the earliest homo.
For many creationists–including me, when I was religious–abiogenesis (life arising from non-life) was one of the more difficult ideas to swallow. (And of course, evolution does not depend on it.) The timescales involved here seem to validate that intuition, while fitting it nicely into our overall understanding. Sure, the spontaneous formation of life is a highly unlikely thing, but it wasn’t an overnight process: it took two billion years (and another two billion to create multicellular organisms).
The more material evolution already has to work with, however, the faster it goes; which is exactly what you would expect from a process that works by adapting existing materials rather than creating new ones. And so amphibians took only 180 million years to develop, and mammals a mere 160.
BTW, for those who would argue that these dates are arbitrary or solely based on self-confirmation, it’s interesting to note that they were revised by a couple of orders of magnitude in the middle of the 20th century, based on findings from radiometric dating.
Anyway, I don’t necessarily think this information would change anyone’s mind as to creation vs abiogenesis, but at least for me personally, it helped some things click into place.
Joshua Bloch of Google Research writes an interesting post about how a subtle bug lay latent in binary search for decades, ready to be discovered as data-processing grew ever larger:
Specifically, it fails if the sum of
lowandhighis greater than the maximum positiveintvalue (231 - 1). … This bug can manifest itself for arrays whose length (in elements) is 230 or greater (roughly a billion elements). This was inconceivable back in the ’80s, when Programming Pearls was written, but it is common these days at Google and other places.
For the non-programmers out there, binary search is one of the most basic of algorithms, learned by every first-year computer science student. The lesson Bloch draws from this is important for every professional programmer to learn:
We programmers need all the help we can get, and we should never assume otherwise. Careful design is great. Testing is great. Formal methods are great. Code reviews are great. Static analysis is great. But none of these things alone are sufficient to eliminate bugs: They will always be with us. A bug can exist for half a century despite our best efforts to exterminate it. We must program carefully, defensively, and remain ever vigilant.
That’s why programming needs to continue to move towards strong typing, declared contracts, static analysis, etc. The fact that web sites are still usually written in Perl, PHP, Ruby, etc.–all weakly typed languages–is a damned shame.
It’s not news that RFID cards are a security risk, of course. But this Wired article makes chillingly clear just how easy RFID hacking is:
“I just need to bump into James and get my hand within a few inches of him,” Westhues says. We’re shivering in the early spring air outside the offices of Sandstorm, the Internet security company Van Bokkelen runs north of Boston. As Van Bokkelen approaches from the parking lot, Westhues brushes past him. A coil of copper wire flashes briefly in Westhues’ palm, then disappears.
…
The coil in Westhues’ hand is the antenna for the wallet-sized device he calls a cloner, which is currently shoved up his sleeve. The cloner can elicit, record, and mimic signals from smartcard RFID chips.
There are two main categories of attack: spoofing (by capturing and replaying, as in the example above), and tampering (e.g. changing the price of an item at a store, not much different from swapping bar codes).
The mitigations are also well known: to prevent spoofing, use encryption and/or a challenge-response protocol; to prevent tampering, use write-once chips. The real issue is spreading awareness of the need for security measures. Hopefully, articles like this one will help.
From Reuters:
A mocking announcement about Canada’s prime minister, “Stephen Harper Eats Babies,” was flashed on electronic advertising signs on Toronto area commuter trains for several days, and technicians were still scrambling on Tuesday to get the signs fixed. … Sorensen said she expects they will remain off line for a few more days until password-protected technology is installed.
Joel Spolsky discusses what’s involved in running a software company:
The level a programmer works at (say, Emacs) is too abstract to support a business. Developers working at the developer abstraction layer need an implementation layer — an organization that takes their code and turns it into products. … If a programmer somewhere is worrying about a broken chair, or waiting on hold with Dell to order a new computer, the abstraction has sprung a leak.
This was one of the main things I don’t like about working for a small company. There are simply not enough people to create that abstraction. E.g. at my last job, not only did everyone have to wear multiple hats, but many of the hats–in my case, things like backup sysadmin–had nothing to do with the job of application design, development or support.
At my current employer, however, Joel describes the situation:
Microsoft does such a good job at creating this abstraction that Microsoft alumni have a notoriously hard time starting companies. They simply can’t believe how much went on below decks and they have no idea how to reproduce it.
Perhaps it’s a bit of a fantasy world, but I think that’s exactly what every developer wants: to spend their time writing code.
At dinner last night, when I mentioned that I wanted to go back to grad school for Computer Science, a friend (who’s only known me for a few months) was a bit surprised. “But you seem to have such broad interests,” she said.
I replied that to pursue an academic career in an area, I have to be more than a dilettante; the subject has to be something I really love and do well at. That was true, but I realized afterwards that I didn’t really address the assumption underlying the question, which I think is a misconception a lot of people have about Computer Science.
The discipline of Computer Science is not about learning to program; that’s called Software Engineering. To a large degree, our educational system still conflates the two. (There is a discipline called Information Systems, but it tends to be taught at business schools, and so isn’t really suitable for programming instruction either.) That’s unfortunate, because most Computer Science graduates actually go on to programming careers, for which they have an inadequate education in Software Engineering. They either end up learning it through experience and on-the-job training, or they fail to learn it at all, as the large quantity of crap code out there attests.
While Software Engineering is an interesting and fulfilling profession, however, it has the same relationship to Computer Science that Mechanical Engineering has to Newtonian Physics. Mark Chu-Carroll has been writing some good lay introductions to foundational principles of the field at Good Math, Bad Math. (Specifically, Turing Machines, and First-Order Predicate Logic, which predates Computer Science but is very important to it.)
What Chu-Carroll’s posts make clear is that Computer Science, like physics, is essentially a mathematical discipline. Not math as in the sense of number-crunching (even less so than physics), but as in theorem-proving through axiomatic manipulation of symbols.
And the dirty little secret of math is that it is beautiful. The best (and completely non-technical) exposition of this is G. B. Hardy’s A Mathematician’s Apology. Computer Science–like other mathematical disciplines–is a search for elegance: for theories that pack as much general applicability and explanatory power into as little complexity as possible.
This search for elegance is not fundamentally different from what animates the social sciences, or even significant portions of the humanities. While they may not express their hypotheses in mathematical language, nor be as directly provable or falsifiable, the characteristics of a strong psychological or historical theory–empirical support, broad applicability, predictive power–are very similar to those of a useful theorem. Even in the creative arts, the best work is that which captures broad swaths of human experience or evokes a deep emotional response utterly out of proportion to the simple nature of words on a page, colors on a canvas, or a few professional imitators strutting across a stage or in front of a camera.
So there is no conflict between a specialization in Computer Science, and an appreciation for the broader intellectual landscape in which we operate. While practitioners of any field–not only scientists, but often also artists, writers, and philosophers–can become so myopic that they fail to see outside the assumptions and practices of their discipline, there is a continuity between all fields of knowledge, which resists our attempts to pigeonhole ourselves.
This CNet story, unfortunately, seems to be pretty routine:
It’s mind-boggling to me that this sort of thing isn’t routinely protected by encryption. I think we need something similar to HIPAA for the financial industry.
I’ve expressed my opinion in the past that acceptance or skepticism of evolution is not necessarily a matter of knowledge or ignorance of science. Today Gene Expression makes the same point more eloquently:
This posting from The Daily WTF is a superb example of cleverness gone bad. It won’t make much sense unless you’re a programmer, though.
The bad news:
The good news: maybe if Karl Rove loses his infamous Blackberry, someone in power will finally care enough to do something about the screwed-up software patent system.
A study at Harvard has found that some skills only develop during the day, and some only overnight:
So, practice your tennis back-hand in the morning, and your vocabulary flashcards at night. It’s scientific!
A couple of C|Net stories today had a common theme.
The common thread? Both guys did their deeds using their own IP address… and a dedicated work IP, no less.
So as a Public Service Announcement, I just wanted to remind all my readers: if you’re going to do something felonious, or something that could get you fired, please mask your address!
[powered by WordPress; 6 queries. 0.164 seconds ]
This is not the site of journalist and author Daniel Glick. His website is at danielglick.net
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Dec | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||
Sick Transit: A directionless train of thought. Sic transit cogitationes Danis.