Google App Engine
A couple of weeks ago Google released the first iteration App Engine. As a complete package hosting environment for web apps, app engine provides a very easy point of entry to building scalable web applications in Googles cloud, with direct access to google APIs and building blocks such as an existing user authentication model.
From a development perspective, Google provides a fantastic SDK to get started. I was up and running a development server on my mac in a matter of minutes. It quickly became clear is that things are tailored to make it *very* easy to use other google services. App deployment is very straightforward. The database model is different than what most people might be used to.
In this move into Platform-as-a-Service (Paas), the direct comparison seems to be against Amazons well established suite of web services. As Garrett Rogers points out, however, this isnt really the case, at least not yet. Amazon offers a wide range of building blocks, mainly their EC2 cloud environment and tools such as SimpleDB and Simple storage. Amazon offers these services in a loosely bundled al-la-carte manner, where the developer ties them together. Google has taken a different approach by bundling everything together in a completely managed, but much more limited environment. It has actually been compared more closely to facebook than to amazons web services.
While Googles initial approach has its advantages and disadvantages, I think the real point here is that google is choosing to focus on just one subset of the market - the startup developer looking for a quick all-in-one solution. My guess is that this was a decision made in order to release the environment to the community as early as possible. It will be interesting to see what areas they focus on improving in the coming months.
The very day App Engine was released, the team at Google listed several areas that they knew the community would feel were too limited. Im really excited to see how the following areas grow as the environment matures, and watch the process with our specific needs in mind.
1. Support for more languages. Were obviously huge Python fans, but we recognize that there are other great languages out there that developers use to build web applications.
Python is a great language. Ive spent more time looking at it over the past week than I had in the past, and I already feel pretty proficient in it. This is testament to a logical and consistent nature of the language, and I think for anyone not familiar with it the learning curve will be pretty low. From a practical standpoint, however, there are downsides to this choice. For companies such as ours, the inability to re-factor legacy code where appropriate is obviously an issue. For googles core target, the startup developer, this limitation means that they do not have access to the vast amount of community resources and pre-written modules that seem (in my unscientific initial review) to be more prevalent for other scripting languages. It makes sense that Google initially opted to only support Python, since in essence they had to create a sand-boxed version of the engine to run within their environment, and they obviously have the most internal experience with that language. Im curious how they would approach doing the same thing with say PHP, and its more chaotic community.
2. Support for offline processing. Right now Google App Engine is great for web apps that do all of their processing in response to user requests, but what about apps that need to perform scheduled tasks or larger-scale data migration? Wed like to support those apps too.
Basing all processing on user requests prevents some pretty common concepts that would be required by any advanced application. At the very least, this limitation would lead to some horrible architecture hacks to support these types of tasks. Right now the excepted solution seems to be to have a separate machine that periodically triggers requests to the App Engine app. Of course that raises the question of how do you scale a separate service to keep up with an automatically scalable main environment. But really the correct solution will be some sort of scheduling service within the App Engine environment itself.
3. Support for large files. Google App Engine currently imposes a limit of 1MB on all requests, both inbound and outbound. Were interested in providing efficient support for much larger uploads and downloads.
This is an area that Im pretty sure will be addressed early on, but Im more curious as to the potential for large file storage mechanisms living within the Google cloud. The approach will be a little different from the typical LAMP paradigm, but thats not necessarily a bad thing. The white-paper on Googles BigTable database alternative has an interesting section on the way the google maps data is stored/queued.
4. Billing for additional quota. During the preview release period, all apps are restricted to a set of free resource quotas. Although Google App Engine will always be free to get started, we plan on allowing developers to purchase additional resources in the future, while paying only for what they use.
This is the area, I think, that will really show us what Googles long-term intentions for this service are. So far, very little has been said on the matter, except that basically it will be remain free for the type of usage that is possible now, with the inherent resource limitations. How the next-step pricing tier gets defined will be very interesting, and may prevent some industries from fully benefiting from all the service has to offer. In our case, we may find an opportunity to rethink the way we approach hosting completely.
Of course there are other critical areas are that are unknown at this point. When will the https protocol be supported? And theres the issue of lock-in, which Chris Anderson absurdly and elegantly addresses. Im pretty excited to see these limitations addressed as things mature, and watch what is starting out as a limited beta release quickly grow into an extremely powerful and useful service that will have lasting ramifications on the way we think about web application hosting, deployment, and development in general. Plus, it has a cute logo.
RotW: Build Your Own Font With FontStruct
Some of you may be familiar with Fontographer, a font creation and editing program popular in the 80s and 90s which uses Bézier curves to create font outlines. The learning curve (no pun intended) for Fontographer was a bit steep – for serious designers only.
Now comes FontStruct, a free, online font construction tool brought to you by FontShop. FontStruct allows you to build your own fonts using geometric shapes on a grid. When youve finished making your character set, FontStruct will render your font so you can download it in TrueType format. And did I mention its free?
The wine-and-brie crowd might turn their collective noses up at such a basic tool as FontStruct, but its a lot of fun to play with and, who knows, you may discover your inner Erik Spiekermann.
Findability
Here at Newfangled, we put a lot of emphasis on writing relevant content for websites and SEO strategies. However, connecting people with the information theyre looking for goes beyond just these two aspects. Findability permeates every aspect of web development from initial client contact all the way through to sending a site live. A List Apart has a great article on the topic.
RotW: Grunge Design
Urban Dirty offers a selection of free background textures that range from grungy to gritty to slimy. The textures are asymmetrical so you cant create a seamless tiled background from any of them, but theyre rendered at 180 DPI in small, medium and large sizes.
Go Medias Arsenal site offers textures, vector art and fonts that would appeal to just about any skate rat or tattoo artist. The art is offered in reasonably priced royalty-free collections but you can download free samples here.
The Fine Print Will Always Get You!
I hesitated to link to the new Photoshop Express site (in beta), which offers basic online Photoshop functionality for free, mostly because after looking at it with Eric and Able, we all concluded that it really wasnt worth using at this point, since we all have Photoshop on our computers and Picnik is also free and better. But now I have an even better reason! Apparently, the terms of service are raising eyebrows aplenty (note that when you click the terms of service link in the footer of the site, you get the Additional Terms of Service, but to read the General Terms of Service, you have to click an additional obscure link). Get a load of this:
Adobe does not claim ownership of Your Content. However, with respect to Your Content that you submit or make available for inclusion on publicly accessible areas of the Services, you grant Adobe a worldwide, royalty-free, nonexclusive, perpetual, irrevocable, and fully sublicensable license to use, distribute, derive revenue or other remuneration from, reproduce, modify, adapt, publish, translate, publicly perform and publicly display such Content (in whole or in part) and to incorporate such Content into other Materials or works in any format or medium now known or later developed.According to Wired, John Nack, Adobe’s Senior Product Manager for Photoshop, reports that the Photoshop Express team has responded to questions about the license saying, we reviewed the terms in context of your comments — and we agree that it currently implies things we would never do with the content. Good to know. In the meantime, stick to Picnik.
How To Do SEO, Part 2, Farming vs. Hunting
The search engine optimization approach Newfangled practices is more akin to farming than it is to hunting. Farming involves planting lots of seeds and then waiting patiently as each one contributes to a harvest. There is a place for SEO hunting, that aggressively goes after a few prize keywords. Direct sales of consumer products, for example, may require an SEO hunter. But in my opinion those goals fit an AdWord campaigns more than organic SEO. But hey, if you can get performance in organic search results for phrases like "ink jet cartridge refills" or "cheap airline tickets to Bermuda," more power to ya.
SEO farming on the other hand is about casting lots of compelling content onto your site. As we saw last month this approach is more in line with how search engines work, and it benefits from how searchers search. This month I'll use Google Analytics to demonstrate how you can reap an SEO harvest using a farmer's approach.
The Future of the Internet
Jeremiah Owyang posted this morning a question, whether the reader was a corporatist or a purist in regard to the corporate impact of social media. There is a nice discussion in response to this in his comments section which you can read or participate in here.
In my comment, I mentioned the book, The Future of the Internet, which takes a big picture view of the internet as it matures due to the impact of trends like social media, and technological developments (heres a more in-depth review of the book). Zittrain considers whether the trajectory will be shaped more by tethered appliances rather than the generative approach of its first decade. Since I tend toward pessimism when it comes to technologys role in society in general (yeah, I just said that), my sense is that we are headed toward a more lock-down oriented phase (corporatist) of the internet, though Ill be happy to be proven wrong.
What do you think?
Corporate Blogging Policies
A recent story about how Cisco has gotten in to hot water over a high
profile blog maintained by one of its intellectual property advisors
has prompted many companies to consider their policy in regard to
corporate blogging. The blog, which is now somewhat locked-down,
is called Patent Toll Tracker, and was kept by Rick Frenkel to
chronicle issues related to patent litigation. Apparently, several
patent lawyers involved in a case against Cisco have filed a libel case
against them after Frenkel revealed his identity and affiliation with
the company.
Cisco has released a statement
affirming that they will be retaining Frenkel though re-thinking their
corporate policy. One particular quote has been making its way across
the net already:
Seems pretty common-sense to me... After all, its
just the right thing to do. I mentioned this idea toward the end of a
previous post I wrote about using blogging to build your online reputation. Corporate blogging is an opportunity to connect with potential and existing customers in a positive way, even if to address negative feedback. It is not
a good method to attack competition, react against upset customers, or
act subversively. Thats the thing about the internet- the truth will
come out, and if youve got something to hide, it wont be pretty.
Update: 03/28/2008, Regarding the truth coming out on the net, and it not being pretty, check this out.
Artists, the Internet and Intellectual Property
There is a great discussion about this topic going on over at Nicholas Carrs blog. Nick posted a short post in response to TechCrunch blogger Michael Arringtons comment, that Recorded music is nothing but marketing material to drive awareness of an artist. Youll see by his title that Nick completely disagrees. At this point, I do too. According to Arringtons comment, if the art that an artist makes is just marketing material to drive awareness to her, I wonder what exactly is the point of driving awareness to that person? I think that most artists would feel that their work is the manifestation of who they are as an artist...
Print Design Does Not Equal Web Design
I spent 10 years as a print designer before coming to Newfangled. I knew almost nothing about how to design for the web when I arrived but, over the past eight years, Ive picked up a few things and I now understand why its very different from designing for print.
For example, one of the keys of a successful website is its content. And one of the keys to good design is making sure your sites content is legible. Admittedly, since Ive turned 40, Ive had to increase the text size on a few of my favorite sites to reduce the strain on my eyes.
But the following example was clearly executed by a print designer who believes function follows form instead of the other way around. I had to hit command-plus on my keyboard three times before I could even make out what the text said.
Designers who think the web is just an online version of the printed page may as well say theres no difference between Mozart and Van Halen; its still music, right? Im not saying that general design principles cannot be applied to the web; good design is still good design. But the medium of the web has unique characteristics that require sensitivity to elements of design that arent considered (or necessary) in print design.
So if youre a print designer looking to break into the world of web design do yourself a favor – before you buy Photoshop, read some books, take a class or kidnap Jakob Nielsen for a weekend and force him to tell you all he knows about user interface design and usability.