Main

An Experiment with Visual and Semantic Relationships

Nov 16 by Andre

I am very interested in online collaboration tools. This experiment is an early offshoot of some tools and techniques I am developing:

A visual 'map' as a collaborative workspace. In this case, the goal is to build a visual representation of the Web 2.0 space, including entities (people, concepts, companies) and relationships among those entities.

Feel free to participate! Just three things you need to do:

  • Drag things around . . .
  • Right click! (control-click on Mac)
  • Select "relationships" from the right-click popup

Try it out at http://web20.earthcode.com

Continue reading "An Experiment with Visual and Semantic Relationships

Automated backup using Amazon S3?

Apr 09 by Andre
A really nice application for Amazon's S3 would be a scheduled backup service. As long as I'm wishing someone would write this, here's my feature wish-list:
  • Select multiple folders to backup
  • Only backup changed files (since you pay for bandwidth)
  • Specify conditionals and/or regex's for the files you want backed up
  • Runs in the background; only alerts me if it wasn't able to complete a scheduled backup
  • Local encryption before sending it to the S3 servers
There are some interesting problems to solve here -- for example, since the backup takes time to complete, how can you ensure consistency of the backup set? Maybe you could take a local snapshot, and transmit to the S3 web service from the local cache.

On a related note, I came across an effort by Elliot Smith to build a Rails front-end to S3. Still in the proof-of-concept stage, but something to keep an eye on.

Continue reading "Automated backup using Amazon S3?

The Scriptaculous/Prototype Conundrum

Mar 27 by Andre
So you are about to code up some wicked 2.0-style AJAX-enabled web goodness. First things first: say the title to this post really fast five times.

Now, you need to decide if you will leverage the Prototype and Scriptaculous libraries (P/S hereafter) to take some of the AJAX weight of your back. If you are programming with Ruby on Rails (and you probably are, because that's the way you roll), the decision seems almost made for you: all those nifty helpers for AJAX updaters, drag and drops with callbacks, etc. etc. Rails makes it so easy, why wouldn't you go with the P/S one-two punch?

Continue reading "The Scriptaculous/Prototype Conundrum

SF Web Innovators

Mar 24 by Andre
I went to the SF Web Innovators meeting last night. It's a good venue for mixing with people in the industry. There were product demos too -- I didn't see all of them, but of the ones I saw:

Continue reading "SF Web Innovators

Consensus Web Filters

Mar 17 by Andre
Kevin from Cool Tools has a good post on "consensus web filters" -- Digg, reddit, and the like, including a few I haven't used.

Continue reading "Consensus Web Filters

Google Maps at Night

Feb 17 by Andre

google_night.jpgAn interesting application for Google maps overlays. The zoom levels are limited, but still very cool.
The underlying 128 megapixel night imagery from NASA uses a map projection different from Google Maps'. The two are aligned near the NYC-Madrid-Tokyo axis only.
http://www-static.cc.gatech.edu/~pesti/night/
 

Continue reading "Google Maps at Night

Map APIs for Google, Yahoo, MSN

Feb 17 by Andre
StrataVarious has an excellent comparison of online mapping APIs (Google, Yahoo's AJAX maps, MSN virtual earth). For each API, it includes code examples for instantiation, how to zoom and place markers, etc. Very useful! stratavariousmap.png

Continue reading "Map APIs for Google, Yahoo, MSN

Screenshot of Gmail Chat at Techcrunch

Feb 07 by Andre
Techcrunch has some screenshots of the new Gmail chat inside gmail. Will knowing that your chat history is permanently recorded on Google's servers alter your chatting habits at all? Of course you can take your chats "off the record" -- but the default is that everthing is saved.

Continue reading "Screenshot of Gmail Chat at Techcrunch

Simplicity is good at DEMO 06

Feb 07 by Andre
What is DEMO '06? From PC Mag:

A select group of digerati will roll into the Pointe South Mountain Resort in Phoenix, Arizona next week for the DEMO '06 conference. The annual event is often a showcase for eye-popping emerging technologies, often from early startup companies. While not all the companies become successful with their ideas, many do.

A report on the morning session s is here DEMO 06: Morning Report (from HorsePigCow)

Continue reading "Simplicity is good at DEMO 06

Chat Peanut Butter and Email Chocolate

Feb 07 by Andre
I know every blog out there is posting on Google's Chat/Email integration, but I have to call out Techdirt's article for their  title: Google Mixes Chat Peanut Butter With Email Chocolate

Continue reading "Chat Peanut Butter and Email Chocolate

Ajax photo editor

Feb 06 by Andre
PXN8.gif pxn8.com has an Ajax image editor which works pretty well. Good enough to actually utilize in place of firing up the trusty Photoshop? You decide.

Continue reading "Ajax photo editor

Stowe Boyd on RSS "breaking through"

Feb 06 by Andre
Cogent thoughts by Stowe Boyd, based on an earlier post by Dave Winer. On the centralization vs. decentralization aspect, I'm with Stowe (decentralization). It's the social aspect of finding others who share our interests, and discovering new content in the process.

Continue reading "Stowe Boyd on RSS "breaking through"

How to take advantage of web 2.0

Feb 05 by Andre
Dion Hinchcliffe has an excellent post on ten Ways To Take Advantage of Web 2.0 (web2.wsj2.com)

Continue reading "How to take advantage of web 2.0

IBM, others take opensource approach to Ajax

Feb 02 by Andre
The story is here. A few notable excerpts:

In Ajax's case, there is little need to spur emergence of a market, because the market is already there. In most cases, it's been a situation of web developers taking the laws into their own hands, a strategy that Google Maps legitimized.
Very true, and I think precisely one of the reasons developers have been so enthusiastic about Ajax -- when there are no ground rules, it opens up a lot of creative options for developers.

. . . but with battle lines drawing on the future of rich Internet clients, something was bound to give. Like Linux previously, Ajax has become too popular for vendors to ignore.
Also true. The commercial market for Ajax tools and skills is about to explode.

The article goes on to talk about the proliferation of Ajax toolkits (70 at last count), Ajax support in Eclipse, and more.

Continue reading "IBM, others take opensource approach to Ajax

The world is your programmable oyster

Jan 30 by Andre
Programmable Web is a repository of Web 2.0 APIs and mashups. I found this via TechQuik.

Continue reading "The world is your programmable oyster

Javascript: Object Orientation

Jan 22 by Andre

An OO approach is a key part of your Javascript/Ajax programming arsenal. There are multiple ways to program Javascript in an object-oriented way. The Prototype library adds some helper constructs to facilitate object orientation, as do many other Javascript libraries. Regardless of which framework you use (or if you choose to use none at all), an object-oriented approach can make your Ajax programming easier.

Here, I'm demonstrating a basic syntax for OO; you can use this syntax literally, or use it to enhance your understanding of the various framework-based OO approaches available out here.

Defining the Class

In Javascript, classes are defined as functions. The "new" keyword together with the function gives you new instances of the class. Here's an example:
// a Person class
function Person (sName, nAge) {
	this.sName = sName;
	this.nAge = nAge;
} 

// add a method to the class by adding a function to its prototype
Person.prototype.tellMe = function() {
  return ("My Name is "+this.sName+". I am "+this.nAge+" years old");
}
That's all there is too it. You have now defined a class (Person), with one method (tellMe).

Using the Object

To use the Person class we just defined:
var oPerson = new Person("Bob", 28);
alert (oPerson.tellMe());
. . . will give us:

Where's the Constructor?

In this example, all the code inside function Person() is the constructor -- this code gets executed each time you use the function to create a new instance of the class, and sets the members of the instance (sName and nAge) to the values passed to the function.

There's lots more to OO Javascript programming

You can model inheritance and more with Javascript. A good place to learn more is webreference's Object-Oriented Programming with JavaScript series.

Continue reading "Javascript: Object Orientation