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

March 7, 2010

Xen 3.4.2 and Ubuntu 9.10 on a Pentium M machine…maybe another day

Filed under: OpenSource,Software — stephane @ 1:34 am

I wanted to recycle my old Dell D810 laptop (Pentium M 2GHZ, 2GB RAM, 80GB HD) that was sitting there doing nothing and install Xen on it so that I could have a server for development purposes as well as a media center. For some odd reasons I decided to install the latest Ubuntu 9.10 on it (making sure that it was actually working fine on the laptop)…and have a go at Xen 3.4.2… little did I know how much time I would spend on it. It wasn’t obviously the best match in all aspects.

For the details, I tried to use a vanilla kernel 2.6.31.12. I based the install from Brandon Turner blog entry (keep in mind a few things need to be adapted depending on your system, ). After many failed attempts due to bad grub2 configuration, I managed to load the kernel…a bit.. it crashes with:

Cannot access memory beyond end of bootstrap direct-map area, Unknown interrupt.

A little bit of googling direct me to a post in the xen-users mailing list:

No, it’ll be a 32-bit-specific issue though. I would recommend just running a 64-bit build of Xen, if the CPU supports 64-bit mode. It’ll be something to do with GRUB2 dumping the dom0 kernel and initrd higher in memory than GRUB1, past the end of where 32-bit Xen is set up to be able to access. Probably not a hard fix, although I have no GRUB2 installation to test with.

Ok, so..off we go, I’m downgrading grub2 and revert back to grub-legacy.

After a bit of fiddling, I manage to boot again only to be greeted by another giant stacktrace following:

BUG: unable to handle kernel paging request at c07ab790.

Obviously I can spend weeks on this, debugging and nagging xen-users, but I think I have played enough with patches and alternatives to figure out that best thing to do is to avoid that combination of Ubuntu 9.10 + Xen 3.4.2 on a Pentium M machine. I’ll see what VirtualBox looks like on 9.10 and then decides whether or not to try with an older distrib if it does not do the job.

Tags:

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 spotify-search.appspot.com.

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 activated..it 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.

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.

Tags:
Next Page »

Powered by WordPress