James's profileJames Zhuo 卓宇翔PhotosBlogLists Tools Help

Blog


    March 01

    The Crisis of Credit Visualized

    http://vimeo.com/3261363
      
    The Crisis of Credit Visualized from Jonathan Jarvis on Vimeo.

    Cloud Computing Round Table

    http://www.ustream.tv/recorded/1194900
      Free TV Show from Ustream
    February 17

    Sydney like you've never seen it before (Very nice video)

    http://vimeo.com/1953467
     
    The North Wind Blew South from Keith Loutit on Vimeo.
    and here's an article on it
    December 22

    Digital Camera Reviews

    Bought a new camera today Canon IXUS 90 IS.

    Thought I should share some sites that I've found useful.
    http://www.dpreview.com/ - camera review
    http://www.choice.com.au/ - camera review (paid)

    I've bought the camera at http://www.digitalcamerawarehouse.com.au. It's probably the cheapest you can get anywhere in Oz.
    December 18

    Full-text search on Google App Engine (what's wrong with search.SearchableModel)



    We've been using google app engine for the last couple of months. You've probably read everywhere that there are major inadequacies with the current state of google app engine, many of its limitations are annoyingly prohibitive and have resulted in many wasted hours. I am talking about file limit, file size limit, no join like in SQL, no background processes, CPU limitations etc etc. But none of these has been a stumbling block for us until we hit full-text search. This issue will likely force us off google app engine.

    You probably want to tell me that there's search.SearchableModel, and that's exactly the topic I want to address here.

    Our application worked fine in our development environment,  it even deployed and worked correctly on appspot with the full text search functionality. The problem with search.SearchableModel didn't become apparent until we started redeploying new indexes. These redeployments triggered rebuilding of indexes.  Our indexes would be stucked in building mode for days, eventually erroring out. Initially, we thought this is just a small problem that Google will eventually fix but we were met with very little support or response.

    A more detailed look and a few experimentation yield the following - which i want to share here as a warning for anyone considering app engine as a platform. Let me demonstrate with an example.

    Say we want to search for all jobs related to "Marketing", and we want to limit this search to only jobs from a specific company, and to return the results in descending date, this would require the following index declaration.

    - kind: Job
      properties:
      - name: __searchable_text_index
      - name: company
      - name: created_at
        direction: desc

    Note that in this example there's only one search term, namely "Marketing". If we want to search for "Marketing Manager" (a two-word search term), the following index would be required.

    - kind: Job
      properties:
      - name: __searchable_text_index
      - name: __searchable_text_index
      - name: company
      - name: created_at
        direction: desc

    After repeat testing, the conclusion that I drew eventually is that in order to support n-word search term, an index would need to be created specifically with n properties for the index field (__searchable_text_index) to cater for the possibility of someone trying to search with n-words. I've confirmed this pattern through experimentation. This means a separate index will need to be created to support 1-word, 2-word, 3-word .... n-word search terms. This is horribly unscalable, and it is really the root of the indexing errors we've been experiencing, Google calls it an exploding index, and if you read the documentation carefully you'll start to understand why it would be exploding.

    Just a note, based on Google's documentation (in the same link above), this may not be a problem for you if you don't need to apply additional filters (e.g. company, created_at) on the full-text search query. I am guessing that's why site like vorby.com is coping ok, but I haven't really verified this since it doesn't really do much for us.

    I am actively trying to find a work around atm, e.g. by removing indexes that will create a exploding number of index permutations. But it's looking likely that we'll have to move off. (Fortunately we've planned for this a bit by making use of django)

    Chat to me if you want, I would love to have a discussion on it, james__z on skype






    December 01

    Python - what's meaning of a single underscore in front of a variable name?

    This is another one of those python quirks. See the original post here.

    The only Python thing that you need to know is that object members prefixed with a single underscore (_likeThis) are 'private by convention'. That is to say - there is nothing to stop you accessing or modifying these members, but the onus is on you to know what you are doing.

    Members prefixed with a double underscore (__likeThis) really are private. You cannot access or modify these members through the normal mechanisms. (There are still ways of getting at them, but you really better know what you are doing.)


    October 22

    A Short love story in stop motion

      
    A SHORT LOVE STORY IN STOP MOTION from Carlos Lascano on Vimeo.
    October 20

    Why you should vote for Obama ....

    I don't think I can put it any better than Colin Powell. This man has some real substance I must say. He's also probably the first leader to publicly condemn the wrongful association of Muslim and Terrorists, suggesting that this would only serve to further segregate American society and the world at large.

    http://www.msnbc.msn.com/id/22425001/vp/27265490#27265490


    PS: How could America contemplate voting for McCain given his choice of running mate? McCain's choice of Sarah Palin clearly shows his lack of judgement.


    October 03

    Onestop comparison for all CTP Greenslip (Australia only)

    This should be pretty handy if you are looking for compulsory third party insurance for your car in Australia - http://prices.maa.nsw.gov.au/index.html I must say it works much better than I had expected it to.





    September 22

    What is short selling? Does the ban affect your trading?

    The banning of short selling around the globe is all over the news. But I have not found a single article that even attempted to explain what short selling is and how the ban affects the ordinary mum and pop investors in their everyday trading.

    The short answer is that it doesn't affect the ordinary mum and pop investors, you can still do your everyday trading. This is a regulatory measure aimed solely at big investment funds to help curb the speculative nature of the practice.

    So what is short selling? In an ordinary trade, you will buy before you can sell, short selling allows you to sell before you buy. This is kind of strange and most people has to wonder how this happens or why this practice is even allowed.

    HOW SHORT SELLING IS TRANSACTED
    I've extracted the following from an wikipedia article which explains the how:
    "Short selling is a form of speculation that allows a trader to sell securities that he does not own ....  In order to make the initial sale, the standard method is to "borrow" securities from a current shareholder, typically a bank or prime broker, agreeing to return them on demand by the lender. The seller delivers these borrowed shares to the buyer, a third party. The seller/borrower is generally required to advance the worth of the shares to the lender, who is then able to earn interest on this amount (a partial "rebate" may be returned to the borrower). When the seller wants to "unwind" the position, he buys back the shares in the market and returns them to the lender. This short/borrow system ensures the trader has shares to deliver to his buyer, while the lender earns interest on a position that he was not actively trading."

    WHY SHORT SELLING IS ALLOWED
    I don't think I could articulate a better argument for short selling than the following articles.
    1. ASIC caught short on using regulatory power (read this one)
    2. A step too far





    August 19

    The Dynamics of Change and Fear


     
    Great talk for entrepreneurs.

    On a more personal front. I used to go through emotional ups and downs a lot more. In retrospect, this was probably because of fears, fear that while others make money in a full-time job to pay off their house, that I would come out of it with nothing. These self-doubts can sometimes kill one's entrepreneurial spirit, I am just glad that I no longer seem to suffer from these mental struggles.

    Python Decorators

    Using python decorators you can easy inject behaviours through declaration.
    A good example of how this might be used in an web application is as follows

    @authenticated
    def home(request):
      """ a function to handle web request for the home page """
      .... code to handle web request ....

    @authenticated injects authentication functionality through a decorator implemented
    as either a Python decorator function or decorator class. Here's a great 3 part tutorial on
    python decorators http://muharem.wordpress.com/2006/10/18/3/

    One of those lovely things about python.

    August 18

    Python Humour (Sorry if you are not a programmer)

    This was some python geek's signature in a python mailing list that I've recently joined. I thought it's quite funny.

    "Thus spake the Lord: Thou shalt indent with four spaces. No more, no less. Four shall be the number of spaces thou shalt indent, and the number of thy indenting shall be four. Eight shalt thou not indent, nor either indent thou two, excepting that thou then proceed to four. Tabs are right out."

    July 31

    How's this for originality?

    http://i242.photobucket.com/albums/ff261/ikaika_34/check.jpg

    Lion Reunited with Man

    http://www.youtube.com/watch?v=adYbFQFXG0U
        


    July 05

    Al Gore being really Funny (TedTalk)

    This TedTalk is pretty average but Al Gore was being really funny.
       

    Now if you want an interesting TedTalk and has 20 minutes to spare now, try "Classical Music with Shining Eyes" by Benjamin Zander

       

    June 11

    Glassdoor.com is turning companies inside out

    Glassdoor.com is a really cool site. If you are like me and constantly try to understand how companies and businesses work. Glassdoor enables (ex)employees to reveal a different side of every company. These reviews are subject to individual opinions and experiences but taken together they are a great insight into a company and its culture. For example, Google has been seen as this great company to work for that does great things, but perhaps they are more like the next Microsoft than most people think, here's a few extracts

    “If you enjoy your individuality and time alone, Google is not the place for you (keep in mind I’m not an engineer). Google pushes a highly "googley" atmosphere, which is something akin to what the Brady Bunch would be like if they lived in communist Russia. ... People are encouraged to have googley attitudes, wear plastic smiles, and not to question the infallible nature of the executive management group. Marathon hours are the standard because, after all, employees are practically encouraged to bring a cot and sleep there…barracks coming soon (really?! no, not really). If you like feeling awkward during forced group activity, Google is your haven. ... if you don't participate you become labeled as "ungoogley." Once deemed “ungoogley”, you're practically viewed as a rotten apple that threatens to spoil the bunch.”

    “Real life at Google has NOTHING to do with what you read in the papers. Management is mostly useless and doesn't know how to manage projects, let alone people. Folks like Marissa Mayer (who appears on every news magazine of the world) have 200+ people reporting to them. As direct reports. Also when you are not kissing your way up, you not only have no job progression or promotions, but you also will get ousted at some point. No matter if you are good or bad. In fact, most of the super intelligent people at Google are bitching because they are put on dumb jumps which makes them feel undervalued and miserable all the time.”

    See for yourself here.

    PS: tradevibes.com is another great site, a new startup trying to be wikipedia but for information related to startup companies, they seem to be attracting enough people to their site to get the whole movement going. This is another 1 dollar bet for me and Michael. I think they might just make it, though they do have a formidable competitor - crunchbase.

    April 29

    Would you buy Google shares? What about Apple and Amazon?

    Everything about Google looks so promising, bar the following Google sued over 'unwanted ads', or more specifically the fact that their revenue relies solely on online Advertising which is unreliable and potentially a bottomless pit hole. Perhaps I am overly concerned since Google's revenue has been steadily increasing despite these lawsuits. But instinctively I see no substance in Google's online advertisements. I've asked many around me and none of them pay any attention to Google's text based ads, their acquisition of DoubleClick is probably a good sign that they've realised this. Personally I am much more inclined to click on ads with pictures or Flash similar to TV ads and even then I might click on at most 3 ads every year (yes I can count the number of times I've clicked).

    What's most promising about Google for me is their push into software as a service (Saas). I can see Google becoming a leading enterprise software maker in the not too distant future. In fact I would argue that they already are, Gmail is the proof. But there are also Google doc, Google site (wiki), Google reader, Google calendar and let's not forget their newly launched App Engine service. We are boot-strapping our startup operation using all of these Google technologies and we see absolutely no reason to use anyone else. In a sense we are at the bleeding edge of using all these technologies and we see many others following swiftly in the same direction. This is really the root of my optimism about Google.

    Google may face competitions from Microsoft in all of these areas, but I just can't see Microsoft transitioning from their existing business model to the new cheap, on-demand, commodity based, enterprise, web solutions model. It's the culture of these companies that ultimately dictate what they become and I think Google's culture is much more well-suited to the new economy built around the web.

    Having said all of these, is $552.12 USD at a P/E of 38.81 a good buy given the current state of the US economy? Or would you buy Apple at a similar P/E, an equally promising company with arguably less risk and more prospects for growth? Or Amazon with a P/E of almost 70, again very promising with the release of Amazon Kindle and Amazon web services. I think in the long term all these companies will be good buys, for me it's just a matter of what price to buy into them. If you've any valuation model to share with me, I would love to see it.

    JZ
    April 21

    DHH Talk - Startup School 2008

    http://www.justin.tv/hackertv/97862/DHH_Talk__Startup_School_2008

    This is definitely one of the better presentations that I've seen from DHH.
    He sounded a lot more matured and his arrogance seemed to have subsided.
    But great advices on how to build a startup. I think many internet entrepreneurs
    or indeed any other entrepreneurs would really appreciated this information.
    DHH was just being honest and trying to help, which is really good to see :)

    Great video!

    April 18

    You don't need a Mac Book air to fit your laptop inside an envelope

    I was just chatting to my friend Michael about how the MacBook Air fits into an envelope. So I thought I would try it with my MacBook pro. Voila, IT FITS!!! hahahaha, well that just kills Apple's MacBook Air promotion ...