Friday, March 13, 2009

appscale -

Google Code: "AppScale is an open-source implementation of the Google AppEngine (GAE) cloud computing interface. AppScale enables execution of GAE applications on virtualized cluster systems. In particular, AppScale enables users to execute GAE applications using their own clusters with greater scalability and reliability than the GAE SDK provides. Moreover, AppScale executes automatically and transparently over cloud infrastructures such as the Amazon Web Services (AWS) Elastic Compute Cloud (EC2) and Eucalyptus, the open-source implementation of the AWS interfaces"

Monday, March 09, 2009

Above the Clouds

Above the Clouds: This Berkeley whitepaper has more depth than previously written on cloud computing and has valuable insights.

Friday, February 20, 2009

Website danger as hacker breaks SSL encryption

"Independent hacker Moxie Marlinspike has unveiled new techniques to defeat SSL encryption, which would leave common web applications such as online banking or secure website logins vulnerable to attack." - ITPRO

Thursday, February 19, 2009

YUI Theater — John Resig: “The DOM Is a Mess” � Yahoo! User Interface Blog

John Resig: “The DOM Is a Mess” 

Interesting stuff in the last 30% about implementing fast DOM selection engines

Palm.com : Palm Developer Network - Palm webOS from O'Reilly Media

Palm.com : Palm Developer Network - Palm webOS from O'Reilly Media: "The webOS application model combines the ease of development and maintenance of a web application with the deep integration available to native applications, significantly advancing the mobile user experience, while keeping application development simple."

Tuesday, February 17, 2009

Plastic Logic Reader

Plastic Logic Reader


PLReaderAndPersonLandscape.jpg


Scott Adams Blog: the creator of Dilbert, Wally, Catbert, the Pointy Haired Boss and all your favorite cubicle companions.

Scott Adams Blog: the creator of Dilbert, Wally, Catbert, the Pointy Haired Boss and all your favorite cubicle companions.: "I have a twofold test for whether something can obtain instant popularity and thus have time to achieve quality:

1. You must be able to describe it in a few words.

2. When people hear about it, they ask questions."

Saturday, February 14, 2009

Monday, February 09, 2009

InfoQ: CouchDB and Me

InfoQ: CouchDB and Me: "Damien Katz explains what drove him to create CouchDB, why he chose Erlang and more."

Friday, February 06, 2009

Recreating the button | stopdesign

Recreating the button | stopdesign: "Until some future version of HTML gives us new native controls to use in a browser, at Google, we’ve been playing and experimenting with controls we call “custom buttons” in our apps (among other custom controls). These buttons just launched in Gmail yesterday, and they’ve been in Google Reader for two months now. The buttons are designed to look very similar to basic HTML input buttons. But they can handle multiple interactions with one basic design. The buttons we’re using are imageless, and they’re created entirely using HTML and CSS, plus some JavaScript to manage the behavior. They’re also easily skinnable with a few lines of CSS, which was a key factor now that Gmail has themes."

Saturday, January 31, 2009

Paul Buchheit: Communicating with code

Paul Buchheit: Communicating with code


Some people can sell their ideas with a brilliant speech or a slick powerpoint presentation.

I can't.

Maybe that's why I'm skeptical of ideas that are sold via brilliant speeches and slick powerpoints. Or maybe it's because it's too easy to overlook the messy details, or to get caught up in details that seem very important, but aren't. I also get very bored by endless debate.

We did a lot of things wrong during the 2.5 years of pre-launch Gmail development, but one thing we did very right was to always have live code. The first version of Gmail was literally written in a day. It wasn't very impressive -- all I did was take the Google Groups (Usenet search) code (my previous project) and stuff my email into it -- but it was live and people could use it (to search my mail...). From that day until launch, every new feature went live immediately, and most new ideas were implemented as soon as possible. This resulted in a lot of churn -- we re-wrote the frontend about six times and the backend three times by launch -- but it meant that we had direct experience with all of the features. A lot of features seemed like great ideas, until we tried them. Other things seemed like they would be big problems or very confusing, but once they were in we forgot all about the theoretical problems.

The great thing about this process was that I didn't need to sell anyone on my ideas. I would just write the code, release the feature, and watch the response. Usually, everyone (including me) would end up hating whatever it was (especially my ideas), but we always learned something from the experience, and we were able to quickly move on to other ideas.

Friday, January 30, 2009

Google Bails On Print Ads (And Newspapers)

Google Bails On Print Ads (And Newspapers): "While we hoped that Print Ads would create a new revenue stream for newspapers and produce more relevant advertising for consumers, the product has not created the impact that we — or our partners — wanted. As a result, we will stop offering Print Ads on February 28. For advertisers who have campaigns already booked, we will place their ads through March 31."

The lie of print advertising (followed by good news) � BuzzMachine

The lie of print advertising (followed by good news) � BuzzMachine: "That myth is essentially that every reader of a publication - not just buyer but alleged reader - is exposed to every ad. So every advertiser is charged for every reader of every ad. Great while it lasted, eh?"

Official Google Data APIs Blog: Bringing OpenID and OAuth Together

Official Google Data APIs Blog: Bringing OpenID and OAuth Together

We are happy to announce an important enhancement to our recently launched OpenID endpoint. Google now supports the "Hybrid Protocol", combining OpenID federated login together with OAuth access authorization. Websites can now ask Google to sign-in a user using their Google Account, and at the same time request access to information available via OAuth-enabled APIs such as the Google Data APIs.

VSDB

VSDB: "VSDB is an experimental database based on atomic updates of constant databases. Unlike other lightweight databases, VSDB supports full transactional semantics when reading and writing to the database. A VSDB database consists of several hash tables (with plans for other data structures). Transaction conflicts are detected and rolled back and the system maintains full ACID semantics. VSDB may be used across distributed filesystems such as NFS without problems."

Monday, January 26, 2009

Finding The Memristor

IEEE Spectrum: How We Found the Missing Memristor: "Memristor is a contraction of “memory resistor,” because that is exactly its function: to remember its history. A memristor is a two-terminal device whose resistance depends on the magnitude and polarity of the voltage applied to it and the length of time that voltage has been applied. When you turn off the voltage, the memristor remembers its most recent resistance until the next time you turn it on, whether that happens a day later or a year later."

Thursday, January 22, 2009

High on Evernote: Cloud Storage for Consumers

High on Evernote: Cloud Storage for Consumers

What is so great about Evernote?
Evernote covers all the bases of Cloud storage:

  • It doesn’t care what kind of data you put in it, it supports any file type as well as raw text.
  • It is storage online and an automatic backup of local files.
  • It is available online and offline.
  • It allows you to edit your from “within” the application (even files, when opened from the interface).
  • It is a bookmarking system that allows you to organize all your data with tags and retrieve it via search or browsing.
  • It keeps a full copy of any data you find interesting on the web that you can capture through a bookmarklet.
  • It allows you to structure your data in a free form way, and keep meta data about the data with the data.
  • It allows you to share your data with others, either in bulk (through public notebooks) or in batches (exporting notes).
  • It is accessible from clients on platforms that people interact with almost constantly which makes it available to gather your created data from wherever you are and whatever format the data is in.
  • It is extendable through it’s developer API so that third-party clients can be written against it to manipulate your data from even more platforms and combine it with other services that you already use to collect, create or modify data (with the ability to auto sync with those services).

This is the promise of the Cloud - being able to access and store any data you have from wherever you are whenever you want.

Tuesday, January 20, 2009

Anti-RDBMS: A list of distributed key-value stores | Richard Jones, Esq.

Anti-RDBMS: A list of distributed key-value stores | Richard Jones, Esq.: Perhaps you’re considering using a dedicated key-value or document store instead of a traditional relational database. Reasons for this might include:

  1. You’re suffering from Cloud-computing Mania.
  2. You need an excuse to ‘get your Erlang on’
  3. You heard CouchDB was cool.
  4. You hate MySQL, and although PostgreSQL is much better, it still doesn’t have decent replication. There’s no chance you’re buying Oracle licenses.
  5. Your data is stored and retrieved mainly by primary key, without complex joins.
  6. You have a non-trivial amount of data, and the thought of managing lots of RDBMS shards and replication failure scenarios gives you the fear.

Whatever your reasons, there are a lot of options to chose from.

Monday, January 19, 2009

Coding Horror: Dictionary Attacks 101

Coding Horror: Dictionary Attacks 101: "Limiting the number of login attempts per user is security 101. If you don't do this, you're practically setting out a welcome mat for anyone to launch a dictionary attack on your site, an attack that gets statistically more effective every day the more users you attract."

12 Useful Web Tools for Designers - Six Revisions

12 Useful Web Tools for Designers - Six Revisions: "When it comes to design, there’s a plethora of free web-based tools to help you accomplish tasks such as color palette selection, creating unique fonts, editing images, and testing typography.

In this article, you’ll find a bunch of handy online utilities for designers."

Friday, January 09, 2009

about:cmlenz - CouchDB "Joins"

about:cmlenz - CouchDB "Joins": "Despite all that activity (and past experience with the conceptually similar Lotus Notes), the correct approach to designing applications “the CouchDB way” isn't always obvious to me at this point. Just today, there was a discussion on IRC how you'd go about modeling a simple blogging system with “post” and “comment” entities, where any blog post might have N comments. If you'd be using an SQL database, you'd obviously have two tables with foreign keys and you'd be using joins. (At least until you needed to add some denormalization.)

But what would the “obvious” approach in CouchDB look like?"

Thursday, January 08, 2009

8 Definitive Web Font Stacks [Design Tips & Tricks]

8 Definitive Web Font Stacks [Design Tips & Tricks]


Over the last few months, I’ve spent more time than I intended on exploring the whole idea of fonts and typography for the Web. (My friend, typography expert Simon Pascal Klein, writes, “The former is a stylized set of glyphs of characters,” while “the other [is] the whole art of creating type and setting it into the written word.” For more clarification and illumination, consult Jon Tanand Mark Simonson.)

In the process, I’ve been considering the idea of font stacks—using the well-known font-family CSS property—to list as many different fonts as possible in order to optimize the web site experience for a maximum number of users.

...

As noted above, the general ordering is: the less widespread Windows fonts, then Mac fonts, then Linux varieties, then universal fonts, and finally, the generic family name. 

Leak Free Javascript Closures

Leak Free Javascript Closures: "Javascript closures can be a powerful programming technique. Unfortunately in Internet Explorer they are a common source of memory leaks. Therefore I propose a method to create closures that don't leak memory."

Thursday, January 01, 2009

ClientCookie

ClientCookie


ClientCookie is a Python module for handling HTTP cookies on the client side, useful for accessing web sites that require cookies to be set and then returned later. It also provides some other (optional) useful stuff: HTTP-EQUIV and Refresh handling, automatic adding of the Referer [sic] header, automatic observance ofrobots.txt and lazily-seek()able responses.

Wednesday, December 31, 2008

Four Reasons to Love CouchDB, Part 2 | A.J. Brown's Blog

Four Reasons to Love CouchDB, Part 2 | A.J. Brown's Blog: 


"Reason #2: It’s not a RDBMS"

RDMS’s are powerful, but sometimes they’re overkill for our applications. I’ve seen some hypothesis suggesting that CouchDB’s document oriented strategy would work for 90% of web applications today. Who knows how accurate that is, but it definitely makes you think. After all, you can’t get any more cutting edge than a database engine asking us to rethink how we model data which is written in a language that asks us to rethink parallel processing.

Check back tomorrow for Reason #3

Monday, December 29, 2008

6. The Web Layer

Grails documentation for mapping Rails-like routes

Sunday, December 28, 2008

Web Reflection: Stressfull procedure? Distribute your task!

Web Reflection: Stressfull procedure? Distribute your task!: "Have you never been in troubles with frozen GIFs or unresponsive HTML?
Sometimes JavaScript could be used to perform really stressful task and a loop, a for in, or an each, could not be fast enough to make your DOM responsive."

FriendFeed Blog: Simple Update Protocol: Fetch updates from feeds faster

FriendFeed Blog: Simple Update Protocol: Fetch updates from feeds faster: "SUP (Simple Update Protocol) is a simple and compact 'ping feed' that web services can produce in order to alert the consumers of their feeds when a feed has been updated. This reduces update latency and improves efficiency by eliminating the need for frequent polling."

Friday, December 26, 2008

Pragmatic Programming Techniques: CouchDB Implementation

Pragmatic Programming Techniques: CouchDB Implementation
Ricky Ho from Adobe: "To understand deeper about CouchDB design, I am very fortunate to have a conversation with Damien, who is so kind to share many details with me. Here I want to capture what I have learnt from this conversation."