Flock

Flock Flock is awesome. For now I’ve made the switch from Firefox to Flock’s Beta v0.7. What is Flock? Well, Flock is the expert on themselves so here’s their description:

The web, and the way people engage online, has evolved dramatically over the past decade. We still see a lot of room for the browser to keep pace with everything that’s going on on the web. Providing a fast, safe and simple browsing experience is very important, but at Flock we are also trying to look more broadly at how the web browser can enrich users’ online experience.

For this release, and for at least the next year or so, we are primarily focused on supporting the social dimension of the web, and on bringing information closer to the user. Right now this includes a heavy emphasis on the photo experience (from upload through discovery to notification), RSS support, dramatic improvements to the search box (including a new take on favorites), and blogging.

Casey over at MaisonBisson posted about Flock back in October when the Flock preview first came out (v0.1 or something). I saw Casey’s post and decided to give Flock a whirl. I was mildly impressed and saw that Flock had potential. Its big problems at the time were related to memory leaks and sluggishness. That seems to be resolved and they’ve done wonders to their ‘features.’

Social Bookmarks

Beautiful. Flock lets you use Del.icio.us or Shadows as your bookmarking tool. So anything you bookmark can be accessed from anywhere you go (whether through Flock or at the bookmarking site). Your bookmarks can be tagged right from the browser as well as marked as public or private.

Social Images

Flock integrates with Flickr and Photobucket and a sexy manner. The browser literally becomes an uploading/browsing agent for images. They’ve a nice drag and drop interface with a photo bar that you can place above your tabs. Check it out:

Flock Flickr

Its slick, intuitive and has many Flickr features (I can’t speak for Photobucket as I do not have an account there).

Text & Misc. Images

Another sexy aspect of Flock is the ability to highlight and drag text and images URLs from anywhere and store them for later. Once you’ve placed something in that Text and Image bar you can browse, drag and drop the data into the browser or external applications. In addition to the dragging and dropping of the data, you can simply right-click the data and select the blog option.

Flock Text

Blogging

Flock being a Web 2.0 browser (as its being toted), it cannot forget blogging. You can set your browser up to post to your blog (using a WYSIWYG editor). You can post to blogs hosted by: WordPress, TypePad, Moveable Type, LiveJournal, Drupal, and Blogger. The blogging tool supports any blog that uses Moveable Type, Blogger, MetaWebLog, and Atom APIs. Snazzy tool, but I’m happy with the web-based editing of my blogs for now.

News

There’s a nice news aggregator as part of Flock. Looks decent…but I’ll stick to my own home-grown aggregator.

Searching

If you use the browser search tool, Flock goes a step further and as you type it’ll grab items from your history, favorites, and the top five searches from Yahoo!. Pretty sexy stuff. Be sure to add Blingo to your search list!

Extensions

Because Flock is based off of Firefox, many of the extension run for it! So you can still have the must haves. I definately wouldn’t be using Flock otherwise.

Summary

I like Flock for now. It looks promising, the features are nice and it looks pretty sexy too. Get it at Flock.com.

MasterWish – Practicing What I Preach

masterwish MasterWish, my labor of love (created with my friends Zach Tirrell and Jon Emmons) is my playground for Ajax and Web 2.0 experiments.

If you haven’t been acquainted with the site, its a wishlist site with a schlew of features. The high point is the ability to secure down lists and grant access to specific buddy groups. I’m pleased to say that we have gained a decent member base in the past 8 months and I am also happy to say that things are going to change around shortly!

MasterWish was built using SAJAX as the tool of choice for Ajax communication but as I’ve mentioned in the past, I am a Prototype convert. My knowledge of Ajax, JSON, and general application structure has been morphing so much in recent weeks that I have held off in completely revamping the wish list site.

Things are changing. I have begun the work to implement the following:

  • Creation of more “hackable” Web Service APIs using SOAP and REST
  • Representation of data using both XML and JSON
  • Ajax powered by Prototype
  • Sweet DOM manipulation powered by Script.aculo.us
  • Separation of Layout and Logic with event:Selectors
  • and of course, we’re already doing: Server-Side Templating for greater separation of Layout and Logic.

Sign up. Stay tuned. Get gifts.

Google Acquires Writely

Back in October I was extremely excited about Writely. It has been a few months and my love for the word processing application grows each time I use it. I wrote:

The gist of this application is that its a Word Processor online! You can type documents (much like you can with MS Word or OpenOffice.org) through a web interface. The application has an auto-save, hot keys, exporting to HTML and Word, HTML editing and the ability to publish to blogs! Oh, and the sweet part about it…you tag your documents and can distribute them with other users.

Writely is an excellent product and, like most other web 2.0 applications out there, larger companies caught notice. This time, rather than Yahoo acquiring this web 2.0 app like it did Flickr and Del.icio.us; Google made this acquisition. There is now a Google Writely team. Jen Mazzon, a Writely developer posted this on the official Google Blog:

For the last five months, I’ve been part of a Silicon Valley startup called Upstartle, which makes Writely, a collaborative word processor that runs in a web browser. Well, as of Monday, I’m happy to say that I, and the rest of the Writely team, are now part of Google.

The Writely team seems happy with the acquisition (as I would be). Sadly, if you are interested in creating a Writely account, you’ll have to wait until they re-open account registration…which they plan to do once they’ve re-located to Google. The good news? Those that already have accounts will still be able to use them as is. Also those that have existing accounts can still add collaborators to documents despite the closed account creation process. Sexy.

And if you’re curious:

Here are our “top 10” reasons why being part of Google is fantastic for Writely and the Writely team:

10. Writely is like a caterpillar that we hope to make into a beautiful butterfly at Google!
9. We love Google’s philosophy and values — especially “Focus on the user.”
8. We’re as passionate as Google is about respecting users’ privacy.
7. Many of our users are already Google fans using other Google services.
6. Being at Google will help us do more great things faster.
5. Some people didn’t feel comfortable trusting a tiny startup with their documents…and we’re no longer a tiny startup.
4. We like lava lamps and they’re pretty much standard decor at Google.
3. Three words: Free Googleplex lunches
2. As fun as it’s been to launch a popular, global, 24×7 Web service, it’ll be nice to take a vacation once in a while!
…and the number one reason???
1. We’ll be able to bring Writely to not just thousands but millions of users — the more, the merrier

Look Ma, Cross-Domain Scripting!

Ajax, as I’ve stated time and time again, is sweet. So what is problem? XMLHTTPRequest requires that the called scripts that execute server side and return information to the client must reside on the same domain. This has irked me time and time again during my exploration and experimentation of the Web 2.0 world.

Enter JSON Web Services and dynamic script tags. This beauty allows for Ajax-like communication across domains without requiring page loads. Right right right…so how do you use it? Read on…

First, lets clarify what JSON (JavaScript Object Notation) is. Wikipedia explains that JSON is just a way to structure object data in a way that is easily interpreted…primarily with JavaScript. Here’s some examples from Wikipedia:

JSON Example:

bork({"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}});

Which is the same as this XML Example:

<menu id="file" value="File">
  <popup>
    <menuitem value="New" onclick="CreateNewDoc()" />
    <menuitem value="Open" onclick="OpenDoc()" />
    <menuitem value="Close" onclick="CloseDoc()" />
  </popup>
</menu>

So…if JSON just the data representation part of things, how does it work similarly to Ajax?

Now we’re getting into the Web Services side of things. The quick answer: When you dynamically create <script> tags on a page, the JavaScript source is executed immediately. Now, as most experimental web developers may well know, you can reference remote JavaScript source in a <script> tag. Which means….if you dynamically create a script tag that references a source on another domain, and that source outputs JSON, you are as good as gold!

Here’s the step by step: (I use a JavaScript Object I found over at Dan Theurer’s Blog for the dynamic adding of script elements…it helps avoid duplicate script tags).

First, lets make the remote file that outputs JSON. (obviously, most cases will have the data dynamically generated…but I’ll use a static example as the generation of this data is trivial)

file: remote_file.php

< ?php
echo 'bork({"Image": { "Width":500, "Height":250, "Title":"Giant Cow", "Thumbnail":{"Url":"http://someurl.com/image/1234", "Height": 75, "Width": 150}}});';
?>

Here’s the html file we want the user to see/interact with:

file: client.html

<html>
<head><title>Test</title></head>
<script src="js/jsr_class.js" type="text/javascript"></script>
<script type="text/javascript">
function addScript()
{
  var obj=new JSONscriptRequest('http://someurl.com/remote_file.php');      
  obj.buildScriptTag(); // Build the script tag      
  obj.addScriptTag(); // Execute (add) the script tag
}//end addScript

function bork(data)
{
  var text='';

  if(data==null)
    alert('error');
  else
  {
    text='Image Title: ' + data.Image.Title + '<br />';
    text+='Width: ' + data.Image.Width + '<br />';
    text+='Height: ' + data.Image.Height + '<br />';
    text+='Thumbnail Data: ' + data.Image.Thumbnail.Url;
    text+=' (' + data.Image.Thumbnail.Width + 'x' + data.Image.Thumbnail.Height + ')<br />';
  }
  document.getElementById('output').innerHTML=text;
}//end bork
</script>
<body>
<a href="#" onClick="addScript(); return false;">Click to Get Stuff</a>
<div id="output"></div>
</body>
</html>

Thats all there is to it! Simple and slick.

Amazon Tags!

About Time! According to CNet, Amazon is heading down the road of tagging. This is great news in my book. I’m a follower of the Web 2.0 movement and have really been turned onto the idea of folksonomy (tagging) by products like Flickr and thus have recently brought MasterWish on board with tagging.

While many people out there have used tagging in Flickr, Gmail, MasterWish and various other web 2.0 apps…there are still many out there that express their opinions on tagging as “Tagging…WTF is that?!”. Having a large web company such as Amazon with its HUGE following jump on the band wagon with tagging will help bring folksonomy to the masses.

While exciting that this is happening, Amazon is slowly rolling tags out to their users as evidenced in this excerpt of the CNet article:

The idea, apparently, is to slowly experiment with tags and to give users some power over how certain Amazon products–books, for example–are categorized.

For now […] only about half of Amazon’s users can even see tags on the site.

Its only a matter of time before folksonomy will cease to be a buzz word and start appearing in the english dictionary. Everybody and their brother will know of tagging and the world will be a happier, easier to search place. I can only hope

MasterWish Enters the Web 2.0 World

MasterWish has been my labor of love for the past 6 months. The site – create by Zachary Tirrell, Jon Emmons, and myself – was opened to the public (in beta mode) in the middle of September.

Over the past month, we’ve been pretty excited about the whole Web 2.0 craze. The initial release was fairly solid but it lacked a few key elements to make it a 2.0 application. The three of us have wanted to bring MasterWish fully into the Web 2.0 world, so with a great deal of planning and even more coding, I am comfortable to say that MasterWish is now a fairly solid Web 2.0 application.

MasterWish has:

  • Folksonomy Features (tagging)
  • Easy item adds via a Favelet
  • Ajax for quick and easy assignments of items to lists, buddies to groups, buddies to your buddy list, copying items from other people, etc.
  • Buddies/Contacts
  • Group-Level access to Categorized Wish Lists
  • Fine-grained access control on your user information (so you can distribute information to people on a case by case basis). Here are some things you can distribute to other users:
    • Real Name
    • Address
    • E-mail
    • Many clothing sizes (shirt, bra, inseam, ring, head, etc)
    • Color Preference
    • etc.

Currently we are working on a very sweet feature to allow for collaborative lists. This will make wedding registries a LOT easier and my office at Plymouth State (which currently uses MasterWish for book orders) will be able to create an office wishlist and allow multiple users to contribute.

Christmas is coming around the corner, so if you haven’t checked it out for your wishlist needs, you should do so. You definately won’t regret it…and your family will thank you for it!

Leetster

World of Warcraft, as I’ve mentioned before is a very popular game. WoW, however, is more than just the game aspect…it is extremely social. Players can create guilds – which are organizations in game – and participate in a variety of player created events and interactions with other players. Guilds typically create websites (like this one: Crimson Eagles) to allow these players to communicate, strategize, complain, and brag.

The websites are great…but the drawback is that those websites tend to be closed to those outside the guild, preventing others from seeing how players interact. Enter Leetster. The MySpace or Facebook of the WoW world. Leetster is a web based community site allowing players to create accounts and browse other users that play. Through the site, you can post screenshots, images, links, likes, dislikes, characters, etc. You can add friends and enemies and even use Leetster as a guild website!

The developers oaf and Pakhuda are from the Bleeding Hollow server and seem pretty savvy with JSP (their language of choice for the application) and have been using some pretty snazzy Ajax features for editing your data. Another sweet feature is the ability to completely customize your profile. Here’s mine.

A word of warning, this site is very open…so be aware that rough language may abound and flaming on the forums is typical…but overall its a pretty good time. Its nice to see the faces behind the characters! Since its creation, it has been open to the Bleeding Hollow server for testing but a day or so ago they opened it up to the rest of the WoW community. If you haven’t checked it out, do so! Its a good time!