Nov 21

 

It has been a great week at MAX ‘08, providing great experience for me and looking at all the new technology Adobe has to offer. Love the Keynote, Sneak Peaks, Great People and the excellent MAX Party!

Developer Point of View
Particularly interesting to me, in order of interest is Alchemy - C and C++ codes for Flash, Cocomo, ability to have P2P video in Flash, Flex 4 Gumbo and Server Side Actionscript, and Flash Catalyst (formly Thermo)

With Alchemy, it simply means the ceiling is now higher for us the developers. Anything is now possible now on the client side and developers will have to at least have an overview of how it works in order to be able to utilize the wide array of libraries existed nowadays and incorporate them in their client. Website owners should seriously look into this piece of technology to see how they can use Alchemy to create new experiences for their users. Using Alchemy, you can achieve things that are never possible in Flash (like the Quake demo in MAX ) and thus it also give rise to new business opportunities. I will be spending the next few weeks to dive deep into Alchemy and will post up some experiments I have here.

Cocomo is SaaS from a Social Networking point of view. Tied closely to Acrobat.com, it allows developers to tap into existing components in Acrobat.com, like video chat capability and real time file sharing, and use them in their own application. It is definitely a welcoming for us developers as it gives us another option to create RIA without installing our own infrastructure. 

Flex 4 , as most people might already know, will have better skinning workflow, better performance, separation between component business logic and UI elements, support of shapes and graphics in MXML (like degrafa). It also introduce a own new set of components extended from the FxComponent (like UIComponent in Flex 3), 2 way binding, and the feature that makes everyone claps - a “layer” property in the component that defines the depth rather than the childIndex! All these in a new MXML 2009 namespace ;)

And of course, Flash Catalyst (Fc), formerly Thermo, is also heavily showcased during the event. Fc allow designers to create their graphics in Photoshop or Illustrator, export them in a format FXG, and continue to work in Fc, and effectively saving the files as MXML into a Flex project! While I personally do not think Fc take off quickly as a tool of dictating the entire site UI (remember the Dreamweaver symdrome? ), but I do believe it will become real popular for developers in terms of component skinning. As Ryan Stewart demoed in MAX, with just a few click, it will skin a component like scrollbar automatically, which is a huge step from Flex 3. 

Community Manager Point of View

MAX provides a lot of opportunities for User group managers (UGM) to network with other User group managers and Adobe’s community managers . This time, Adobe launches Adobe Group, which FUG is part of it!. Flex Camp is also now officially Flash Camp. It is very encouraging that Adobe is pushing for the community than ever before, providing us the UGM with valuable resources and directly support. 

I also meet up with the UGM from Hong Kong, Taiwan and Seoul. Try to spot us in the photo below.

It is great when we start to see people from SEA and who knows, we might start seeing some asia speakers for MAX in the future!

Overall
Its been a great 3 days at MAX and an even better week in San Francisco. Now there is lots of new technologies to play, with the bar rise much higher than before! Work hard developers!

Lastly, not related to MAX, but hey I am on Seesmix!!!

Â

Oct 27

I am giving away 1 blue Seesmic tshirt. Its completely new and in mint condition. The reason I am giving away is because its too small for me, and too big for my wife. So I believe its better to spread the goodies rather than keep it for myself.

To participate, just reply to the video I posted below and say why you like to have it! Note that you have to collect from me in Singapore if you win though. The winner can get some Seesmic stickers from me too!

seesmic tshirt

Sep 04

The problem.

You are doing a small/proof of concept project. You want to have a centralized database, but do not want to hassle of creating another mySQL database on your live server. You know just need a simple datastore, but you do not want to write codes to read/write from an XML file. You need a flexible datastore that just works, you know you do not need much scalability for this simple application, or the overhead of Simpledb. You want it to be REST possible but installing phprestsql is too much of an overkill.

Stuck?

Enter Google SpreadSheet.

If the above is the problem you are facing, you might want to take a look at Google SpreadSheet. The first reaction might be “what?!?, I wrote 1000 lines stored procedure and you want to me to code with SpreadSheet??”. But if you are just doing a small application, something that just requires an online datastore, what is better than an API that lets you do queried search, allows you to do CRUD on your records, with a ready API for .NET, PHP, Java and it is hosted by Google?

Not Google Apps Engine.

Google SpreadSheets are essentially..spread sheets. SpreadSheets consist of Worksheets, and each worksheets consist of ROWS and COLUMNS. Effectively, each Worksheet is like a Table in your database. The first ROW of the Worksheet will be the column names. Take a look at the worksheet below.

google spreadsheet

Essential ,  username, gender, contact_no and gender will be the column name. Since Google SpreadSheet allow us to do queried search on the spreadsheets, we can think of username as the primary key and we can base the query on it. If you need more tables, simply create more worksheet. If you need another database, create another spreadsheet. Thus, we can use a Spreadsheet to simulate a database. In the nutshell:

Spreadsheet -> Database
Worksheet -> Tables in Database
1st Row in Worksheet -> Defines the column names
Subsequent Rows in Worksheet -> Defines the rows in tables.

Queries Search -> Select Statements
Add Rows -> Insert Statment
Delete Rows -> Delete Statement
Update Rows -> Update Statement




The Good

Google SpreadSheet, as what Google mentioned, has the following features:

  • Upload from and save to your desktop
  • Edit anytime, from anywhere
  • Pick who can access your documents
  • Share changes in real time
  • Files are stored securely online
  • It’s FREE
  • Essentially, it means that the hosted “database” will be free, secure, and you will not need to install any client application except for your browser to access it. You can even create it on an excel sheet first, and then upload it online and transform it into your database.

    You can access the spreadsheets via code by HTTP, as well as .NET, PHP, Java or Python API

    The Bad

    As this is not a real RDBMS, there is no real constrain. Unique keys has to be handled by code and constrains has to be verified at the code level. For simple applications like a simple Book-Ordering form, or Contact-Management form, this will work great. However, Google SpreadSheet will not be the way to go for larger CMS systems.

    On top of that, you can easily change a column name on Google Spreadsheet. The ease of change also increase the changes of the developer mistakenly changing the columns in the main spreadsheet and thus breaking the application.

    Security

    Google SpreadSheet is not shared by default, so only you can edit it. You can also share it to other users as Collaborator or Viewers. This also means that your ‘database’ can be shared with our users for collaboration, but you can limit them to View-only so they cannot mess up your application by accident.

    google spreadsheet

    API Website

    For documentation, code samples and how-to, visit http://code.google.com/apis/spreadsheets/overview.html

    Summary

    In short, Google SpreadSheet provides us with a simple and easy datastore for simple applications that needs a hosted database. Other formal alternatives includes Amazon’s SimpleDB, Google Apps Engine Datastore API, and Apache’s CouchDB. Which one do you prefer and which one do you think is the more scalable solution? Do chip in!

    Related Article: Top 10 Reasons to Avoid the SimpleDB Hype