When I plugged in my inexpensive electric razor to charge, I pleasantly surprised by this delightful animation. I deeply respect this level of attention to detail. Whoever created this animation has converted at least one Remington user into a loyal Remington customer.
Saturday, February 12, 2011
Saturday, January 29, 2011
Why I want to work at Fog Creek
I'm applying for a summer internship at Fog Creek Software, a well-respected software company in NYC. I'm going to be interviewed by one of their developers next Tuesday, so I've been trying to anticipate the questions I will be asked and give them some thought. Tonight, I asked myself a simple but important question: "Why do you want to work at Fog Creek?"
First, I thought I wanted the experience. An internship at a reputable software company would look great on my résumé. I briefly considered whether I was in it for the office. Then, I thought that I wanted to prove to the world that I could build software, not just make little toys and read big books. However, I quickly realized the true source of my motivation: I want to work at Fog Creek to prove to myself that I can build software.
Until now, my most substantial project has been my work on OpenInkpot last summer. Assembling a cross-toolchain is highly technical work, but it's not a creative act. I didn't design the structure of the toolchain; I just put the pieces together.
I've tried to prepare myself for a career as a software developer by reading books on software structure and construction, but I know that's not enough. I won't know that I'm ready until I've built something real.
To become a software developer, I must develop software.
Friday, January 21, 2011
I was dead wrong
More than a year ago, I posted Programming is more than pointers and recursion, arguing that CS students don't need to learn about pointers and recursion. I wrote it in response to The Perils of JavaSchools, a 2005 blog entry in the legendary programming blog Joel on Software. I realize now that I was dead wrong, and I've decided to explain why (not only because someone from Fog Creek Software will be evaluating my blog.)
My central argument was that since pointers and recursion aren't often used in the software development industry, they aren't necessary topics for CS curricula. I was high on Python and Design Patterns at the time and fervent in my belief that all problems could be solved with straightforward, readable code. What I failed to realize is that if you can't (not don't) understand pointers and recursion, you can't have a meaningful career in programming.
Understanding pointers means more than memorizing the illogical C pointer syntax. It's an understanding of the difference between reference and value, between creating lightweight pointers and copying massive objects. Any programming job that doesn't require you to think about whether a variable should be a pointer or a value probably doesn't provide any challenge or variety. It certainly wouldn't provide any job security or marketable skills. Pointers are fundamental to programming.
Likewise, recursion is more than replacing a function call with the function's body; it's an illustration of the encapsulation of functions. Recursion is a stepping stone to first-class functions and closures. These aren't academic knick knacks with no practical application; they are powerful features in many popular languages.
In summary, Spolsky was right and I was wrong. Pointers and recursion are powerful tools that belong in the belt of every software developer. If you can't learn them, stick to HTML and CSS.
Wednesday, September 8, 2010
Where I have been
I haven't written an entry on this blog for about a month and a half. I stopped posting because I was unsatisfied with the quality of my entries. In a word, they sucked.
I realized this after listening to 149 Surprising Ways to Turbocharge Your Blog With Credibility!, Merlin Mann's and John Gruber's talk at the SxSW Interactive conference. Their advice to aspiring writers is simple: write well about topics which interest you.
Before now, I was putting frequency before quality, partially due to a foolish commitment to write one blog post a week during this year. I was writing pointless updates because I didn't have the time to create anything meaningful. Now I know that was a mistake. I am not a blogger; I'm a college student who enjoys writing.
Of course, this isn't the end of Welcome to Obscurity; it's the end of the shallow updates that have composed most of this blog's content for the last year. I will be writing infrequent, in-depth, polished entries about things about which I care.
Other news
Although I haven't been updating this blog lately, I have been blogging elsewhere. I started Life at the U to share my college experience with my family. It's been a huge hit within my social circle, so I've been updating frequently, sometimes multiple times per day.
Thursday, July 22, 2010
New look, same direction
Well, I've finally ditched my custom template for a generic Blogger template. The reason? I wanted to use Blogger's native share toolbar, and my template didn't support it. I simply don't have the time to wade into the HTML and add the feature, so it's time to bid farewell to originality and let Blogger handle my layout. That is, until I find the time to switch to Tumblr.
In addition, I've disabled comments. This blog isn't meant to be a noisy discussion by a large group; it's a platform for me to talk about what I find interesting: myself, my projects, and other things. If you'd like to respond to one of my posts, feel free to by posting an entry on your blog or sending me an email at [redacted]. I'd love to hear from you!
Saturday, June 26, 2010
Neocubes mini review
I can't remember what I did before I carried a Neocube around with me. I must have waited quietly at doctor's offices, staring blankly at the walls or perhaps skimming the ancient magazines. Now, I simply pull my Neocube out of my pocket and begin constructing a polyhedron. If I don't have long to wait, I'll wrap the chain of spheres into a solid tetra- or icosahedron. If the other waiters are glancing at watches and complaining about the wait, I'll attempt a modular dodecahedron or a wireframe truncated icosahedron. I can fight off boredom for hours when I have my Neocube with me.
However, I'm not the only one to enjoy playing with a Neocube. Every person to which I've shown my Neocube, from little kids to my own Grandpa, has been mesmerized. Some people make jewelry, some construct flat shapes, and some just like coiling the chain of magnets, but everybody enjoys playing with them. My extended family liked playing with my Neocube so much that I purchased a big batch for gifts.
Neocube is one of the best pocket-sized time-waster I've ever seen, comparing favorably in wait-time compression with the iPhone and iPod Touch. If you want to have a 'cube of your own (and send me some pocket change), you can buy one from Amazon for only $16 (at last check). Don't miss this deal!
Thursday, June 24, 2010
You. Will. Be. Cancelled!
The words popped up every few sentences, turning the already repetitive lecture into a free-form poem of dullness. The comptroller missed no opportunity to remind students — in broken English — that there would be consequences for missed late payments, including cancellation and late fees. He loved to use the phrase "It's gonna cost ya!" to emphasize that the comptroller's office would be more than happy to take your money.
The USF comptroller's presentation dragged on for an eternal fifteen minutes before the incident. The comptroller asked a simple question about the repercussions of a missed deadline, expecting to answer it a second later. Instead, a student in the balcony shouted "You. Will. Be. Cancelled!" and laughter rippled through the auditorium.
Suddenly, the atmosphere of the lecture changed completely. When the comptroller concluded the answer to his own question with "You might be cancelled," the audience burst into laughter. He immediately recognized his newfound catchphrase and began using it to spice up his presentation. He loosened up, and the students began listening intently to wait for the next catchphrase. When he concluded his presentation with "Don't get cancelled!" the entire audience applauded loudly.
In my opinion, this dynamic lecture was the highlight of the whole orientation.