Trying Out Posterous
I'm trying out Posterous. If you have an account, let me know what your username is so that I can subscribe.
-AaronI'm trying out Posterous. If you have an account, let me know what your username is so that I can subscribe.
-AaronMy friend and I put together VapURL.com, a URL shortening service for creating disposable URLs. The idea is that you can create a URL that will redirect to the site of your choice, and send the link to someone. Once they use it, the link will become inactive and if anyone else returns to it, they’ll just see the VapURL home page. There are configuration options to allow the URL to work more than one time, and to set different time limits.
We built the website on Google App Engine which went pretty smoothly. It was a good way to get a little more practice with Python and to try a different set of web frameworks from what we’re use to. We’re also using Beanstalk to host our Subversion repository. I ran into one small bump with them, but overall it’s been a really good experience. I
It’s nice to have a publicly facing side project. I plan to do more.
I’ve been working on a little Python script1 using the Twitter API that can recommend people for me to follow. Here’s the basic idea:
So far, it works pretty well. About half of the top 40 results are people that I already follow, and the others do look like people that I’d be interested in following (some of which I have followed periodically). Here’s what it came up with so far (*’s are the suggested new people to follow):
I’m posting to twitter.com a lot more than I’m posting here, so I’ve created a sidebar to show my current tweet. Check it out in the top right corner of this page. Click the text to be taken to my twitter account. If you’re interested in the code that generates the message, head on over to my twitter code page.
I also spent most of this moring upgrading my WordPress install. (WordPress is the software that I use to run my blog.) I doubt that this means that I’ll be posting a whole lot more, but you never know.
Using the same benchmark that I used earlier this month, I decided to test out the new Firefox 3.1 Beta 1. The beta includes a new “super-fast JavaScript engine” called TraceMonkey. I ran my benchmark both with and without TraceMonkey enabled (javascript.options.jit.content=true) and here are my results.
| Firefox 3.1b1 jit disabled (Mac) | 1108 |
| Firefox 3.1b1 jit enabled (Mac) | 2158 |
| Firefox 3.1b1 jit disabled (Win) | 642 |
| Firefox 3.1b1 jit enabled (Win) | 1444 |
Once again, lower is better. I don’t know why, but TraceMonkey is clearly slower here (about half speed!) making it one of the slowest browsers I’ve tested. Maybe it’s something odd about my test setup. The first two runs are on my Mac Mini running Mac OS X v10.5.5, 1.83 GHz Intel Core 2 Duo, 1 GB 667 MHz DDR2 SDRAM, and the last two are on my Windows Box running Windows Vista SP1 64bit, Intel Core2 Duo 3.0 GHz, 4GB RAM.
On the bright side, this beta is slightly faster than Firefox 3.0.3 when TraceMonkey is disabled. Hopefully this test doesn’t indicate the results we’ll se in the final version of Firefox 3.1.
I’ve been working on writing a Go Game in JavaScript. It’s not ready yet (I’m not sure it ever will be), but I figured that since I was running into speed issues, it would make a good browser benchmarking tool. Of course, all benchmarks are biased in one way or another. This one does a lot of repeated operations on similar objects.
To run the test, I ran five auto-play games (computer plays both black and white), calculating the average time per move in each game (in milliseconds). I then averaged these times across the five different games to come up with the score for each browser.
Results (lower is better):
The first three tests were run on my Mac Mini running Mac OS X v10.5.5, 1.83 GHz Intel Core 2 Duo, 1 GB 667 MHz DDR2 SDRAM.
| Firefox 3.0.3 | 1384 |
| Safari 3.1.2 | 1814 |
| Opera 9.52 | 2173 |
The last four tests were run on my Windows Box running Windows Vista SP1 64bit, Intel Core2 Duo 3.0 GHz, 4GB RAM.
| Firefox 3.0.3 | 729 |
| Chrome 0.2.149.30 | 740 |
| Opera 9.52 | 778 |
| Safari 3.1.2 | 1080 |
| Internet Explorer 7.0 | * |
None of the tests are exactly conclusive. There was quite a wide range between the best and worst times for each of the browsers, but they did tend to cluster near the average. I was a little surprised that Chrome wasn’t a lot faster than Firefox after reading other benchmarks and hype.
If you’d like you can try out the current version of the Go game here. Just remember, it’s not done and may be changing at any time. For archival purposes (in case I want to run the same test against future browsers), I’ve put my code in this file go_benchmark.zip. If you run any tests, please let me know what you find.
* Internet Explorer doesn’t like something about the JavaScript and won’t run. It’s probably something related to the canvas tag that it doesn’t support. I’m using ExplorerCanvas to try to make the canvas tag work in IE, but I must have started using an unsupported feature because it stopped working.
Last weekend I was printing directions for driving around L.A. and it really bugged me that the starting and/or ending steps of the directions were usually things I already knew. Since I don’t work at Google, I can’t fix it for everyone, but I can fix it for myself (and maybe for you). I wrote this little script to modify the Google Maps print directions page so that I can hide any steps that I don’t actually want to print. If you want to use it, you’ll need to use Firefox and Greasemonkey, then follow the link above to install the script.
Oh, and I have to say thanks to the creators of the jQuery library. Without it making life (and coding) easier, I probably wouldn’t have have even attempted this project.
Here are my release day thoughts:
There are a couple things that I can do with Firefox that Chrome can’t do that’ll keep me from switching:
Overall, it’s pretty usable, just not quite there yet. I don’t think I’m ready to recommend it for my friends or family either.
The whole multi-process thing has been making me think. This kind of architecture would work really well in a distributed environment (like Google’s own data center environment). If Google could find a way to bring that kind of power to the desktop, their web applications might have a huge boost over all of the other software that isn’t designed to be so parallel.
<rant>
Another thing that’s very clear is that Microsoft has no incentive to make a good browser. Their two main moneymakers are Windows and Office. Making a good web browser would mean that more companies could make good web applications. Good web applications would mean that Windows would be completely optional. Building an Office suite on the web would be a lot of work, but a lot of companies are working on it. If web browsers were 10 times faster (on the same hardware) and had access to the file system in a secure way, there’d be a much better chance for competitors to eat into the Office pie. Once again, once there are good office suites available online, then Windows is optional and Microsoft would have to really compete.
As a web developer, I have a great incentive to get more people to use better browsers–it makes it easier for me to develop better software. So, if you know anybody still using IE6, please tell them that they have a choice in browsers and using one that’s 7 years old is not a good thing.
</rant>
Some information on Google Chrome was leaked today, primarily this comic. I’m looking forward to actually trying out the new browser when it’s released. For now, here are some things I find interesting.
Omnibar – This sounds a lot like Firefox 3′s awesome bar, but maybe with some improvements. It also serves as the search bar, something that all other modern browsers have placed to the right of the address bar. Not only that, but it looks like the browser will automatically pick up new site searches based on usage. It’ll also do in-line autocomplete, but only for URLs you’ve actually typed. That sounds like it could be nice.
Tabs – From the screen mock-ups, having the tabs on top does look a little more natural than the hanging tabs of other browsers. I don’t know how it’ll actually look/feel once they get the rest of the window frame around it. The new tab speed-dial feature looks like it could be helpful. Mozilla’s concept work looks a little more powerful. There’s definitely some room for improvement here.
Pop-up Handling – Instead of opening in a new window, pop-ups will open within the same window. I don’t know if there’ll be any difference between pop-ups that are generated from a mouse click vs. opening automatically. I’m really curious to see how this feels.
Multi-process – Each tab and plug-in gets its own full process. So, if one web page is misbehaving, it won’t kill the rest of your browsing experience. It looks like they may be giving developers multi-threading, but that may be the Gears feature.
Automated Testing – It sounds like they’re doing automated unit testing, and also doing some sort of layout tests against the 1,000,000 (or so) most popular sites. WebKit (the rendering engine) is already pretty well tested, but this should help make sure they don’t introduce any new problems. Since Google will be using a new JavaScript engine, and many sites use JavaScript to manipulate layout, the automated testing should really help validate their JavaScript implementation.
V8 – Speaking of JavaScript, it looks like they’re really trying to push it forward. Their implementation is a virtual machine called V8 with some new features. For one, they’re doing something called “hidden class transitions” which might just speed up object oriented JS code. They’re also adding a compiler to convert JavaScript into native machine code which can run a lot faster than interpreted code (of course, if their compiler sucks, then it’ll still be slow). I don’t really understand how garbage collection works in FF, IE, Opera, or Safari, but Google says that they’re doing it differently, more like a real virtual machine. This should be iterseting.
Full Text Serach – You’ll be able to search the text of every page you’ve looked at and stored in your history. Hopefully this will automatically exclude secured pages (I’m sure it will). Firefox 3 already provides this for URLs and page titles, but I’d sure like it for the full page body too (I think).
Overall – I don’t expect Chrome to pick up much market share any time soon. The market share that it does pick up is as likely to come from Internet Explorer as it is to come from alternative browsers such as Firefox and Safari. [Edit: deleted MS gripe.] My big hope is that Chrome will spur innovation in all of the browsers and everyone will win. Oh, and if the JavaScript really is super fast, there should be some really cool applications and games popping up in the next year or so.
Questions – Will it have add-ons like Firefox? Will different pages/web apps have their own browser toolbar buttons (for example, a Compose button for gmail)? How easy will it be to keep your info private from Google? How will it make web development easier (JS debug? DOM inspection? etc…)?
PS: I love the Dr. Horrible reference on page 1.
Tomorrow will be two weeks of me owning and using a Mac. I bought a Mac Mini (the cheap one) so that I can see if I’ll actually use it (especially for developing apps for the iPhone). I have been using it, but haven’t gotten much development done. I’m a bit surprised by how much time I’m spending learning about the new environment. I spent more than a few days reading about iPhone development and Xcode. More time was spent just learning about OS X and how it’s different than Windows (I could have done less, but I wanted to do more than just get by). I’ve also spent a lot of time just evaluating new applications and services. Overall, it’s a very pleasant computer. I now go days without using my Windows box. And now, for some more details.
Specific things I DON’T like:
Learning new keyboard shortcuts, lack of games (not that I could run much on this little guy), lack of good, free, text and image editors, lack of IE for testing web development.
Specific things I DO like:
Sleep mode with a quick restart, stability (I ran 10 days without restarting), quiet hardware, Spaces, Xcode, Spotlight and application help search, installing a printer in one step, ease of installing applications, clean look and feel, lack of IE.
Some especially helpful links for people switching from Windows to Mac OS X:
How to Switch to the Mac
A guide for switching to a Mac
Getting Started with Mac
Here are some notes on what I’ve found useful for different applications:
Web Browser: I still love Firefox, but Safari isn’t too bad either (certainly better than Internet Explorer).
Instant Messaging: I’m loving Adium. If it worked on Windows, I’d use it at work.
Music Player: iTunes seems to do the job, but I’m not completely thrilled with it.
Mail Client: The built in Mail app doesn’t seem too bad. I’m still thinking about installing Thunderbird.
Software Development: Only Xcode so far for Objective-C. I’d like to try out Python and Ruby soon.
FTP Client: FileZilla, just like on Windows. I’ve also looked at Cyberduck, but didn’t really like the interface.
Text Editor: I’m evaluating TextMate (it looks like it might be worth the $60). I also tried Smultron and jEdit, but it didn’t seem to be quite enough.
Subversion Client: I’m using SCPlugin as my TortoiseSVN replacement. From what I can tell, it works. I’m also trying svnX, but I think I like the more integrated style of SCPlugin.
If you know of a must-have app that I’m missing, please let me know. I’d love to get an image editor that I can love as much as Paint.NET.
As far as services go, I’ve been looking for a nice hosted Subversion service after hearing about Beanstalk somewhere. After reading about at least 20 different services, I ended up trying out assembla and DevjaVu. Unfuddle also came in high on my list. They all seem pretty good. Which one is best probably depends on your requirements. I’m liking how much space (1GB) that you can get for free from DevjaVu.
| « Previous Entries | Next Entries » |