Monthly Archives: January 2009

Dallas Open Social Dev Garage

This Saturday, I attended the OpenSocial Dev Garage event. It was hosted by Chris St. John. The presentation from the workshop is here.

Currently, the leader in Social Networking in USA is Facebook. OpenSocial API is a consortium formed by Orkut (acquired by Google), hi5, MySpace, Friendster, etc. to compete with Facebook.

During the workshop, we used Orkut as our development environment.

Since Orkut is a part of Google, Google account (gmail) works on Orkut as well. After signing in, I searched on Google for “orkut sandbox signup”. This lets me use the Orkut dev Sandbox for development.

We examined the Namez Application. Chris also provided us with two example applications: helloworld, its XML file – hellworld.xml, and hellofriend, its XML file hellofriend.xml If you want to repeat those exercises, you will need to put these files on your own Internet server.

AJAX is the foundation for OpenSocial. If you look at the page source, you will see a lot of Javascript. It also heavily uses the DOM model. Developing Opensocial app requires extensive tweaking of the Javascript with the DOM elements. Passing and maintaining application session from and to the gateway and your application is a bit of challenge.

For good programmers, this model is very flexible as objects can be manipulated programmatically. However, for someone who is a light-programmer, short on time, and just wanting to write test apps, the learning curve can be very steep. Opensocial provides no FBML counterparts as of yet.

OpenSocial is rapidly evolving. Thus, 0.7 or earlier tutorials do not work with the current implementations (0.8). So, a lot of documentations and tutorials on the Internet are out-fo-date.

The tutorial for Opensocial (0.8) can be found here.

How to incorporate in Texas

How to incorporate in Texas?

This week, I have reinstated my company in the State of Texas. Back in 1999, I filed to incorporate as a school project. Now, I would like to share with people on how to incorporate in Texas.

Having a company helps to separate the personal finance from business finance, especially useful if you have a consulting company. Furthermore, the corporate entity is separate from your personal tax, allowing you to deduct business expenses that would not be possible in personal tax return.

The process is as follows:

  1. File for incorporation, you can find templates forms (from Anthony Mancuso’s “How to Form Your Own Texas Corporation)
    • The Cover Letter to the Texas Secretary of State
    • Article of Incorporation (, p2)
    • $300 Filing fee.
    • A business address, Post Office Box will not be accepted
    • Make sure your company has a suffix of Corp,
      Inc., or Corporation. Without it, the Texas SOS will not accept your filing.
  2. If Texas SOS accepts your filing, you will be soon getting a confirmation letter. (p1, p2)
  3. Next, you will need to contact IRS, You can apply online, by mail, by phone, or fax
  4. Regularly file for Tax Return, both Texas State Franchise (corporate) Tax & Public Information Release forms (with Texas Comptroller) and Federal Tax.
  5. Texas No Tax due – 163 (alternatively, you can file the long-form, if your company makes money and need to pay tax)
  6. Public Information Release Report – 102
  7. IRS (Federal tax) – 1120

More useful sites:

  1. FAQ
  2. Texas SOS Filing fees, in case you want LLP, LLC, etc.
  3. Web access to Texas SOS filing
Images:

A day trip to CoHabitat Updowntown – Dallas

This week, I visited “CoHabitat – Uptown Dallas”. CoHabitat (on twitter & main site) is an organic meeting place where start-up companies and project groups economically shares office space & common facilities. It is an excellent networking venue for entrepreneurs and technology-minded people and facilitates mutual beneficial interactions, such as exchanging and refining ideas, sharing resources, as well as developing friendship.

Having right relationships helps fostering success in the current fast pace world. Conceiving a brilliant idea is often the very first step. To grow and implement it, a positive environment will be essentially where a team of dedicated and talented people can work productively in modern comfort. CoHabitat is just that right place for start-ups. It is conveniently located near the heart of Dallas’ cultural district.

Uptown Dallas has a lot to offer. From the 2nd floor porch of CoHabitat, I could see the Dallas Art District, e.g. the Art Museums, the Symphony Hall, and slews of interesting places to visit. Within the walking distance of the CoHabitat, there are many fine eateries. Blake Burris (who started the CoHabitat and is also a veteran tri-athlete) took me to a nice pub (Thomas Avenue Beverage Company) for lunch. It was only a five minutes walk away. After the lunch, we also got cups of refreshing coffee from crookedtree, which is right behind CoHabitat. That coffee suited my palate very well, tasted much better than the expensive yet boring airport coffee.

My past project work experience has shown me the value in teamwork and getting inputs from friends and colleagues. When meeting a difficult technical issue, one could either solve it by him-or-herself, thorough searching the Internet, which is a daunting place due to excess of information. Alternatively, one can consult friends and colleagues.

When I was at CoHabitat and talking to several new friends, I quickly got tips ranging from what is the best framework for building Social Network Application to how much support comes from Facebook and OpenSocial organization. On Tuesday, Erik Bahr, Facebook advertising sales, also dropped by the house and gave us some pep talk. This coming Saturday morning, Chris St. John will be host an OpenSocial Dev Garage.

If you are looking a workplace that’s conducive to creativity and entrepreneurship, CoHabitat is a place that’s worth a close look.

Here are some of my previous paintings

After getting my aunt Wei Hua’s paintings, I decided to post my paintings online as well.
Also, my father Johnson has an online photo album.

What am I reading now?

To get myself familiar with Web 2.0 technology, I have been reading several technical books in the few days. The books include:

  1. Zend Framework in Action (Cover image) by Rob Allen.
  2. Beginning Rails (Cover Image) by Jeffrey Allan
  3. FBML Essentials (Cover image) by Jesse Stay

All of these are good books. Based on reading as well as my first hand development experience (I wrote a little test application using PHP Zend Framework in conjunction with Facebook Connect), I feel that Ruby offers a much more rapid environment for writing web applications. Zend Framework still follows the traditional mindset and it lacks a set of RAD generation tools. On the other hand, Rails use “script/generate (model, view, and scaffold)”, which really streamlines the development process by automatically generating reusable skeleton code. This is very nice. Of course, I only started learning Ruby only three days. There are still lots of Ruby features as well as shortcoming, which I am not aware of. 

PHP lies in the traditional C/Javascript model. PHP claims to be object oriented. However, it is missing a crucial OO feature – there is no method overload. For example, when I wrote a model class that inherits from the Zend_Db_Table, it will not let me overload the constructor. You probably asks why I want to do that. Well, the model class maps to a table in the database. Sometimes, it is convenient to initialize the object with some parameter. But, PHP will not let me overload the constructor, causing me to write ManagerClass to get around that. In effect, causing ugly and unmanageable code. Furthermore, PHP does not let you specify what is the type of the return object from a method. In effect, the code completion (inside the Eclipse/Zend IDE) becomes unless. Although, there is a way to get around that, by initialize an object with a default object type. But, it is just not clean. 

PHP is a simple language, but it is wholly lacking in term of type-casting management. Maybe, it should be consider as a feature for simple website. But, when I want to develop a software framework using PHP, it fails pretty miserably.