
This is a call to all IT operators around the world, there are basics things you can do to help users more satisfied.
I need to upload a branch of files (3326 files for 40MB in total) so that they can be available online. The only access i have been given is a FTP account. Doh !
It means that if i successfully login, the whole process will take about 1:15 (and that's the estimated remaining time at the time of writing after 21 files uploaded and about 5 minutes) to deal with the quantity of files (Size doesn't always matter).
If i had an SSH account, i would 'tgz' the file then 'scp' it on the machine for extraction. Total file size: 2.4MB (Those are just text files) total time estimated by myself, about 5 minutes in total. (By the way now, the estimated remaining time is 1h29, 28 files are already there !)
Anyway, maybe there are better clients than the one i use (i use the Nautilus stuff, since gFTP always break when you try to upload more than a couple hundred files at once), if you know any that works well on Linux let me know (and recursively).
Earlier i said "Successfully login", because for some reasons, sometimes IT-ops like to make your life a bit harder. I had a great "thomas.heute" username, my life was great, i could go on ftp://thomas.heute@foo.bar and copy/paste my stuff. Easy. Same for the password manager "Revelation" it could log me in directly. For no reason and no warning, my username suddenly changed to "thomas.heute@jboss.org". Not a big deal it i just have to type more letters, but now, if you try to go to ftp://thomas.heute@jboss.org@foo.bar several FTP clients i tried get confused. Again the fault can be put on the FTP clients, they should parse on the last '@' not the first.
Anyway with that change, i had to go back looking at the corresponding hexadecimal value for '@' which is '40' and now i can login with: ftp://thomas.heute%40jboss.org@foo.bar. Note that it would be the same for SSH access.
So 2 lessons to not piss your user base:
1) Give them a username that they can easily use, no '@', i don't see the point. If you need a context then delimate it with something safer like '_'.
2) Give them an access which is relevant with the usage they are doing of the server. FTP sucks at handling many files.
Now that i finished this blog entry, 63 files out of 3326 are uploaded the estimated remaining time is 3:11:42 and i have more to upload after that... I'm gonna try another client that maybe can handle the FTP connections in a better way
Friday, September 28, 2007
IT-ops, please make our lives *easier* not harder
Posted by
Thomas Heute
at
12:50 PM
4
comments
Thursday, September 27, 2007
TurboCharge your TurboCharger !

Today's marketing's word winner is... "TurboCharge". I faced several titles using this explicit image to promote a technology today.
So if you want to be 'in', don't forget to TurboCharge anything you want.
- Sun does it: TurboCharging your WebServices - SOAP/TCP Protocol
- IBM does it: Turbocharge Ruby on Rails with ActiveScaffold
- Kapow does it: Using Mashups to Turbocharge Your SOA Investment
- You can also Turbocharge Your Pages with AJAX, Dojo, and Struts ...
So what will you TurboCharge ?
Personally, I will TurboCharge your presentation layer with JBoss TurboPortalCharge, promised.
Posted by
Thomas Heute
at
1:57 AM
0
comments
Labels: Java
Icelandic music
The other one is probably less known, i'm talking about Sigur Ros, i went to see him based on a friend advice few years back at the great 9:30 club of Washington DC. Three anecdotes about him, first he plays guitar with an violin archer, second, he makes weird noise in his guitar mic, and third he made an album called "()" with titles "Untitled 1", "Untitled 2"... Great workaround against piracy ;)
Anyway, i'm trying to find the song i like the best, i would go for 'flugufrelsarinn' (I hope i spelled this right).
Come on Iceland, get us more talents like them ! And organize a big Java event so i can come visit you !
Posted by
Thomas Heute
at
12:18 AM
4
comments
Labels: Music
Wednesday, September 26, 2007
CakePHP: Day 3, the ugly
![]()
When it came the time to put the pages together, and as i already stressed out, i realized that there is no real templating mechanism and really only one part of the screen could be updated per request (unless you mix concerns). The ugly part comes when you need to start hacking around. Putting stuff in the so called pageController that is shared for the rendering of any page... The motivation was just to fill some dynamic data that you need on your front page.
Some CakePHP users where actually smarter than me and used CakePHP along with things like Joomla, actually there is even a bridge project called Jake, that i would look at before i do anything again.
The other ugliness was mostly related to the so called PHP objects, arrays of anything... You're never sure what is really expected since anything is accepted, so it's mostly a fun game of trying/testing. The time you save in some parts is easily lost in other parts :(
Posted by
Thomas Heute
at
11:57 PM
12
comments
Labels: Php
Monday, September 24, 2007
Free online music

Yesterday my brother sent me the link to Deezer, a website that streams the songs you want.Most common songs are available, and since it's a French website, many French songs are available. The service is completely legal and available all around the world. I wonder how they managed to do that with actually less limitations than Pandora that i cannot legally listen to from Switzerland.
The widget on the right side of this blog let's you export a player based on one of your playlists. It is also possible to embed a single-song player, really cool to blog about a song. I will probably blog my favorite songs on here.
Thank you Deezer ! You saved space on my hard drive :)
Posted by
Thomas Heute
at
8:25 PM
1 comments
Labels: Music, Technology
Sunday, September 23, 2007
Google API, stop lying to me ! Encoding hell...

You may have noticed if you use the Google services that they lie to us. Don't get me wrong the services are great and all, but they missed an elementary step.
Let's say i want to get the correctly formatted address for the Red Hat office in Switzerland, i would send a request such as: http://maps.google.com/maps/geo?q=neuchatel&output=xml&key=MYKEY
The first line says:
<?xml version="1.0" encoding="UTF-8"?>
It means that what Google is sending us is encoded according to the UTF-8 standard, so far so good.Well, unluckily the address i'm looking for contains one of those weird letter:
, if you use any parser that trust the first line of this XML it will very probably fail. (Note that Firefox doesn't seem to trust it and automagically find the correct encoding)So let's have a look at the hexadecimal string that Google sends us, for the world "Neuchâtel":
4E 65 75 63 68 E2 74 65 6CSince UTF-8 is compatible with ASCII encoding, all the letters but our weird letter are correct. Unfortunately for our so loved letter, it's encoded as "E2" which is incompatible with UTF-8. The correct encoding for
is "C3 A2", yes two bytes for a single letter, that's the trick of UTF-8 and some other encoding, it encodes letters on up to 4 bytes. Sending one byte when two are expected definitely breaks many parsers, tested on JBoss XB and the PHP XML Simple Parser.It does not only affect this service but also the Google Widget discovery service.
One solution is to encode it correctly to UTF-8 before you send it to your parser for parsing. It sucks if they decide to change the encoding to something else though.
One solution is to use a parser that doesn't care about what is said and try to do his best (a la Firefox), it's not the cleanest way though.
The latest is to let the Google team know, a solution we already tried. I hope they will read this blog and act accordingly.
Posted by
Thomas Heute
at
11:23 AM
2
comments
Thursday, September 20, 2007
Why should i ever contribute ? Just give me your stuff
Contributing to an open-source project is really often misunderstood. Most of the people i deal with have no clue why they should ever contribute and often think it's something for the others.
Attitude no 1 - "I love open-source, give me your free stuff"
Right, fair enough, when you do open source, you know this will happen, but don't beg for help, the guys who work owe you nothing.
Attitude no 2 - "I love open-source, give me your free stuff but sometimes i feel bad for those poor guys so i give away something i hacked one day."
Well, if it doesn't integrate well, doesn't have corresponding test cases, cannot be configured, it's possible that the guys who are supposed to integrate it will never find the time to integrate it.
Attitude no 3 - "I want to prove i'm good enough for a job, let's pick an an opensource project and contribute for real"
That's what i did, it's win-win, but the motivation won't stay for long so you'd better get hired quickly.
Attitude no 4 - "If i contribute my code, my competitor will have it, let's keep it secret"
Oh come on, there are probably lot of your code that is not your core business, sure if i was Google i wouldn't give away my parser and indexer tools. But i can opensource some tools i developed so that it's used by a much larger base, resulting in better tools (think bug reports).
Attitude no 5 - "I give away my code so that i don't have to maintain it across new product releases, if it's in the codebase it will stay"
Yeah ! That's how it works. With this attitude both sides have to win, the one who contribute his code and the one accepting it. Let's say you developed the integration of JBoss Portal with XYZ SSO framework, it's not your core business, give it to us, the testsuite will contain that integration, we will do the necessary updates if the API change... You just saved time and money, the project just gained new features.
Attitude no 6 - "I don't have time"
See the previous attitude, if you invest a bit of time to integrate well your piece of code in the project codebase, you won't have to maintain it ever again.
Attitude no 7 - "I'm a hippie, i contribute for a better life"
Cool :) I hope you will not get hired by Greenpeace to tie yourself on a road or bridge, we could need you.
Posted by
Thomas Heute
at
12:44 PM
12
comments
Labels: Java, OpenSource, Php
Wednesday, September 19, 2007
Blogger.com hickups

It's interesting to see how blogger hasn't really totally been integrated witht hte whole google platform, look at the Single-Sign-On, go to your blog it will show you as signed-off if your session expired, if you redirect to blogger it will finally sign you in based on your cookie and let you post... No fun.
Another hickup with blogger, something i just realized. It's very easy and convenient to add an image to any blog entry, Blogger let's you upload your images "somewhere" and you can post right away. The interesting thing is the procedure to post a profile image, look at the procedure. Yes you need to:
- Go to you blog
- Add a fake entry and upload an imange (remember i told you it was easy)
- Look at the generated HTML to find out the link to your image
- Copy and paste that link into your profile
- pfeww
It's funny how often we spend huge amount of time on things but stop right in front of a feature that is probably very often used. You would think that they can reuse all the work they did for uploading a file when you create a blog entry, but go figure...
So here is my post so that i can get the link to my uploaded picture ;) Sure i could not publish it but i wanted to rant a bit.
Posted by
Thomas Heute
at
8:18 AM
0
comments
Labels: Google
Tuesday, September 18, 2007
Homeopathy
Since i was doing allergy to the cats, and got an allergic rhinitis, Isabelle got us (us, because she had the same) some homeopathy medicine, it was our first time. The box says to take 5 pills a day 3 times a day, but the pharmacist who is an homeopathy specialists thinks that 3 pills whenever the symptoms happen is enough.
Of course the first reaction when nothing happens is to want to take more, maybe the whole tube at once, but i wanted to follow strictly the instructions of the pharmacist otherwise how could i tell if it works or not. Well, after few days, it was still not working but the good thing is that it tastes like candies so we kept eating them. So useless but so good.
Anyway, the real solution to the cat allergy was simply to ... give away the cats. 24 hours later i already feel much better and less tired.
I fed a charlatan again...
Posted by
Thomas Heute
at
10:30 PM
0
comments
Labels: Simple life
TSS vs InfoQ

I subscribed to TSS and InfoQ to read on news touching the world of Java. Surprisingly it seems that InfoQ isn't taking off much, at least the number of comments is very low compare to what's on TSS.
TSS sure exists for a much longer time, actually the guy behind infoQ (Floyd Marinescu) was the creator of TSS. But i don't think that's the only reason.
I feel like InfoQ takes more time to release news (See the announcement of JBoss EAP, 2 months after the official PR) but also seems to avoid the trap of doing wrong or biased announcements like it happened on TSS. At the end, i have the feeling that TSS is mostly looking for the scoop, the rumors that people are eager to read, while InfoQ seems to be looking for reliable information, sure it takes more time.
To me, TSS is the People magazine of Java while InfoQ is a more serious newspaper. Both are entertaining to read and are worth looking at. It's also fun to read at comments in TSS, it's always the same 10 people arguing about the same old things.
Posted by
Thomas Heute
at
10:01 PM
3
comments
Labels: Java
CakePHP: Day 2, the bad

Once you started to play with scaffolding and limited ORM, you want and need more. That's when you start to feel the limits of a framework like this or RoR or anything of that kind, it's good as long as you do what it is designed for. Among the problems i remember facing:
- For the ORM at some point you need to create weird object structures if you want to save an object and its relationships, something that is not documented by the way.
- For the view layer, it sucks really bad, unfortunately that's where PHP should be good at. You'll have a hard time passing parameters to the view, like if it shouldn't be created dynamically. It's fine as long as you have a single part of the UI which gets dynamic data at a time. My layout contains a menu where i want to specify on which page the user is, well it is not designed for, i cannot really pass information to the layout. Sure there are hacks but this is not something i want to do.
- Don't forget to use the POST method for your forms, or you end up with cryptic error message related to the session... Or how to loose several hours.
- I wish i remembered all the bumps that break the "build a website in a weekend" promise of RAD frameworks.
Posted by
Thomas Heute
at
9:29 PM
5
comments
Labels: Php
Tuesday, September 11, 2007
CakePHP: Day 1, the good

CakePHP separates the concerns following the well know MVC pattern. The Model can define validation constraints on the fields to make form validation easier. It's also mapped to a database (a cheap ORM mechanism) that can keep you away from writing SQL queries for simple things. It handles one-to-one, one-to-many and many-to-many (in a weird way) relationships, that's convenient.
The Controllers can interact each other by some kind of injection, that's convenient to separate the concerns between several controllers, the View gets data from the controller through a single array called 'data'. The view can be separated into elements, but i didn't find managing those components really simple (unless they are static of course) other parts of the view must be aware of those elements to pass them the correct data.
CakePHP also integrates some security framework that seems good enough for simple but common needs, that i could use for my pet project.
The scaffolding let you Create Read Update Delete "objects" very easily by creating the corresponding HTML forms, unfortunately i don't think it handles the relationships between tables (at least i didn't see that). Internationalization will be handled in the next release, i only tried the current stable release.
So with the scaffolding, the (simple) layout mechanism, basic ORM and security framework you can start coding really fast.
Posted by
Thomas Heute
at
8:50 PM
2
comments
Labels: Php
Monday, September 10, 2007
CakePHP + Google API + Geolocalization

This weekend, i was alone at home, it's really a first for a long time. So after coding in Java for many years, i decided to give to one of the 'new' PHP frameworks a try (I used PHP intensively a few years back and wrote that French book about it).
I didn't spend a long time to compare them, i have to admit, i mostly left my feeling pick one. So i went with CakePHP. Since i wanted more fun, i also used the Google Map API and REST services to verify addresses entered by a user and to show them maps. On top of that i also used GeoLiteCity to help localizing the visitors based on their IP address.
If you are not familiarized with CakePHP, they describe themselves as a rapid development framework for PHP. With all the promises of RAD frameworks, i was supposed to be able to finish a website in a weekend. Well that's not quite true, but i admit that i did quite a lot knowing that i started from scratch with CakePHP and spent too much time on the UI (despite buying a template).
I will come back on the 3 technologies separately, but as i'm finishing my weekend, i just wanted to leave a note and a small screenshot.
Posted by
Thomas Heute
at
12:15 AM
0
comments
Friday, September 07, 2007
Dilbert might join our team

So Dilbert seems to be proficient in Java. See today's story here. We might start chasing him, i just wonder how much money can a drawing ask.
In the race to hire him, Google will probably offer more than anyone else, but would he enjoy his work ? After all, i hope Dilbert will keep entertaining us and stop coding !
Posted by
Thomas Heute
at
5:34 PM
0
comments
Thursday, September 06, 2007
The new iPods

It was planned, an announced redesign of the iPod suite.
When i heard this, i was under the impression that my brand new iPod shuffle offered by my girlfriend would look like an object of the past (like when you see the former design). Fortunately it's the one that changed the less, only the colors have changed and i still like my now old blue one.
So what really changed is the iPod Nano, i'm sure Isabelle will think it's much cooler than the one i offered her last december... Not only it looked good, but it now includes video as well, i guess it explains the new format of the box, check it out. Last but not least they introduced the "iPod touch" a subset of the famous iPhone with no telephone capability but with a web-browser (through wifi) and the fun touch screen.
Plus while i was totally against this whole idea of buying stuff on iTunes that i cannot reuse legally on Linux (plus i need to turn to my windows box just for that), i felt in the trap... I feel a bit ashame.
Posted by
Thomas Heute
at
10:52 AM
2
comments
Labels: Technology
Cats allergies irony, or how to get killed by a sick leave

So before Isabelle (my girlfriend) decides to go for the long, expensive and time-consuming process of Immunotherapy (without even talking about the 50% success rate). We chose to try again, after all she had no problem for years so we though it worthed the try.
We found two brothers about 5 months old and not shy at all. We were not going for two but many people recommend to do so even more since we leave them alone during the day.
So after meeting a very sweet family who cared a lot about those kittens, we come back home with the two mini-tigers. The irony starts the same day, Isabelle is doing fine, but *I* start to get the allergy symptoms she told me about, *I* started to really understand what she felt when we had a cat in the past (and i felt nothing).
Today, i have to work from home, i started for the first time to use homeopathy, as planned it does nothing but it tastes like candy so i'm still taking them.
They might kill me today, and if they just make me really sick, i cannot even call work for sick leave or they would ask me to stay home, finishing me. Isn't it irony ?
NB: Just now they were able to switch on a robotic cat we left in a corner... So now i have three kittens, one being safe but noisy.
Posted by
Thomas Heute
at
8:44 AM
0
comments
Labels: Simple life
Sunday, September 02, 2007
NASDAQ: SUNW moves to JAVA and Sun tablets stay home

I won't do financial blogs, but this move from SUNW to JAVA trading symbol on the Nasdaq from Sun Microsystems is just too weird.
So i read Jonathan's Schwartz blog entry about it and the reason he gives is:
But there's no doubt in my mind more people know Java than Sun Microsystems. There's similarly no doubt they know Java more than nearly any other brand on the internet.
[...]
Ask a teenager if they know Java, and they'll point to their favorite mobile applications, the video uploader for their social network, or their game console.
Alright, so i didn't have a teenager around to ask unfortunately so i asked my girlfriend who's not in IT, sitting on the couch i abruptly asked her "Do you know what 'Sun Microsystems' is ?", her answer was, "Does it has anything to do with dishwashers ?". Yes Sun tablets are probably better known than the IT company for most people on this planet, but if you had to choose between a dishwasher and a Sparc working station, what would *you* chose ?
So now i asked her: "Do you know what 'Java' is ?", after few seconds of thinking she answers me, "That's the coffee cup thing on my computer, right ? It's used for games i believe".
My conclusion on this is that Jonathan Schartz was totally right, people *do* know Java better than Sun Microsystems, the issue i have now is that my girlfriend believes that i do games for living...
Posted by
Thomas Heute
at
3:19 PM
2
comments
Labels: Java
