Sunday Selection 2012-09-16

Around the Web

There is something magical about Firefox OS

As much as I love my Android phone and think that Windows phone UI is pretty interesting I’m starting to wonder if the phone software ecosystems aren’t starting to get a bit stale. Especially with the iPhone 5 release it looks like we’re getting to the point where manufacturers only make small incremental updates to their systems instead of really improving. I’m hoping Firefox OS for mobile devices will shake things up in much the same way that Firefox did for the desktop

The Joy of Quiet

I love the Internet. I love being connected. I love being able to talk to my parents across the world for virtually nothing every day. I love being able to exchange snarky quips with friends I haven’t seen in years ( and writing that sentence made me feel really old). But I sometimes I can’t help wonder if it isn’t all getting just a bit out of hand. I’m not at the point where I’m willing to pay money to get disconnected (and I went without Internet for a week in the summer with no withdrawal symptoms). But I am starting to tone things down a bit, watching less TV, unsubscribing from RSS feeds and trying to spend some time each day reading good old dead tree books and just hearing myself think.

Why I write: George Orwell’s Four Motives for Creation

The flip side of consumption is creation. Part of the reason I want to tone down my connectivity is so that I can consume less and create more. George Orwell has a somewhat unusual take on the reasons behind creativity: it’s less Zen and passion and more a combination of ego, pride and simple pragmatism. It’s useful to realize that not all creative types are driven by some diving inspiration by way of a capricious muse. Some people just want to be heard.

Web services

Findings

The Internet is a great medium for sharing, even better than a soapbox in a park or a podium at a forum. Findings in an interesting service for sharing text either from your Kindle or from the Web. They also place emphasis on proper attribution. I don’t know how they plan on making money but it’s well put-designed and I hope they add support for sharing from other reading platforms like Instapaper and Readmill.

Sunday Selection 2011-02-20

Reading

Is Scheme faster than C? The cheapest way to make your code faster is to throw more hardware at it. But for a cash-stripped college student reworking the algorithm is probably a better idea. Here’s a suspense-filled story of how¬† superior algorithm devised in Scheme and ported to C turned out to be faster than a naive C implementation.

On Writing Books for Programmers I think writing is an important skill, especially for programmers. Putting your thoughts in writing helps with the thinking process. But this piece looks at writing from another perspective — namely writing for (as well as by) programmers. It’s worth reading if you’re writing for programmers, even if it’s not a book.

Media

Parallelism and Concurrency in Programming Languages Rob Pike is certainly a person worth listening to when it comes to programming languages. And of course concurrency and parallelism is all the rage nowadays. Put the two together and you have a lot to learn from this talk.

Software

Firefox 4 beta Google Chrome might be giving Firefox some stiff competition, but the folks at Mozilla are definitely holding their own. Firefox 4 is getting an impressive set of improvements and features. I think their user interface model is better than Chrome’s in some ways (especially with Panorama). There are still rough edges and most extensions will probably not work, but it’s stable enough for people to check out and use on a daily basis.

Firefox’s greatest flaw: restarts

I really like Firefox. Despite the new slew of browsers showing of some very impressive competing technology, Firefox is still my browser of choice. I love it because it offers a consistent experience across platforms and the large ecosystem of extensions makes it a snap to bring parts of the web (Twitter, email) directly into the browser, cutting down on time spent and tabs used. Until some other browser grows a similarly impressive set of extensions I’ll keep to Firefox. With the Portable Apps versions, you can even take your personal, fully tricked-out Firefox with you wherever you may go.

Despite its general awesomeness, the one thing that continues to irritate me is the fact every now and then I have to stop work and restart. It’s probably not as bad as I make it sound, especially with the session management which makes it very easy to pick up where you left off. Of course, the restarts are for legitimate reasons: there’s a security update or I installed a new extension. Firefox is otherwise rock stable. However, even the once in a while restart can be very irritating, especially if like me, you are prone to the occasional bout of extension shopping. I went extension shopping when I started using Twitter a lot (to look for a good Twitter extension) and I went theme shopping to find something minimal when I got a netbook. There’s a lot of interesting stuff out there, but the problem was that every time I installed something I had to restart. That made browsing new adds-on a slow and rather painful experience.

I like the progress Firefox is making and commend the developers for making an awesome piece of tech but I really think that they should buckle down and just spend one point release on getting rid of the need to restart every time you install something. Some other extensible platforms (Emacs in particular and I think Eclipse too, to some extent) have support for installing extensions on the fly. Admittedly, Emacs is essentially a Lisp machine with a bunch of text editing primitives and I have no idea how Firefox is actually built. For all I know it could be a very difficult problem and might involve a significant rewrite and redesign. But difficult problems can be solved and I’m pretty sure much harder rewrites have been done in the past.

There is the possibility that I’m a lone minority and this restart problem doesn’t really bother anyone else. But I feel that this is more a result of people having gotten used to restarting than not really caring about the problem. Back in the day when I actually ran a Windows machine, frequent restarts were a part of everyday life. Things got considerably with Windows XP which wouldn’t suddenly freeze up at irregular intervals, but I still had to restart every now and then for a variety of reasons (mostly related to installing or updating software). Having been a full time Arch Linux user for the past 3 years, I’ve gotten used to not being forced to restart. I’ll only seriously considering rebooting my Linux laptop after doing a kernel upgrade and even then, I’ll wait for things to start not working right before I actually do restart. It’s far more likely that I forget to plug in my laptop and the battery slowly dies. Similarly, I often put off updates on my Mac Mini because I can’t stand the thought of waiting around for it download, install updates and then restart.

I will admit that things are probably easier to do when you have the freedom to tell the user to stop doing something and then restart. It means that you don’t have to worry about things getting overwritten or conflicts happening from trying to run the program while rewriting. As a developer, that peace of mind is something you’d be willing to pay a high price for. But that doesn’t change the fact that it is a nuisance to the user. And nuisances to users are by and large a bad thing. As developers I think we have a responsibility to give the user the best possible experience. Solving the problem of restart-free installs and updates is certainly a hard problem, but I think it’s one that is worth solving.

Sunday Selection 2009-07-19

I’m still at Virginia Tech for a few more weeks, but all the other students I was with have left. So I got moved to the really nice rooms for graduate students, the only downside being that I’m practically locked in since my card won’t open the doors (I was let in by a really nice grad student). Stupid technology. While I get that fixed, here’s another installment of Sunday Selection.

Reading

The Cathedral and the Pirate A funny but thought provoking look at the Microsoft-Google competition in light of the announcement of the Google Chrome OS.

Media

Ubiquity in Depth Ubiquity is a creation from Mozilla Labs in the form of a Firefox extension that aims to bring the different components of the web and the services available into a easy-to-reach form in the browser. There’s a 6 minute demo video about half way through the article.

Software

Ubiquity It takes some getting used to, but it’s a great tool. My personal favorite is the ability to quickly look up snippets of wikipedia without leaving the page I’m on. I would recommend getting the latest beta.

Why I’m not giving up on Firefox yet

Google is upping the ante on pretty much every major producer of operating systems and web technologies. The release of Google Chrome might not have been as ground-shattering as a lot of people of made it out to be, but it was certainly a clear message that Google was taking the control of the web seriously. The announcement of Chrome OS has ruffled even more feathers and set the rumor mills to work overtime and if you like around the web you’ll see all sorts of opinions regarding the whole situation. I’ve previously said that I wasn’t ready to take a side until I saw an actual release of Chrome OS and decided firsthand if it met my needs. I’m going to stand by my word and for the time being at least my browser of choice is still Firefox on all platforms. Here’s why:

1. Extensions

Chrome is growing support for extensions and I hear they’re going to be really easy to make. But it’s going to be a while before they catch the community support that already exists around Firefox. I use a number of extensions on a regular basis including Zotero, the Diigo toolbar, Twitterfox and Down Them All. Some of these extensions allow me to use stand-alone web applications, but without actually visiting the website (Twitterfox and the Diigo bar). Others let me easily perform common web-related tasks without requiring a separate program (FireFTP and FireBug). Some of these could easily be their own programs, but even compared to full desktop equivalents, they are outstanding tools (Zotero). Equally important are more experimental extensions like Mozilla’s Weave and Ubiquity tools. These are still experimental tools but already provide useful functionality that I think I’m going to use more and more as they mature. Until Chrome can sport equally compelling and useful tools, I’ll stay put.

2. I don’t use Windows all that much

My use of Windows varies from about once a month to once a week. My computer time is divided almost equally between OS X and Linux. Though the open source component of Chrome compiles and runs of both of them, they are still far from complete. I don’t mind trying out something experimental to get the feel for it (or if I have an active interest in it), but considering that Firefox already offers a high quality browsing experience already, I don’t see a need to switch.

3. I don’t quite agree with the ‘every tab is a process’ model

A large part of Chrome’s innovation is in treating the browser more like an operating system and each tab as an separate web application. While this is probably a good idea in terms of safety and reliability, it also turns the browser into a very memory heavy application. Combine that with Vista’s own inefficiencies and the fact I often run other heavy programs (compilers, IDEs and the like), I really want my browser to not take up more memory than it has to. As the article I linked to shows, Firefox does much better in memory terms than other popular browsers. The number of web applications that I leave open for any period of time are trusted applications and most of them do not stay open for more than an hour or so at a time so I’m not sure I need a full multiprocess browser for now.

4. Firefox is catching up

When Chrome first came out, it did come up with a number of cool new features. Besides the memory model, it sported an incredibly fast JavaScript Engine and (in my opinion) a really clean interface. Firefox was left in the dust to some extent, but it’s quickly catching up. The new 3.5 release has seen improvements in JavaScript performance and support for the HTML 5 video tag. JavaScript isn’t quite as fast as on Chrome (for example, Chrome experiments doesn’t quite work right), but it’s fast enough for the differences to be unnoticeable for most people (including myself). Thanks to theming, users can make the Firefox interface as clean as they want it to be. There’s even a good theme that closely mimics Chrome.

5. Chrome still has bugs that need fixing

While Chrome sports some great new technologies, there are still some problems that really need to be fixed. In particular, there are issues with image sizing (that I saw while viewing this blog with Chrome). As well as issues with the implementation of the HTML 5 canvas tag. The later is especially important to get right as it’s going to be really important for the future of web apps. One example that I think will become really important is the Bespin code editor which doesn’t work right under Chrome (and not all under Chromium). Until these bugs get fixed, I’m not going to be able consider moving to Chrome for full time use.

Though I’m not ready to leave Firefox yet, I’m certainly not making any promises for the future. I’m sure that Chrome will continue to push innovation in the browser sphere and all net users will benefit as a result. At the same time Firefox is also taking the initiative in a number of areas (especially in respect to HTML 5) and it will be interesting how they keep up the pace. I personally would like to see some amount of cross-fertilization between the open source browser communities. In particular it might be worthwhile for Firefox to consider adopting the V8 JavaScript engine. In return, Chrome could learn a few lessons from Firefox with regard to HTML 5. The following months and years are certainly going to be an interesting period for web technology and I’m sure to make some careful consideration before making any sort of browser move.