Jul 31 2008

Livescribe Pulse Smartpen Review

When the iPhone first came out in the summer of 2007, I knew to wait at a minimum six months so as to give Apple enough time to work out all the kinks in the phone’s firmware. My wait paid of, especially since during that time the price of the iPhone dropped significantly. When the Livescribe Pulse Smartpen became widely available, I told myself that I would again wait at a minimum six months for all the kinks to be worked out, especially since I had never before heard of Livescribe. Unfortunately, when I saw a live demo at Target I broke down and shelled out for a 2GB Pulse on the spot. The Pulse lets you record the sounds and background noise around you as you jot notes down. What makes the Pulse so interesting is that you can play back the recording simply by clicking on the notebook where you had written. The pen will playback the audio recorded near the time when you wrote the area that you tapped. The Pulse integrates and plays back the written word with the spoken word.
Continue reading


Jul 21 2008

Code Rage 2.0 Wordle

I have been meaning to use Wordle with some of my own writing. Wordle creates word art given a RSS feed or a text sample that is almost like a stylized cliff notes or synopsis of the document it analyzed. I was able to create the following image with the text from Code Rage 2.0: Rants of Code and Other Essays. Enjoy.

Code RAge 2.0

You may find other Wordle renderings of Code Rage 2.0 here and here.

Technorati Tags: , , ,


Jul 18 2008

Code Rage 2.0

I have collected some of the most highly rated, informative, and controversial Juixe TechKnow articles and made then available as a PDF document. The collected works is entitled Code Rage 2.0: Rants of Code and Other Essays. Code Rage 2.0 is available on scribd.

Comments are always welcomed and appreciated. If you like to leave a comment please free to do so in the corresponding article.

Technorati Tags: , , , , , , , , , ,


Jul 14 2008

Test Drive Google App Engine

Google App Engine was released to a lot of fanfare. App Engine promised easy application deployment and management. App Engine is not so much a framework as it is an infrastructure power by Google. I have been looking for a simple development and deployment solution for micro-web applications so I gave Google App Engine a try.

My first App Engine application would be as simple as possible. I wanted to micro-web application like Tumblr or Twitter so that I could simple post quotes. Since the best way to learn is by example, I grabbed a sample Google App Engine project. The sample project I used as a basis was a mix of App Engine models and Django forms.

When working on a App Engine application, the first step is to define your models. The application I have in mind has one Quote model and I defined it as follows.

[source:python]
class Quote(db.Model):
# Should be required, should default to logged in user…
user = db.UserProperty(required=False)
quote = db.StringProperty(required=True)
source = db.StringProperty(required=True)
created = db.DateTimeProperty(auto_now_add=True)
modified = db.DateTimeProperty(auto_now=True)
[/source]

Google App Engine has its own query language commonly refereed as GQL. GQL is like SQL except I found its parser more strict and temperamental. You can use GQL to persist and retrieve instances of your model, for example for my model I used the following GQL query.

[source:python]
quotes = db.GqlQuery(‘SELECT * FROM Quote ORDER BY created DESC LIMIT 10’)
[/source]

One word of caution, be careful with the name of the Bigtble table you enter, the query language is case sensitive. If you use lowercase quote as the table name in your query, you will get an exception “No implementation for kind ‘quote’.” Basically you can mix case for sql key words such as select and from but not the table name or column names.

Another issue that new Google App Engine developers will deal with involve indexes. On a deployed system, you need to define and build indexes used by your queries. You will get NeedIndexError errors if you do not have the same exact index you query for. Indexes are defined in index.yaml and this need to match the select query you execute in db.GqlQuery. If they do not match, such as you have an order by modified and created descending but query for created ascending then you will get this error.

A second issue I encountered with indexes is that they need to be built and this can take anywhere from a few minutes to hours. If the index is in the process of being built, you will still get the NeedIndexError. A framework is not a rapid development framework if once you deploy an application you have to sit on your ass for a day while it builds shit. This development environment reminds me of the programming model of 1950 when coders turned in piles of whole punched cards to an operator and had to return two days later for the result.

Because of my issues with indexes and other issues with settings I quickly learned that the production environment does not mirror the development environment as much as I would have hoped.

It seems that at the time of this writing, you can only set the authentication options at creation time. I wanted to have only users from my domain login as I developed the app and then switch to the world at a later time but because of this hard coded limitation, it seems I cannot do that.

This experience has thought me that learning a new platform requires learning a whole new set of known issues and limitations, and to discover new ones in the process. Anyone eager to deploy a web application on a new framework is a masochist.

Technorati Tags: , , , , , ,


Jul 9 2008

Microsoft DreamSpark

Even thought I am a Windows user, I am no where near a Microsoft lackey but recently I learned that Microsoft is giving away a ton of professional grade software to students. Through the Microsoft DreamSpark program, students can get access to Visual Studio 2008 Professional, Windows Server 2003 Standard Edition, Microsoft Expression Studio, XNA Studio, XNA Creators Club, SQL Server 2005, as well as other free software such as their express edition software. That is well over $1,500 of free software. I am typically not a Microsoft fanboy but I do have to give credit to Microsoft for making its development tools free of charge to students across the world. Now I wish Adobe would do the same.

Technorati Tags: , , , , , , ,


Jul 7 2008

Edit Me

Just saw an interesting bit of JavaScript that allows anyone to edit the content of a web page from IE or FireFox. This is a JavaScript trick that runs on the client side and does not have any effects on the actual file on the server. With this you can change the text of a web page to your hearts content.

Once you visit a page you are interesting in modifying, enter the following JavaScript in the address or location bar all in one line.

javascript:document.body.contentEditable=’true’;document.designMode=’on’; void 0

To edit this page, just click here.

Technorati Tags: , , ,