| James's profileJames Zhuo 卓宇翔PhotosBlogLists | Help |
|
March 01 The Crisis of Credit VisualizedFebruary 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 motionOctober 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 FearGreat 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 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 ... |
|
|