Older blog entries for huge (starting at number 18)

17 Dec 2003 (updated 1 Feb 2006 at 17:53 UTC) »

Weird: On Monday, I posted my entry on Meerkat. Then, at the end of the day, it seems that the source code was not available so Meerkat was a lot less interesting. So I tried to update my diary entry, and do a preview. It take so long to preview that I finally gave up. Then, today, I log in to post a comment on one interesting thing I saw in the newspaper (see below) and when I log in, I was redirected on the entry I was editing with all my modifications available !! Groovy !!! But ... when I posted the edited comment, it appears as a new comment ! Is there a bug ?

info vs. man: No opinion. I use lots of man because I'm used to and don't use info because I don't know the keystrokes :-). Uh, and I like the search in man because you can search on the entire man page at a time. Other than that, I don't know enough man and info to have an opinion on them.

17 Dec 2003 (updated 1 Feb 2006 at 17:55 UTC) »

Well, Meerkat seems to have lots of problems. Too bad :(

Rulez !!! I think I just found the RSS reader I was waiting for : Web-based, open-source, perl based if possible (don't know PHP, Python or Ruby) and ... read the news by date : last posted articles/blog entries. This was the killer feat I couldn't find on most of the RSS reader and which (IMHO) is the one reason you would use a RSS reader : to save time.

I was thinking about this : why most of RSS readers/aggregators don't allow you to read the feeds by date ? And I think this is because some RSS version (0.9 and 0.91 and maybe 1.0) don't have date/time on entries. And so, the only way to have date/time on entries when you don't have them is to poll the RSS frequently (< each hour) and fetch the new entries on a database, add the date/time of the fetch and sort them after that. Which means a pretty heavy system. I eventually came to the conclusion that I need to build one by scratch with all this overweight. Now I think I will try Meerkat before ...

I don't have a O'Reilly Account now so I don't know if I will create one or install a copy of Meerkat on my PC but I think I will use it.

Does someone has feedback on Meerkat to give me ?

sh : je te plains si tu n'as que ça à faire de lurker ici pour poster un message juste quand je reviens ici ... :-)

So, it's the week-end here in France.

This is very cool because I just solved my bug on my HTML/CSV/Excel library on IIS/ASP at work. The aim of this library is to output 2-dimensions data in HTML file (table), CSV file or Excel file (with the Spreadsheet::WriteExcel library). You feed in the formats of the columns (name of the column, size, data type for Excel pretty formatting, etc) and the data and automagically you got the file with the right format. This is useful when you have a listing to display to the user on a Website and want her/him to be able to download it in CSV and/or Excel. You just have to build the format, write the subroutine which will output the data and plug it in the library, and voila.

The library is able to write the data to a file. It can also send the file to the user on a website with Content-Disposition: attachment; filename= ... It can handle CGI (with "print" statement to output the header and then the content) or Win32::ASP (with $Response -> AddHeader ).

Here was the bug:

Everything was working fine on CGI/Apache/Linux. CSV and HTML were OK for ASP/IIS/Windows. But it was not working for Excel files on ASP. No error message, just an empty file. I guess it was a binary/text problem because CSV/HTML worked and a quick test show me that local file writing on the server worked.

Here is the solution:

I began to search on the Perl Script Introduction and see this useful code snippet on BinaryWrite. Not bad but this is useful when you had your data in a scalar. Unfortunaly, Spreadsheet::WriteExcel just write to files or "-" to output on STDOUT. The "new" method help had some useful information on CGI interfacing or mod_perl but nothing on ASP. But the answer was in "filehandle.pl", in the example 4. In this example, you can map a scalar to a file handle.

So, if I can get the output of Spreadsheet::WriteExcel in a string, turn binary mode on and output it to the browser, I'm in. Should work, in theory.

First step:

Install IO::Scalar:

ppm
install IO-Stringy
quit
Code :
use IO::Scalar;
use Win32::OLE::Variant;
...
$Response -> {ContentType} = 'application/vnd.ms-excel';
$Response -> AddHeader ('Content-Disposition', "attachment; filename=\"$filename\"");
(Hint : don't use "$Response -> AddHeader ('Content-Type')" because it will add the header, not overload the "text/html" Content-Type)

...

tie *XLS, 'IO::Scalar', \$xls_str;
$workbook  = Spreadsheet::WriteExcel -> new (\*XLS);
my $variant = Win32::OLE::Variant->new( VT_UI1, $xls_str);
$main::Response->BinaryWrite($variant);
So now, weeeeeeeeeeeek-end ...

Uh.

I just remembered my password.

Yes, 3 years after my last post ...

Weird ...

10 Jan 2001 (updated 1 Feb 2006 at 18:05 UTC) »

This little toys are, humm, cute. I need one.

9 Jan 2001 (updated 9 Jan 2001 at 15:03 UTC) »

Well. Back to work after some holidays. Will speak about it another day. I wrote this diary entry mostly for mathieu : Tu as jusqu'à 3 mois avant la fin de ton report pour demander un report pour CDI, donc jusqu'en maî 2001.

A propos, si quelqu'un à un truc pour changer de CDI et garder son report ...

Work : I am working on a Rich Media generation tool, an admin (a gfx co-worker who has clue) will produce some templates (SMIL and HTML -- in fact XHTML) and some keys/values stuff with the keys in the templates, and the luser will have a dynamic HTML form to fill. This will be a simple app for the moment, all the keys will be replaced by their value, and whereas the SMIL and XHTML are XML-based, I will not use DOM facilities, only the text struture.

In fact, I will do a very incremental process, because :

  1. with a prototype and lots of releases, management will see that I am "working".
  2. I setup a CVS and will use it.
  3. I looked at XP and there seems to be good things in it, for example incremental process.

Too bad, I have no time to put a Junit test framework in place, so I will go live for this time.

I wrote the specs for the app yesterday, today I will do some HTML form workflow and UML diags of the app.

21 Dec 2000 (updated 1 Feb 2006 at 18:05 UTC) »

Ok. (Yes, real-time diary :p)

"La Défense" isn't cool. You can't open windows in these fscking buildings, and the offices are way too warm (I'm in T-shirt.).

And hey ... all the J2EE stuff are way too cool to build and to work with, all the classes, API and docs, but the deployement is a night-mare. I need to update my TODO list : find a solution, guy, trick ... cause I DON'T want to make deployement of my code. And I don't have time to. Need to speak about this to my boss ...

21 Dec 2000 (updated 1 Feb 2006 at 18:07 UTC) »

Ok.

A long time since I wrote an entry.

It's 02:25 PM here, just have a good lunch and drink with coworkers. I'm following a training for the week at "La Défense" in Paris. This is a sort of "place" with lots of buildings, and the weird thing is that there is people who are *living* here. It is not that bad to work, you come at 09:00 AM and you leave at 07:00 PM and voilà.

Yesterday, I bought a funny little white hat for my best friend, she'll be so cute with that :)

The training stuff is about java/JSP/Servlet/JavaBean/EJB ... (sorry you Sun people, I forgot the "TM" stuff) and it is not that bad to have a training, books are good to learn but sometimes training makes things go faster and easier to understand.

Weather is so hot in Paris for a December, there is no snow :( (unlike all the people on their diary : "Hey, we've got 40cm here", I hate you men :pp)

In fact I'm very tired.

Ok, not a lot of things to say and I have a bunch of people to certify.

26 Sep 2000 (updated 1 Feb 2006 at 18:09 UTC) »

My NetApp report isn't finished. Will try to finish it this afternoon.

9 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!