Archive for the ‘Computing’ Category

Crack Overflow

Thursday, August 14th, 2008

StackOverflow logo

Jeff Atwood of the popular Coding Horror blog, has a new site in closed Beta right now called StackOverflow. It’s awesome and is addictive as hell. The site has a digg style interface for programmers to interact and ask each other questions, and hopefully this will be the nail in the coffin for that godforsaken hell hole known as Experts Exchange, and their ROT13 nonsense. I got fast tracked on the waiting list (apparently already in the thousands?) by transcribing a section of the project’s weekly podcast, and this will definitely be a site that I hit up 10 or more times a day.

 In my brief experience with StackOverflow so far, I’ve noticed a handful of innovative and interesting features that I think make this site stand out regardless of its content matter. I really like the fact that the site uses openID, because unless sites start using it - it’s not going to gain critical mass, and I don’t feel it was that inconvenient to signup for one. This site actually made me finally go take the 15 seconds to acquire one from verisign, and I’m glad that they finally made me get around to doing this.  The interaction model also seems much more solid than a regular forum, in its methods for the community to self-police and up/down mod posts via a reputation based system. What this boils down to, is that if you ask good questions, or provide good answers - other users will notice and boost your reputation, which increases your standing in the community and allows you to have more influence on the site. For example, until I hit 100 reputation, I lack the authority to down-mod anything which will be an effective measure against griefers and spammers.Looking at how StackOverflow is handling their beta, I will admit right now I intend to steal their process for managing signups and feedback because it is that solid, and imitation is the highest form of compliment. Signups for the beta are handled via a Google Spreadsheet form, which is quick and painless to set up - requiring maybe 15 minutes tops to get running, and that’s assuming you didn’t already have a Google account. Second, the developers are leveraging a new service called uservoice.com, which allows them to have a Dell Ideastorm feedback system at no cost, and no effort. This is huge. A public beta is useless if you can’t get effective feedback from your users, and I guarantee that my new venture pip.io will be using this webservice.

If you haven’t gotten your name on the waiting list yet, do it now. Even at closed beta, the community is vibrant and lively. At 8 AM CST I was able to ask a question regarding good workarounds for the fact that Java has no unsigned byte primitive and got 3 answers within 10 minutes. This is awesome, don’t wait, this site is going to become the defacto place to get programming answers online.

Who Hacked Homer Simpson?

Wednesday, July 9th, 2008

In an old episode of the Simpsons, Homer reveals that his aol account is ‘Chunkylover53′. Someone has gained access to this account and has posted in the away message:

 ’CHECK OUT THE NEW SIMPSONS EPISODE THAT WE’RE ONLY RELEASING TO THE INTERNET AIM FANS! BE THE FIRST TO EXPERIENCE THE MAGIC BY CLICKING THE FOLLOWING LINK: http://d4.myfreefilehosting.com

SELECT RUN, (or RUN from current location) OR save to DESKTOP and DOUBLE CLICK!

ENJOY, AND SEND US YOUR FEEDBACK!

This link points towards a kimya.exe (hmm, why would a video file be a windows executable?) My virus scanner shows this to be the trojan Truko-431.

As I doubt Homer Simpson is the kind of guy looking to mess up my system with malware, I wonder what kind of jerk would want to hack him? As I would assume that Matt Groening or one of the other Simpsons cabal created this account, has someone compromised one of their systems?

UPDATE:

Whomever has access to this account is now posting the following away message, probably because the first one was too obvious.


The link is now fixed everyone.

CHECK OUT THE NEW SIMPSONS EPISODE THAT WE’RE ONLY RELEASING TO THE INTERNET AIM FANS! BE THE FIRST TO EXPERIENCE THE MAGIC BY CLICKING THE FOLLOWING LINK: http://66.197.197.101/~ydelcom/Episode439.exe

SELECT RUN, (or RUN from current location) OR save to DESKTOP and DOUBLE CLICK!

If the hyperlink is unavailable to you, you can copy and paste it into your browser.

ENJOY, AND SEND US YOUR FEEDBACK!

I carefully downloaded this file, and it has an identical md5 hash as the originally posted kimya.exe. Are people really this stupid? Doing a whois on the ip address provided the email address abuse@hostnoc.net, and I’ve informed them about their service being used to spam trojan horses. So far exploration on this server hasn’t provided much of interest, but it’s still early.

CNET Interview with Windows 7 Mismanager

Friday, May 30th, 2008

It continues to elude the top brass at Microsoft that the world has changed and Windows 7 manager Steven Sinofsky is doing his best to ensure that the next offering of their desktop operating system will be just as big of a commercial flop as the version that preceded it. In an interview with Ina Fried of CNET’s Crave blog posted yesterday, Sinofsky was asked some very broad questions about the next version of Windows and basically refused to elaborate on anything other than the fact that it will be the successor to Vista. He then goes on to mention that a classic closed-doors development model is not outdated for the production of software.

In the age of Web 2.0 and agile software development this is quite possibly the stupidest thing someone could say, and further proof that Microsoft is on an express train to irrelevance. Rule #1 of business is “give the customer what they want”, and the gurus in Redmond haven’t learned yet that it might be beneficial to ask. Imagine all of the often complained about “features” present in Vista that might have been refined to a level of acceptability or removed if the Windows team had set up something like Dell’s Ideastorm? Windows users would be able to gripe about things that they don’t like, and ask for things that Microsoft committee groupthink hasn’t imagined – so that by the time the product actually ships… people might actually want to buy it! This is underscored by the philosophies of agile development where you are constantly in contact with your customer and making incremental refinements towards exactly what the customer wants.

Also one might wonder what point there is to all the secrecy, when Microsoft holds a defacto monopoly on desktop operating systems – it’s not like IBM is waiting in the wings to unleash OS/3 and steal their feature set, offering it on a line of PC’s that they don’t even make anymore. This point is underscored when the Linux and Mac developers have already branched off in entirely different directions and would probably rather die than admit imitating anything that came from Windows.

Amazon, Google, Dell and countless others have harnessed the wisdom of crowds to refine their business models and it seems that Microsoft thinks that their insulated community knows best, and would rather pretend that its still the 80’s where market will love anything that they send to production. Much of the techworld as of late has become defined by transparency, and one must wonder if the lack of discussion on Windows 7 specifics is because of the lack of innovation, or insecurity regarding their ability to deliver on anything they promise. (WinFS, anyone?) With a release date still years away, there’s still plenty of time for the development team to throw together a webapp that would take less than a day to write, and that will save millions of users all over the planet from Windows ME v2.0. I wouldn’t hold your breath though.

Learn How to Think

Monday, September 17th, 2007

The good folks at O’Reilly were kind enough to send me a copy of Beautiful Code to review. I really enjoyed this book and highly recommend it to anyone who spends any significant amount of time in front of a screen cutting code. The following is my review on what I’m sure is a classic in the making:

A frequent topic of discussion among those in any technical field is for a short list of essential books that anyone worth their salt has read. With regards to software engineering, two classics quickly come to mind: Code Complete, and Design Patterns, as well as a recent publication joining the ranks of these epics, Beautiful Code by O’Reilly Media.

What makes Beautiful Code stand apart from the rest, is that it’s format is so unconventional when compared to most other programming texts. The book is comprised of 33 Chapters, each written by a different author about a particular bit of code they had written and thought to be particularly eloquent. The best way to explain why this book is so wonderful is to make an analogy about the differences between learning something via a lecture as opposed to a private lesson. Most instructional books will take the lecture approach, where the author shows you one correct way to solve a problem, or complete a certain task and the reader must then digest that as best as possible. Beautiful Code is more like a private lesson in which the author of each chapter is giving the reader personalized attention by explaining their thought processes, how they arrived at each step, and occasionally showing some dead ends that didn’t work out. Now consider that these private lessons are being given by such legendary names as Brian Kernighan, Charles Petzold, and Yukihiro Matsumoto - and it becomes obvious why this is a must-have addition to any serious software engineer’s bookshelf. Some particularly memorable sections include Karl Fogel’s discussion on the origins and implementation of the Subversion Delta Editor and the look inside Google’s MapReduce technology by Jeffrey Dean and Sanjay Ghemawat.

As stated earlier, one of the best strengths of this book is that it is language neutral. In each chapter, as the author is speaking from experience on a particular project, rather than writing a chapter for a hypothetical “Better Programming in Language XYZ”, you will see code snippets in C#, MSIL, Python, Ruby, and several other languages (There’s even one chapter with Emacs Lisp!). This is important because the insight gained from this book will not be diluted from one language falling out of favor or into obsolescence, and allows for the possibility of this title being just as valuable ten years from now.

Many books will teach you how to solve a problem, but rare are those to teach you how to think. Beautiful Code is one of those select few, and will keep you coming back from project to project to consult its veteran sages of computer science. A worthy edition to any serious programmer’s library, and hopefully a second volume is not far off.

More on Programming for Beginners

Tuesday, September 11th, 2007

A while ago, I wrote a post about how I think that programming is really difficult to get into these days without a ton of effort on the learner’s part due to varying factors such as language complexity and operating system api’s. I then proceeded to discuss a product by MIT Media Labs called Scratch that was designed to teach children programming by addressing these issues. In case you don’t remember, I wasn’t too fond of Scratch.

Last night at the Chicago Ruby Users Group, there was a presentation on Shoes, which is another project in this vein that uses Ruby as its underlying language. Shoes addresses all of the complaints I had with Scratch, and lets you write code instead of relying on a mouse/GUI driven interface. Writing a program in Shoes is very straightforward, and you can do a lot of neat stuff in a very few, simple, straightforward lines of code. I was pretty impressed. This is exactly the type of thing we need in a world that is devoid of QBasic.

Here’s a screenshot of a sample program called follow.rb that draws circles depending on the position of the mouse cursor: (the sourcecode is in the terminal to the right of the demo)

Shoes Demo

This screenshot doesn’t really do it justice though - because Shoes is built on top of Cairo and Pango, the demo runs very smoothly and doesn’t reek of jittery animation like so many other sandbox programming environs.

While it’s definitely not a finished product ( 1 or 2 of the demos segfaulted on me due to some C code in the Shoes app) - it runs on Windows, OS X   AND   Linux. I had no problems checking out the source from subversion and building Shoes on my Ubuntu 7.04 laptop. Shoes is a huge step in the right direction with regards to addressing the issue of getting kids into programming by making it less of an impossible task. I look forward to watching this project develop, and really hope that it catches on.

Midnight Programming

Thursday, August 23rd, 2007

Recently read Soul of a New Machine which is a great read for any engineer, especially a Computer Engineer as the plot revolves around Data General’s battle to create a 16/32 bit hybrid computer in the late seventies.

One passage in particular stuck out to me, regarding a team member talking about their college experience:

It was an IBM Machine, archaic now but gaudy then. The university owned it, in effect, and it lay inside a room that none but the machine’s professional caretakers could enter during the day. But Alsing found that a student could just walk into that room at night and play with the computer. Alsing didn’t drink much and he never took any other drugs. “I was a midnight programmer,” he confessed…
…About ten other young undergraduates regularly attended these sessions of midnight programming. “It was a whole subculture. It’s been popularized now, but it was a secret cult in my days,” said Alsing. “The game of programming - and it is a game - was so fascinating. We’d stay up all night and experience it. It really is like a drug, I think.” A few of his fellow midnight programmers began to ignore their girlfriends and eventually lost them for the sake of playing with the machine all night. Some started sleeping days and missed all of their classes, thereby ruining their grades. Alsing and a few others flunked out of school.

As I read this - it was all too eerie and familiar. The allure of technology. When I first started undergrad, we didn’t have a computer in some obscure closet - but we did form our own nerd subcultures around certain projects and places. For the Computer Science students at the University of Arizona it was the Harvill Lab then later after Harvill was closed, the Gould-Simpson lab aka “GS228″ aka “The Human Fishtank”. The Human Fishtank was room that had been designed for big iron when the building was designed - air-conditioning coming out of the floors, and plexiglass walls for people to marvel at the latest room-filling mainframe industry had produced. Later when big iron fell out of style, they crammed the room full of cheap pcs and desks - and it was guaranteed that given any day of the year, any time of day (thanks to the 24 hour access), you could go in there, cut some code and find a person or two to talk shop with.

Or if you went over to the Aerospace and Mechanical Engineering building after 5pm - there was an entirely different, yet similar subculture that came out of the woodwork after dark. The SAE kids would work all night on their Formula car, occasionally sleeping under tables or in their 3rd floor office. The asian grad students had apparently evolved to a state in which they required no sleep and would be hard at work advancing the state of the art in fluids or rocket design. There wasn’t more than a handful of rooms in the 9 floor building that were uninhabited or let alone had the lights off. I would generally be in the Aerial Robotics lab working on code for Machine Vision or AI for our UAV, or sometimes on the other side of the building actually wrenching on an aircraft with some fellow students. On a slight tangent, I think a defining moment in my life was the night I turned 21. Popular tradition in college, is on this special occasion for your friends to take you to a bar for the first time to get you monumentally drunk. I spent my last night being 20 in a laboratory prepping a UAV for a maiden flight that ended in a spectacular crash.

In one way or another, like a drug - each one of us Midnight Engineers paid for our addiction in one way or another. Just like the book says, some lost their grades, some also flunked out of school. Myself, I lost my girlfriend - this caused me in the months that followed to look deeply into what else I had lost in this pursuit. I was no longer playing music, I spent most of my time alone debugging programs and hardware, I had lost touch with many of the people who cared about me, I no longer had a girlfriend that loved me.

What was the point?
Was I an addict?
This realization made these engineering pursuits less and less gratifying, until I lacked all interest and figured that some serious reevaluation of my current life was in order. Within a week, I had dropped out of school and was packing my belongings to head back to the Midwest to sort my life out.

That was about a year and a half ago, and I think that in the time I’ve learned a lot about life. Dropping out of college was probably the best thing that ever happened to me.

Enabling Fn Keys on Sony FS Series Laptops

Wednesday, May 23rd, 2007

As many of you may know, Sony laptops don’t always play nicely with Linux due to a bunch of closed hardware. One major annoyance is the Fn keys not working out of the box, and not being able to adjust volume or brightness with them.

Doing some research, I found a solution on the Ubuntu forums here.

Reading through the posts and doing the command line work can be frustrating if you’re new to Linux and aren’t comfortable yet with the terminal - or if you’re just lazy.

I’ve put together a convienience script that will pull everything in, install a patched sony_acpi kernel module to control brightness programmatically, and enable the Fn keys.

Let me know if this helps you out!
(Ubuntu 7.04 / Feisty Users Only!)

Download: feisty-fsfn.sh

The Itch Remains.

Thursday, May 17th, 2007

When you first hear about it’s goal, MIT Media Lab’s Scratch seems like a good idea - create a programming environment that is accessible to young people getting their feet wet with code for the first time. As you look into the matter further, the world really is lacking a good first programming language these days.

Now for an aside to a long time ago in a basement 30 miles away…
Every programmer has their story of their first programming experience, mine was discovering QBASIC on accident while messing around in DOS on my best friend’s 386sx. What followed was an entire summer learning basic concepts from the online help system. To this day I still remember do: while $INKEY = “” as a rudimentary way of trapping keyboard input. Nostalgia and poorly coded text games aside, this brings me to my point. What is today’s analogy for QBASIC in 2007?

Coding these days on any platform requires serious knowledge, and BS’ing your way through a program with almost total disregard for structure, style and logic the way I did as a kid back in 1994 is next to impossible these days. Having a sandbox language to write trivial programs is important! If I’m 10 years old, I could care less if a language is statically or dynamically typed, or if it has a particularly good standard library XML parser! I just care about seeing my name displayed in alternating colors, feeling that I’m writing a program, and most importantly the feeling of discovery that comes with.

Scratch pretty much fails on all levels in this respect. The first thing that comes to mind when looking at the Scratch interface is that MIT has recreated some Adobe Flash with some Lego-Centric design motif. If this didn’t have the MIT Media Lab stamp on it, it would be universally panned across the board as reinvention of the wheel. Why are people getting so amazed at the ease that a poorly animated cat with annoying sound effects can be created with the drag and drop interface? Is this something we need to be encouraging people to do more of, have any reviewers been on the internet lately? (Before trying to argue with me on this, find a ytmnd meme and try and explain how that’s much different.)

Most bothersome to me is the total lack of coding involved via the drag and drop interface. You can’t make a legitimate product aimed at getting young people excited about coding, if there is a complete absence of the aforementioned! Scratch is a software toy and nothing more. It can be described as marginally educational I guess, but I have a hard time seeing anyone doing much more with it than making inappropriate animations and trying to harass people nearby with a barrage of sound effects. Call me old fashioned, but in terms of programs for use in schools to develop the underlying skills to code, such as math and critical thinking - I’ll take Number Munchers and The Incredible Machine anyday.

Maybe I’m wrong, and I just don’t get it?
Time will tell!

Linux isn’t Going to Sell Itself

Sunday, March 25th, 2007

Reading slashdot this week, I came across an article talking about a new effort by Microsoft called linuxpersonas.com, which is an online sales kit for Microsoft technologies at the enterprise level and talk various customer profiles out of using Linux. Needless to say, as a consultant that makes part of his living by pitching open-source, and doing installations and maintenance of these free platforms - it’s hard to flip through this site without doing some serious eye-rolling.

In any case, I think this site underscores a serious weakness in Linux/OSS in general - that is, that there is not very much in the way of organized efforts to expand the marketshare with regards to traditional marketing. All too often, Linux and related technologies seem to rely on Field of Dreams style promoting, “If we build it, they will come.” The development community at times seems to be so in love with what they have created, that they consider the dominance of their platform inevitable. To me this feels strangely similar to Karl Marx preaching about the natural evolution to communism, and the historical inevitability of the demise of Capitalism - the point being, both arguments as far as I’m concerned are pie in the sky dreaming.

If Linux is going to succeed and get the percentage of machines with it installed to the point where it becomes more than a buzzword seen in CNN technology section articles, or something a IT Manager will take a 24 hour crash course in, somebody needs to sell it. It is important to clarify here that I am not proposing that we go and throw a pricetag on a shrinkwrapped install disc - when I say sell, I mean that people need to get in the trenches and go out getting businesses and everyday people to get this software on their computers. We need to see sites popping up that are the equivilent of linuxpersonas.com, but are designed to help consultants convince their customers to run Linux in their company. We also need real, legitimate advertising by the dominant players of our platform. When Ubuntu 7.04 ships next month, billionaire Mark Shuttleworth should sink some serious money into conventional advertising to get his product noticed by people who have never even heard the term Linux before. We should see MySQL running some ads in Computer Publications comparing their product to MSSQL or Oracle offerings.

Novell has started to do this in some respects by making some parodies of the infamous Apple Computer Mac Guy / PC Guy ads, and introducing a girl character named Linux, but at this point these ads aren’t very effective at doing much more than getting a quick laugh out of nerds who already know about Linux and love it. I would like to see a Novell ad where the three characters are talking about going out for an OS upgrade (which could be new clothes or something) and they all open their wallets and show how much the overhaul will cost them. The PC guy takes out a stack of $100 bills and talks about how he’ll need Vista Ultimate and a copy of Office 2007, the Apple guy takes out a $100 bill for a Leopard upgrade, but also has a lot of smaller bills he plans on spending on the Mac shareware community. At this point the camera pans over to the Linux character who is having all of her stuff bought for her by a crowd of people, including some people with briefcases full of money, who are wearing shirts with IBM, Red Hat and other corporate logos.

Until we see a serious marketing effort on the behalf of Linux technology, I have a hardtime concieving any major marketshare growth of open-source technology. In the meantime, redmondpersonas.com is registered and under development. Check back soon!

Apple 10 Years Later

Tuesday, March 20th, 2007

Youtube is usually a great place for a quick laugh while at work, or to savor illegally uploaded copywrighted material - but it also occasionally is a great source for finding documentation on computing history.

One clip worth watching is the Boston Macworld Expo in 1997 - which was the return of Steve Jobs to Apple, his shuffling of the Board of Directors and his plan to return Apple to profitability. Among his key points are focusing on the markets where Apple was still relevant (Education and Creative Professionals) , as well getting Apple innovating again - the company itself needs to “Think Different”. In short, almost like a communist government in the 60’s, Jobs outlines a “5 Year Plan” to modernize the company and catch up with the West.

10 years later, Steve Jobs has delivered everything he promised and more.

I can’t think of one of my friends at Columbia College studying art who doesn’t either already have a Mac, or have plans for aquiring one as soon as possible. Steve mentions in this video that 60% of all websites are designed on Mac Hardware, and now in 2007 Mac’s are by far the defacto dev machine of choice when designing anything for the web due to their UNIX plumbing and the ability to run every browser on the market natively.

I find it interesting to watch the Macworld 97 video, where Apple was on extremely shaky ground with an uncertain future and then watch clips from this year’s conference where it seems Apple is only headed toward further forms of world domination and hightech conquest.

Something interesting to consider, is where was Microsoft during this 10 year period? With their oldest and classic competitor on the ropes, Microsoft chose not to deliver a knockout punch - instead it decided to go pick flowers or some other completely unrelated activity, while its historic nemesis rebuilt itself.

I know that cooperation was emphasized in the 97 Conference, but what Microsoft chose to do can only be described as “traditional Microsoft thinking”. That is, ignore the market, ignore your customers and overdevelop by committee thinking products designated by tradition and the insular culture at Redmond. The type of thinking that dictates, who cares what the rest of the world does, because we assume that they will all do what we tell them, use our standards and technologies as soon as we release them, that the world is ready to snap in line, repent their misguided ways, and do things the Microsoft way on release day.

What has Microsoft done in any of the area specified by Jobs? Web design with state of the art Frontpage? Edit videos with Microsoft Movie Maker?

Give me a break.

Any person in the creative fields use Microsoft products only because they are forced to by work or by budget. It is a coincidence that Adobe compiles their application suite for Windows because its a big market share, not because of any brilliant strategy by Redmond.

As a recent convert to the cult of Mac, I only regret not doing it sooner as my Macbook Pro is by far the best machine I’ve ever owned - and I can’t wait to see what the future holds for Apple 10 years from now.