2008-08-21

Amazon's second cloud-based storage product

S3 is probably suited for static files, as it is afflicted with latency. The new Elastic Block Store (not in any way related to books), is integrated with EC2 to provide dynamic storage that is better for databases. Notably, the space can be shared between different EC2 instances. You can also back up your data onto S3.

Kudos to the Amazon engineers for what appears to be another home run. I, for one, welcome our new Skynet overlords.

Facebook is dead

As you may know, the new Facebook hides the apps away on a page called "Boxes", which is listed 4th in the user page sub menu. But, the natural order of profiles has not been restored. Your activity stream is merged with the wall to become the default profile view, with your profile info (i.e. your actual profile) pushed to second.

It's pretty smart. Facebook has morphed into a Friendfeed or a Twitter. Your bio or other personal info is mainly static and therefore irrelevant, whereas your activity is fresh and interesting. Even less appealing is a list of personality quizzes you've taken, which is what passes for apps.

The Facebook team has done such a good job hiding the apps that I realized that I hadn't seen any in weeks. I thought a proper goodbye was in order, so I headed over to my friend Chase's profile to reminisce about the platform. He is probably one of its biggest fans, installing everything possible. I found this particularly amusing:

I mean, it's a steal! You'd be a fool to not take a 99.7% discount.


I just worry about the health of Facebook. The miniscule font size is particularly troubling. It's not too bad if you bump it up to double its original size, but come on. Also, the conversation seems to have died down. A lot of people are moving on and it's becoming apparent that Facebook is not much more than a phonebook. The saving grace will be if it can become the internet's single sign-on, which will be tested on Digg soon.

2008-08-17

Is AppJet the next big web framework?

I just got a tip from AppJet front-end developer, Aaron Iba, about plans for self-hosted AppJet instances. "We're thinking about releasing this soon." This was also just added to the FAQs page. What this means is that one could download the backend that runs the apps and install it locally, on servers, or even Amazon Web Services. Why would someone want to do this when everything is already hosted by default for free? The answer is that it allows an app to use more resources, namely storage space and processing time. An avenue for intensive apps, such as Agglodex, is desperately needed. Some people also get a kick out of DIY projects. The self hosting option appeals to experienced techies, whereas the recent beginner's programming tutorial was an outreach to fledgling or even non-techies. This suggests either a lack of targetted focus or a quest for ubiquitous dominance for the AppJet team.

The prospect of achieving a serious foothold in the web framework space is intriguing. The prejudice against JavaScript might be just too much, in which case it will never gain traction. Although, AppJet is not the only company toting a JavaScript web framework. Aptana Jaxer has an interesting approach that blurs the line between client and server code even further. With over 2 million downloads, the market is clearly there.

To explore the degree of success the AppJet platform can achieve, we need to consider the business style of the team. We know they are Y Combinator funded, which historically seems to take a less bottom-line focus (although the latest round seemed much more commercial). Note that AppJet has been public for over three quarters with an apparent revenue stream of zero, with only polls about desired premium features. It would almost seem that they aren't interested in money at all! This is a very good sign for driving adoption, as long as they stay in business. (The one thing that worries me is the coddling of beginning programmers. This is good for PR, but wasting valuable time for the 3 employees. The point of a framework is to coddle the application structure. Syntax help and programming theory is a job for the community.)

Let's face it: web platforms have to be free and open. LAMP is the reigning king. Ruby on Rails and Django are the up-and-coming challengers. All three are open source and 100% free. Microsoft's ASP.NET--not so much. So to have any chance at all, AppJet needs to be open too. Luckily, the FAQs indicate that exact plan.

Or maybe not? Maybe AppJet is part of the new-wave sandbox hosting, such as Google's AppEngine, that doesn't directly compete against traditional web frameworks. It's analogous to Reddit vs. Slinkset. Do you want to DIY or get up and running right away? As time rolls on, it is clear that the level of abstraction increases. It is even getting to a point where dealing with virtual instances of computers on Amazon Web Services is too much work, if code can just run on one huge platform. The cowboy era is ending and the mesh is beginning.

And this is where AppJet comes in. If they have the business sense, they will host the runtime on AWS and charge a slight premium over Amazon's rates. All of the server configuration can be handled with zero human interaction. This simplifies hosting for app authors just as now, the difference being that it is now scalable. Also, using AWS plays to the current paradigm of having all data cached in RAM.

So, is AppJet the next web framework? Could it be something bigger?

2008-08-14

Fancy File Uploader

This is a reworking of an example file uploader. I've thrown in my typical user accounts, pagination, and tagging to make it really powerful. Feedback is welcome. I will also answer questions about how the code works.

2008-08-08

Tagging Library for AppJet

The original and current versions of Vortices, have an only slightly more flexible category system than Reddit. On Reddit, you have to explicitly create a category, whereas Vortices had ad hoc categories with an option to explicitly create one. But this isn't quite what I had in mind. I want tagging, as Flickr and Delicious have, loose groupings that emerge naturally.

So, I built a tagging library that does exactly it. Then I built an example app to test it out. Surprisingly, it worked after I changed a few typos. What took the most time was all of the initial rewrites. I was having a hard time structuring it because I wanted to track who was doing the tagging and how many times an item was tagged with something, but in the end I decided it was too much effort as well as an impact on performance.

2008-08-05

fbFund oddity

Facebook is having a contest for new app ideas on their platform, with huge grants awarded to the winners (more information). Oddly, there isn't even anything that says you have to actually make the app. But the strangest part wasn't even that. Reading the terms and conditions for the fbFund, an odd phrase jumped out in the middle of page 3:
(2) Effective Use of the Android Platform (17%)
So let me get this straight. Facebook copied Google's Android developer challenge and didn't even bother to change the branding? This is beyond lame.

2008-08-04

Adding audio enclosures to feeds with Yahoo Pipes

I just finished my second "pipe" using Yahoo Pipes. If you haven't looked into Pipes, I strongly recommend it, because it is a testament of capabilities the web just didn't have until recently. It's main use is manipulating RSS feeds to create new feeds. Also, a pipe can make feeds from scraping web pages. Instead of editing source code as text, you insert graphical modules and fill in values to configure them. Then, whatever a module outputs can flow into the next module and the next, until finally the output is produced. Both of the pipes I created solve the same problem, adding audio enclosures to a music feed that was lacking them. I had to identify a pattern between the information in a feed entry and the URL of the MP3 file. The first one, Newgrounds weekly audio winners (original feed, my version, pipe page), was easy. All I had to do was copy the link and change "listen" to "download".



An experienced Pipes developer could make this in 2 minutes. But I have no idea what I'm doing, so it took me a couple hours of trial and error. The second one, remix.kwed.org (original feed, my version, pipe page), was a little more complicated. The link is http://remix.kwed.org/?search={id}. The MP3 is located at http://remix.kwed.org/{id}/{title}.mp3. Still not too bad, though, since all of the information was right in the feed, so no page scraping was necessary.

I still don't think I understand how to really use Pipes, as I am used to textual coding rather than visual. Maybe they will make it even easier to use in successive versions, assuming Yahoo isn't disbanded, with all of its cool apps sent to the scrap heap. But for now, if there's a quick hack you wish for involving feeds, and you don't feel like opening up a new programming project and figuring out how to host it, Pipes is your best bet.