Stephane's thoughts corner…
Stephane Bailliez's thoughts on everything

Absolutely nothing is employed by my Male Impotence am Now Debt Relief Debt Relief i stayed with this issue for all his life?

Put simply, Debt Relief Consumer debt relief the response to it Best electronic cigarette online Njoy npro electronic cigarette Jeux de casino en ligne gratuit bonus casino is an unequivocal no. In right now community, with Generic Cialis Cialis generic uk a variety of Online debt consolidation loan Bad debt consolidation treatment methods readily available, no-one must ever before really Buy Viagra Generic Viagra feel that you have no solution for his Viagra Online Viagra Online or her unique particular sort of Erectile Buy Viagra Viagra online uk Dysfunction. In young gentlemen, it can sometimes be their Levitra 10mg Buy Levitra operation anxiety is so entrenched that Electronic cigarettes for weed Top rated electronic cigarettes even How does online blackjack make money Rigged online blackjack substantial dosage of Viagra, Cialis or Levitra Viagra Online Viagra

February 2, 2010

Search Spotify using Google App Engine and Python

Filed under: Cloud,Software — stephane @ 10:51 pm

Yesterday, Allan brought to my attention that Spotify is now available in France (which means that even if you’re not in France but do have a French issued credit card, you can pay for the premium service and benefit from ‘unlimited’ travel time). I was previously using this service in and out through the UK and really liked the ability to listen to mostly anything in a snap, no fancy social network feature and totally innovative UI. You play music, it streams and you forget it. It just works (TM).

While trying to figure out what was new in the Spotify catalog since last time, I realized that as a newcomer there seems to be absolutely no way to see what is available in the catalog without downloading the rich client. I found that fairly surprising as the content is nowhere to be seen on the website, no promotion, no teasing. You need to download the rich client. Period.

By accident I found the Metadata API (If you manage to find it by browsing their website, tell me where because it sure isn’t obvious). So I was just experimenting with Google App Engine.. that was the ideal tiny project to try the Python version. So here we go, there is a very simple interface available at

The Spotify Metadata API is extremely limited, so there is not that many possibilities to implement something advanced, but it was the ideal small project to get an idea of the Python version of Google App Engine. Barely a couple lines of code and it makes use of the memcached, urlfetch, the Django template engine and cElementTree. The CSS is based on the Yahoo! YUI one.

I’ll extend it in the next couple of days as soon as I have more time in my hands.

Note: Google App Engine seems to have some reliability issues as it has been throwing 500 errors all day across the planet including in the admin console, so do not be surprised if you get something like that when you use the service.

January 31, 2010

Google App Engine – A practical overview

Filed under: Cloud — stephane @ 5:31 pm

I have been having a more detailed look in the last couple of days at Google App Engine (it’s about time). The interest was more into figuring out practically how was the infrastructure and API like as well the potential paradigm shift one needed to get in order to take advantage of GAE and the supposed (mostly infinite) horizontal scalability. After all, it is an interesting offer, as it a web-hosting environment where you can get some things done to a reasonable level for free.. which you would not get yet using Amazon AWS (you’ll still need to pay for that constantly running EC2 instance).

I didn’t test yet all features of the API such as image transformation or XMPP, but focused mostly on the datastore. Luck or not the datastore seems to be plagued by latency issues. While you are supposed to deal with some degrees of failure when using cloud services, the current situation seems beyond normal and probably a bit challenging for real applications. Messages in the forums clearly indicate the status is worse than what the official status shows or we’re all unlucky. I’d be really curious to hear about production behaviors not too tainted by marketing pitch.

As of now, there is large amount of failures due to timeout, should it be when reading small or writing even the smallest entities. For writes, the Task Queue can help alleviate failure issues.Your mileage may vary, as the tasks are all URL based you will still need a bit more work than you would likely expect instead of just handling a simple datastore put in your code, but all in all the ‘retry until it’s ok’ implementation of the task queue can really be helpful. This is of course assuming you can live in most cases with delayed writes.

For read, this is a bit more problematic. Given the latency of the datastore for get and the failure rate, it does not seem doable to solely rely on it, even for the simplest personal CRUD application. Assuming you had just a todo list app, it would be kind of frustrating to save your entry about 10 times before it is saved and can be displayed in the list of entries. So no matter what, using the memcache API as much as possible seems to be a must, not for performance reason but simply because it is more reliable than the datastore. (one could argue this is a performance issue).

Despite these shortcomings, I’m favorably impressed with the Google AppEngine Java SDK, it works really well, the API is well done and is easy to use. Integration in Jetbrains IDEA 9.0 is pretty convenient.

Deployment is a breeze as well though it could do with a bit more polished error feedback, you can have a syntax error in your cron jobs which will go unnoticed in local deployment but upload to production will fail with a totally vague and irrelevant message. Also expect some large behavior differences however with the local datastore as it is much more flexible in term of what you can store. Typically, you can persist tens of thousand entities at once in local in a very fast put operation, but it is limited to 500 entities in production and the delay can be significant and will timeout. The infrastructure is not simulated either, so long running queries are not canceled in local like they tend to be in production. Overall while the local datastore is not exactly fast, the latency in production is at least an order of magnitude worse, so this something to get used to.

Bulk loading (or lack of that is) in the Java API is a bit of annoyance and you need to do it using the Python one.. which means you need to duplicate your models in both languages. It is manageable but not terribly attractive at the moment so I hope they will introduce it sooner rather than later.

That being said, I find myself more and more frustrated at the Java web framework landscape compared to the simplicity of doing it in Python. There sure is a lot of unnecessary complexity for simple things in the Java web environment those days. The thing that I still appreciate most compared to Python is the quality of the tools available for development and that as soon as you need to do something relatively complex, you will likely find a mostly solid existing solution for it.

November 5, 2009

Ubuntu 9.10 Server 64 bits in VMWare 7

Filed under: Software — stephane @ 9:39 am

This was not exactly a home run and while the install went smoothly – I was actually surprised to not have any questions during the install – the result left a bit to be desired. I realized something was wrong when I tried to have shared folders just didn’t show under /mnt/hgfs and vmware tools were supposedly installed correctly during the initial install…but it didn’t appear so.

So next step was to actually access the cdrom..which did not work, it was not mounted automatically and fstab ended up with 2 cdroms (not sure why) with /media/cdrom0 mapped to /dev/scd1 and /media/cdrom1 to /dev/scd0.

In addition, booting the instance, vmware complained about the floppy disk not accessible even though it was the usual default ‘autodetect’, and it seems to cascade into the entire disappearance of cdrom devices…oh well.

I kinda took a shot in the dark and modified fstab to keep only /media/cdrom0 mapped to /dev/scd0, manual mount..miracle I could see something.. then proceeded to reinstall vmware tools and I can now see shared folders… and all seems to be going well…for now.

November 4, 2009

Websites I Find Useful

Filed under: General — stephane @ 11:00 am

So I have been tagged by Ludovic, and while I’m no big fan of this chain exercise, I thought I could at least execute and try to find the websites I actually find useful, I thought that 5 was actually a bit trivial and would lead to mostly redundant listing between people, so I decided to go for 10. There is no specific order.

  • Google – because I use it for searching information constantly, as well as GMail, Documents, Maps and News on a daily basis
  • Flickr – A nice place to share photos but also to look for inspiration.
  • LinkedIn – I’m absolutely terrible at keeping contacts with people, LinkedIn changed this radically for me as it makes the contact information all accessible in one place with an incentive to update it.
  • TripIt – In the same area, a regular complaint from family and friends is to know where and when I’m going to some places, with TripIt, it made it substantially easier as it will broadcast the information automatically.
  • Amazon – Most of the books I buy are from this place.
  • Wetpixel – To keep in touch with what’s happening in underwater photography land
  • ScubaStore/DiveInn – I tend to buy most of my underwater gear online if I can. Fast and reliable service.
  • InfoQ – The portal I regularly visit to get some tech news update. Agile articles are a bit overwhelming in the last couple of years though.
  • Wikipedia – So convenient to read complete information about a topic in a digestible format.
  • dpreview – To keep an eye on photography-related news
  • TED – Because some things are worth spreading

I would have loved to have this from people from a much diverse background (ie non-technical), but the sinae qua non condition is that this person actually has a blog, so I do have to fallback to technical people on this one:
Emmanuel, Geir, Leo, Sylvain, Torsten

September 26, 2009

Hadoop World NYC

Filed under: Software — stephane @ 1:01 pm

I’m traveling to New York next week to catch up with friends and family and do a few other things. As Hadoop World NYC happened to be on Oct. 2nd, I’ll spend the day there to learn a thing or two and how people are using Hadoop. The sessions sure look interesting, my only regret is to not be able to attend the 3 tracks at once in the afternoon. :)

On a personal note, I owe a big thank you to Christophe Bisciglia from Cloudera.

« Previous PageNext Page »

Powered by WordPress