c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
esc
cancel

Latest Updates: software RSS

  • erik 10:02 am on February 17, 2010 | 0 Permalink | Reply
    Tags: , software,

    “Coders at Work”

    Coders at Work book cover

    I finished reading “Coders at Work last night. In it, author Peter Seibel interviews 15 legendary programmers, discussing how they got started with computers, how they learned to program, how they read and debug code, etc. The interviews cover a wide range of opinions and approaches, and offers a fascinating look at “computer science” history.

    The format of the book is a little unusual, in that it’s entirely interview transcripts. No analysis. No author-interpretation. Just recorded conversations. At first it’s a little surprising that one can publish a book like this; But then you get into the content and it’s wonderfully engaging. Analysis and interpretation would just get in the way of letting these folks talk. Reading direct quotes makes the content all the more exciting.

    The book isn’t for everyone (obviously), but I rather enjoyed it. There’s some great stories about the history of our profession, and many topics raised that inspired additional research. (I went out and found a number of research papers referenced in the interviews, and bookmarked a lot of content for further exploration.) There’s also a fair amount on the history of different programming languages, and I have a fascination with programming languages, so it was a great fit.

    A few take-away themes and ideas:

    • While programming was no easy task in the early days, at least it was possible to fully-understand the hardware and all the software running it (as opposed to modern computers.) The modern computing environment presents very different challenges to present-day programmers, especially those new to the field.
    • Even some of best use print statements.
    • Passion and enthusiasm separate good programmers from great ones.
    • In academia, you have time to think about the “best” solution, without the deadlines imposed on commercial developers.
    • There’s certainly a component of “doing great work” that requires being in the right place at the right time — sometimes it’s just a matter of getting staffed on the right project.
    • There’s some negativity towards C/C++ in here, mostly due to it’s negative impact on compiler and high-level language development. (i.e., one school of thought is that you give people a high-level language and make the compiler smart. The other is that you give people a low-level language and let them do the work. Unfortunately, humans aren’t so good at hand-writing code optimized for concurrency, but once you have a language that let’s them try, it’s hard to fund compiler research.)

    Here’s a few of the quotes I highlighted while reading:

    “One of the most important things for having a successful project is having people that have enough experience that they build the right thing. And barring that, if it’s something that you haven’t built before, that you don’t know how to do, then the next best thing you can do is to be flexible enough that if you build the wrong thing you can adjust.” — Peter Norvig

    “…there are user-interface things where you just don’t know until you build it. You think this interaction will be great but then you show it to the user and half the users just can’t get it.” — Peter Norvig

    “I get so much of a thrill bringing things to life that it doesn’t even matter if it’s wrong at first. The point is, that as soon as it comes to life it starts telling you what it is.” — Dan Ingalls

    “…a complex algorithm requires complex code. And I’d much rather have a simple algorithm and simple code…” — Ken Thompson

    “If you can really work hard and get some little piece of a big program to run twice as fast, then you could have gotten the whole program to run twice as fast if you had just waited a year or two.” — Ken Thompson

    “if they’d have asked, ‘How did you fix the bug?’ my answer would have been, ‘I couldn’t understand the code well enough to figure out what it was doing, so I rewrote it.’” — Bernie Cosell

    “You have to supplement what your job is asking you to do. If your job requires that you do a Tcl thing, just learning enough Tcl to build the interface for the job is barely adequate. The right thing is, that weekend start hacking up some Tcl things so that by Monday morning you’re pretty well versed in the mechanics of it.” — Bernie Cosell

    “…computer-program source code is for people, not for computers. Computers don’t care.” — Bernie Cosell

    “if you rewrite a hundred lines of code, you may well have fixed the one bug and introduced six new ones.” — Bernie Cosell

    “I had two convictions, which actually served me well: that programs ought to make sense and there are very, very few inherently hard problems. Anything that looks really hard or tricky is probably more the product of the programmer not fully understanding what they needed to do” — Bernie Cosell

    “You never, ever fix the bug in the place where you find it. My rule is, ‘If you knew then what you know now about the fact that this piece of code is broken, how would you have organized this piece of the routine?’” — Bernie Cosell

    “Part of what I call the artistry of the computer program is how easy it is for future people to be able to change it without breaking it.” — Bernie Cosell

     
  • erik 8:30 pm on January 23, 2008 | 1 Permalink | Reply
    Tags: , , , software, ,

    Recovering deleted images from a Nokia N90 (Symbian OS)

    Over the holidays we had an accidental deletion of every image on one of our phones (a Nokia N90, Symbian OS device.) Mild panic was quickly replaced with a gentle pondering on the difference between what a normal person would do in this situation vs. what a geek would do. The geek process goes something like this:

    Step 1: Get the memory card out of the phone as quickly as possible

    Either shut the phone down and pull the card, or use the super-secret combo hidden within the profile-switching shortcut to have the phone un-mount the card.

    Step 2: Obtain a USB memory card reader

    I’ve needed a reason to buy one of these for a long time. Good thing I had a gift card left from the holidays. I went with a Dynex gazillion-to-one card reader, not for it’s technical superiority, but because it was the only thing the shop nearby had.

    Step 3: Stick the memory card into the reader, and plug the reader into your Linux box

    Mine happens to run Ubuntu at the moment, but the results will likely be similar on other distros.

    Step 4: sudo apt-get install testdisk

    Testdisk “was primarily designed to help recover lost data storage partitions…” and includes a utility called “PhotoRec“, which is what you want.

    Step 5: Run photorec

    PhotoRec is a data recovery tool designed specifically for recovering files from digital camera media. It supports a number of file-system formats, including the FAT format that Symbian OS uses on it’s memory cards. PhotoRec is a text-based, terminal application, but it does the job perfectly.

    Select the mounted memory card from the list of drives (which should be easy to spot given how small memory cards are relative to modern hard drives), and send it scanning. PhotoRec can be told to look for specific file types (you want JPG’s, in this case), but by default it will look for just about any media file format that you’re likely to have on your phone. Files will be recovered and written to a local directory.

    Step 6: Sigh in relief when you see your beloved cat pictures returned to you

    PhotoRec isn’t going to restore the images to the memory card’s file system such that the phone can see them again, but you’ll have the pictures on your Linux box now, and can copy them back over if you choose to. The naming scheme will be different, but that’s an acceptable compromise.

     
  • erik 12:19 am on January 23, 2008 | 0 Permalink | Reply
    Tags: , , , software,

    Lily: Visual programming in JavaScript

    I have an odd fascination with Visual Programming languages, and while I’ve gotten so far as sketching out some UI concepts and object models for a text-processing focused, web-mashing, visual programming environment, I’m a long way from having anything that works. Much to my surprise then when David Ascher dropped a link to the Lily project on his blog today. Holy cow this is sweet. Think PD or Max/MSP written in JavaScript, running in a browser, with modules for popular Web API’s and JavaScript frameworks (ex., “Amazon, Flickr, Wikipedia, Yahoo; UI modules that wrap widgets from YUI, Scriptaculous, JQuery, Google Maps….”)

    Check out one of the demo’s here:

    (Via: Lily: JavaScript, visual programming, fun.)

     
  • erik 10:31 pm on June 20, 2007 | 2 Permalink | Reply
    Tags: , , , , , software, ,

    Ubuntu + Hildon UI = in-Car PC UI

    Awhile back, Ubuntu announced a mobile and embedded edition of it’s popular Linux distribution. The buzz was around the possibility of Ubuntu Mobile showing up on future UMPCs. The news caught my eye, but didn’t really get my attention until the plans for Ubuntu 7.10 (Gutsy Gibbon) were announced:

    “Ubuntu 7.10 will be the first Ubuntu release to offer a complete mobile and embedded edition built with the Hildon user interface components” (developed by Nokia for the Maemo platform.)

    Now that’s interesting. Could it be that we’ll see Ubuntu Mobile booting on Nokia N800’s? It’s certainly a possibility — and one that could bring a larger breadth of software to Nokia’s mobile Linux tablets.

    However, as interesting as it may be if Nokia adopts Ubuntu, the possibilities for wider Hildon support didn’t hit me until my drive home today. It was one of those obvious moments. I had been using my Nokia N800 while walking to my car, so the touch- and small-screen friendly UI was fresh in my mind. Then I started thinking about my Car PC. It uses a 7″ touch screen and runs Ubuntu (a full distribution, with a UI designed for full-size monitors.) Running Gnome on my cheap, in-car 7″ monitor makes for a pretty lousy experience. Text is hard to read, and everything is too small to click on. However, if this news is right, Ubuntu 7.10 will change all of that. I’ll be able to run Hildon on my Car PC! That’s killer. Imagine having Canola running in-car, sitting on 100GB of multimedia…

     
  • erik 11:48 pm on June 19, 2007 | 2 Permalink | Reply
    Tags: , , software,

    iPhone development platform will wake up the mobile industry

    One of the most interesting topics of iPhone speculation is the choice of interpreted, web technologies as the development platform. I greeted the news with a big smile, and a sigh of obviousness. Having spent a few frustrating years preaching the potential of agile mobile development platforms, it sits near and dear to me to here that Apple is paying attention to a bigger market.

    Of course, the old-school, “Mobile 1.0″ crowd’s reaction is just as I would expect. Some of the claims make me laugh, so I felt motivated to chime in on the topic. Let’s break down the big three that I’m hearing:

    “No SDK means no killer apps.” There are two issues here: (1) That there are ‘killer’ mobile apps that aren’t already included in the iPhone; and (2) That killer apps can’t be built with web technologies. For the first bit, ask yourself what the killer mobile apps are? Number One is voice… Number Two is SMS… Number Three varies, but support for syncing PIM data, taking pictures, listening to music, checking email, and browsing the web, pretty much covers it. For the second part, to assume that killer apps can’t be built with web technologies would require denying the last ten years of Internet development. The Web has changed everything — and it was built with web technologies ;-) Besides, Apple hasn’t commented yet on whether they’re exposing select native API’s via JavaScript.

    “No clear revenue stream (for developers and operators) means no developers.” Stop thinking Mobile 1.0. Stop thinking traditional channels. Stop thinking about the Operators and Manufacturers “owning a customer”. Drop all this telcom baggage and start looking at the Web. There are plenty of companies making significant revenue simply because a large number of people have a browser and a data connection to their PCs. If anything, the mobile market becomes more interesting (and potentially more lucrative) when application development is cheap and the legacy mobile bureaucracy is out of the way.

    “Developers need low-level access to the hardware.” This actually came up in a recent conversation, and I just about walked away at that point. Are you kidding? Do you have any idea how much of a PITA (and HUGE waste of time) it is to develop high-quality, reliable, usable, native applications on embedded hardware? I do. And I can assure you that you want no part of it. I appreciate the occasional need, and I’m sure Apple can give the John Carmack’s and Google’s of the world a l33t SDK; but if you’re looking to develop innovative, profitable mobile applications, there’s no reason for you to be tracking down memory leaks and hardware bugs. The less time you waste fighting the hardware, the more time you’ll have to launch new software. (If you don’t believe me, compare the rates of software and business model innovation that happens on the Web vs. on mobile phones. Mobile phones have done wonders for flattening the world, but they can’t compare to the Web as an environment for cheap, rapid innovation.)

     
  • erik 10:45 am on May 31, 2007 | 0 Permalink | Reply
    Tags: software,

    Offline web app with Google Gears

    The blogosphere is already lit up with posts about Google Gears, and for good reason. Solving the offline/local-storage problem for web applications has been a hot topic — it’s one of those glaring voids in the web stack that keeps web applications from replacing desktop applications completely.

    So what is Google Gears? It’s an Open Source browser plugin that provides services (via JavaScript) for offline storage, data recovery, and synchronization. And here’s the best part: it works on Mac, Linux, and Windows… on Firefox 1.5+ and IE 6+ (with Safari support in development.) With such a huge support base, combined with the benefit of being a cross-browser solution and being open source, Gears has the right ingredients to become a defacto solution for offline web applications.

    For more details, check out:

     
  • erik 1:03 pm on March 27, 2007 | 2 Permalink | Reply
    Tags: , , software

    Interesting video demonstrating Photosynth, an application for navigating 2D photos in 3D space: “Dive into the world of Photosynth.”

    From the site:
    “Our software takes a large collection of photos of a place or an object, analyzes them for similarities, and displays them in a reconstructed three-dimensional space.”

    “Each photo is processed by computer vision algorithms to extract hundreds of distinctive features, like the corner of a window frame or a door handle. Photos that share features are then linked together in a web. When the same feature is found in multiple images, its 3D position can be calculated. It’s similar to depth perception – what your brain does to perceive the 3D positions of things in your field of view based on their images in both of your eyes. Photosynth’s 3D model is just the cloud of points showing where those features are in space.”

    (Via: My Icon. Your Icon?.)

     
  • erik 5:13 pm on February 6, 2007 | 9 Permalink | Reply
    Tags: , software,

    ColorZilla conflict causes FireBug 1.0 to not display on FF 2.x on Ubuntu (update: getting better)

    Just wanted to share this find: After the 1.0 update of FireBug last month, the extension stopped working for me on Firefox 2.0.x on Ubuntu. Thanks to a quick Google search, I found that FireBug conflicts with ColorZilla. After disabling ColorZilla, FireBug now works again.

    (Via the comments in: Firebug 1.0: Public Beta, Still Free, and a Lite version for other browsers.)


    Update 2007-02-08: The author of ColorZilla contacted me, and while we still haven’t isolated the problem, we did find that my ColorZilla extension was at version 0.8.x, and wasn’t finding the 1.0 update. After un-installing and re-installing ColorZilla, it is now somewhat more compatible with FireBug. Both extensions load, and everything except the ColorZilla Eyedropper works.

    Update: It’s broken again… And once again, disabling ColorZilla got my FireBug working again. I don’t know which extension is causing the problem, but there seems to be a conflict.

     
  • erik 2:09 pm on January 25, 2007 | 0 Permalink | Reply
    Tags: , software,

    Putting the metadata back on Google Image Search

    For anyone else who needs it, I found a user script (http://userstyles.org/style/show/1711">here) that re-enables the metadata on Google Image Search. (The “redesign” of Google Image Search no longer includes the image size, format, and dimensions.) The script requires the Stylish Firefox extension.

    (Via: Google Image Search Has a Cleaner Look)

     
  • erik 4:23 pm on December 14, 2006 | 0 Permalink | Reply
    Tags: , software,

    Thunderbird 2.0 Beta 1 available

    I just saw the news that Thunderbird 2.0 Beta 1 is now available. The link was hard to find off mozilla.com, but a quick google turned up the Release Notes page which contains the download link.

    So why am I mentioning this? Well, because I haven’t been able to get Thunderbird 1.5 to run reliably on my new laptop (a Dell running Ubuntu Edgy), but I’m not exactly thrilled with Evolution just yet either. (I’ve actually been using mutt lately, if you can believe that; though it’s not the silver bullet either.) I haven’t spent much time in Thunderbird, but I’m hoping that it’s extensibility helps the customization a bit. (At the moment, I’m really missing Mail-Act On’s ability to bind a filter to a key-command in Apple’s Mail.app.)

     
  • erik 11:11 am on November 2, 2006 | 2 Permalink | Reply
    Tags: , software

    Mobile Gmail application from Google

    Google has released a mobile Gmail client! See the press release for details and download instructions: “Email On-the-Go Now Even Easier — Google Launches New Mobile Application for Speedier Access to Gmail

    So far, it’s working quite well on my Nokia N90. The previous mobile browser-based interface to Gmail was ok for emergency use, but this new Java client looks nice enough to actually use.

    Thanks Google!

     
  • erik 4:01 pm on October 23, 2006 | 2 Permalink | Reply
    Tags: , , , , , , software,

    Dashboard Widget to mash iTunes library with OnTour.net

    Just the other day I had a friend mention a desire to scrape tour schedules in MySpace so that he can find out when artists he’s interested in are in town. (He eventually decided it was too much hassle and would like someone else to do it, which is why I’m able to mention it here.) It’s a cool idea, though the OnTour Dashboard Widget takes it to perhaps another level.

    The Widget monitors tour information in OnTour.net and compares it to the music you have in your iTunes library. The downside being, of course, that you have to hit F12 to get a notification. But otherwise, the interaction model is perfect — meaning that you don’t need to change your behavior at all, yet you gain new value and information. Brilliant.

    (Via Lifehacker)

     
  • erik 12:59 pm on September 11, 2006 | 0 Permalink | Reply
    Tags: , , software

    Feature-bloat and customer satisfaction

    In my day job as a Product Manager of mobile development tools, there’s a frequent struggle between feature-bloat and a desire to simplify the development process. Even when you know that it will improve the user experience, it can be difficult to build a business case for removing features or re-factoring a user interface. Because of this, I’m always excited to find any tangible data on the ROI of simplifying complex technology. (ie., It’s not enough to say “customers will like it better”, and it’s not easy to find compelling data to clearly demonstrate a tie between improved usability and improved consumer uptake.)

    Even still, war stories and the occasional bits of research do help the cause. For example, the post “Capability, usability and feature fatigue” offers a short summary of a Harvard Business Review article titled, “Defeating Feature Fatigue“, which features the following quotes:

    “Before use, capability mattered more to the participants than usability, but after use, usability drove satisfaction rates. As a result, satisfaction was higher with the simpler version of the product.”

    “If companies conduct market research by asking consumers to evaluate products without using them, too much weight will be given to capability, and the result will likely be products with too many features.”

    This idea ties nicely to another Harvard article, titled, “Feature Bloat: The Product Manager’s Dilemma“, which also caught my eye.

    (Via In-store good or at-home good?)

     
  • erik 3:59 pm on July 28, 2006 | 0 Permalink | Reply
    Tags: , , software, ,

    Aptana Web IDE

    Earlier this week I was looking for a nice HTML editor for Eclipse to help ease life when using PyDev with a Django project. I didn’t have much luck, other then finding a few syntax coloring tools that were HTML aware. That changed today when I found Aptana: The Web IDE. It’s a free, open source IDE for HTML, JavaScript, and CSS, built on Eclipse (available as a stand-alone application, or an Eclipse plugin) that offers target-browser aware code assist and syntax checking. The site includes some great screencasts to demo the product (and an interesting use of a .tv domain name.)

    Though it’s officially unsupported on Eclipse 3.2 (they only support 3.1), it seems to work just fine in my environment.

    (Via eHub)

    [Minor update: Aptana ran fine on my OS X machine, but crashes hard on my AMD64 Ubuntu Dapper box running Eclipse 3.2.]

     
  • erik 1:17 pm on July 24, 2006 | 2 Permalink | Reply
    Tags: , , software, ,

    FireBug and JavaScript debugging

    I finally got around to watching the video of Joe Hewitt’s FireBug demonstration at Yahoo! The video production is a little annoying, but the content is worth it. I’ve been using FireBug already for basic XMLHttpRequest monitoring, but I didn’t realize until watching the video that FireBug can also handle the kind of debugging I generally use Venkman for. And I love the integrated JavaScript console when debugging!

    On a related note, I noticed over the weekend that ActiveState is adding Komodo to the list of JavaScript debuggers for Firefox. I haven’t tried the Alpha yet, though it does sound interesting to try debugging the front- and back-end of a Django or Rails web app using a single IDE!

    Links:

     
  • erik 10:29 pm on July 2, 2006 | 1 Permalink | Reply
    Tags: , , software

    Blogging with TextMate

    I’ve been using TextMate to write my blog posts for quite some time now. I enjoy the convenience of MarsEdit, but TextMate lies in the center of my GTD process, and it’s such a nice text editor that I hate to leave it. Of course, actually making blog posts has required a little copy/paste action to my web CMS, but not anymore — TextMate now has a Blogging Bundle! Check out the screencast to see it in action. (And yes, this post was made directly from TextMate ;-)

     
  • erik 10:25 am on June 30, 2006 | 0 Permalink | Reply
    Tags: , software,

    Dabble DB taking on the Spreadsheets

    In my recent “Google Spreadsheet Storage” post I mentioned how important an API will be for the online spreadsheets. I think Google will get there eventually, but it looks like Dabble DB will beat them to it. Furthermore, Dabble DB is taking steps to improve the traditional spreadsheet-interaction, blending ideas from spreadsheet authoring and dynamic Content Management Systems. Take a look at the new Dabble DB screencast to see for yourself. Even if you don’t see a need for it, Dabble DB is an impressive web app.

    The Dabble DB blog has more to say on the issue:

    “…when it comes to managing data, [snip] other web-based spreadsheets [are] only solving half of the collaboration problem. [They let] everybody access and edit the same data over the web, and that’s an important improvement over the email-the-Excel-file-around strategy many groups are stuck with. But it also forces everybody to look at that data in exactly the same way.”

     
  • erik 10:53 am on June 16, 2006 | 2 Permalink | Reply
    Tags: , , , software, ,

    3D modeling the Earth

    Google SketchUp for OS X finally released to the public this week (as did Google Earth Beta 4 for OS X, Linux, and Windows, in case you missed it.) If you’re not familiar with SketchUp, but are at least remotely interested in 3D modeling, I suggest hoping over to the Google SketchUp Tutorials and having a peek. The first few tutorials elicit a jaw-dropping “it can’t be that easy” reaction.

    On first glance, Google offering a 3D modeling program seems a bit strange. I mean, what could this possibly have to do with search, right? But the key is to look at it differently. If you’ve used Google Earth, odds are high that you’ve also tried looking a major city with the “3D Buildings” option enabled for that all too futuristic, flying-through-the-world experience. But what you notice when you do this is that there aren’t enough 3D models, and they tend to lack detail. So how do we get from flat, satellite photographs to rich 3D models of every building in the world? Well, you start by giving away a free, easy to use 3D modeling program that can import/export into Google Earth… And then you let your customers (happily) do the work for you. (Co-creation at it’s best.)

    For more, see:

    Below: an example SketchUp model (of the University of Texas tower) geo-positioned over a Google Earth map tile

     
  • erik 10:12 am on June 14, 2006 | 0 Permalink | Reply
    Tags: , , software,

    Maemo 2.0 Beta now available!

    You can now download the new firmware flashing software (Mac OS X and Linux only) and the new 2.0 beta firmware from the Maemo platform releases page. The new software includes the previously-announced Google Talk client.

    For more screenshots, see:

    Also of interest:

     
  • erik 3:17 pm on May 19, 2006 | 0 Permalink | Reply
    Tags: , software

    Edit in TextMate…

    If you’re a TextMate junkie, check out this “TextMate Tricks” post on the Macromates blog about the “Edit in TextMate” input manager for your Cocoa apps (like Mail.app and Safari.) Very, very handy!