Thursday, January 27, 2011

OpenOffice 3.3

OpenOffice 3.3 has finally arrived.

Not Oracle OpenOffice (the former StarOffice), not LibreOffice (the true Oracle-free open source spin off of OpenOffice), but good old / plain old OpenOffice from openoffice.org

Installing as I type this...

Wednesday, January 26, 2011

Power of XSLT

Just recently we changed the ERP system in the company I work for. Amongst other (more important) things the structure and format of product quotations has changed significantly.

The good news however was, that we finally had an XML export of those quotes.

It only took my 30 minutes to create an XSLT Template that would not only convert the XML to a really readable form (in HTML) but also add nifty features like totals per product type etc etc.

Quite frankly, it took me about 7 minutes to create the pure formatting XSLT and the remaining 23 minutes to figure out how to do sums in XSLT.

So, the two things I learned from this little exercise:

1. How to format a number using XSLT:

Use the format-number function as in:

<xsl:value-of select="format-number(amount, '#.00')"/>


2. How to add (sum) values (node-sets to be precise)

You have to use the sum function as in:

<xsl:value-of select="format-number(sum(//lineItem[@isSupportLine='true']/price), '#.00')"/>

For me this very line shows the power of XSLT:

It is adding all values of the "price" element of all "lineItems" that have an attribute "isSupportLine='true'".
In other words:  build the sum of the price of all support lines in the quote.

Or in SQL: select sum(price) from lineitems where isSupportLine="true"

Friday, January 21, 2011

On podcasts - When, Where and How?

I'm starting a mini-series here where I jot down some ideas and observations on podcasts.
I'm not a podcast producer, but I do listen to some. I'd say 10+ hours a week.
So this will be entirely from a consumer/listener perspective... my consumer/listener perspective.

Here we go:

When, Where and How?
I listen to podcasts
  • in the car
  • sometimes on the train / subway
  • on the treadmill in the gym
Interestingly, I don't listen to podcasts when on the stationary bike at home... (this is when I watch TV shows like Sopranos, etc etc).

My "listening span" is everything from 10 minutes to 4 hours in a row.

Recently I also found myself going back to reading on the train / subway instead of listening to podcasts. Or let's say the ratio reading / listening shifted back to 70/30 from (10/90).

One of the reasons is, that while listening to podcasts I start reading emails on my mobile or playing Bejeweled on the iPod...because I just cannot sit and only listen. Talk about ADHD :-)
Driving the car, or exercising is seemingly enough activity.

Also, going back from listening to reading is somehow odd: take the distractions on the train... just looking up when someone takes the seat next to you. Add to that the interruption when changing trains; all this does not really allow for a smooth reading experience, whereas they are no problem when listening to a podcast... Still, I seem to prefer reading.

So, lesson #1: As your podcast listener, you do not have my undivided attention, well not all 100%. But a fair share. Structure your contant and pace around that.

Sunday, January 16, 2011

Sharing Thunderbird Address Books Between Computers with Dropbox

In the previous post I described how to synchronize your Thunderbird signature (file) across computers using Dropbox.

This was a fairly easy task, because Thunderbird let's you specify the signature file as an absolute path, so you can put your signature anywhere on your computer.
For whatever reasons, the address book has to reside in your profile folder.
So if you want to synchronize Thunderbird address books across computers using Dropbox, this is a bit more tricky.

First, we have to somehow have the address book file in the "My Dropbox" folder, and still in the profile folder.
Luckily, Windows XP (and later) do have links in the NTFS filesystem - contrary to what most people think/know.
Technically they are called NTFS junction points, but usually referred to as links.
You can create them with the FSUTIL utility.

So what we'll do is.
  1. Find the "master" address book
  2. move it to the Dropbox folder
  3. replace the original file in the profile folder with a link to the file in the Dropbox folder
  4. repeat step 3 for all computer.
So, assuming you already did register for Dropbox and install it, here are the details:
    1. In Thunderbird check the name of he address book you want to synchronize. In the Address Book window, select the address book of your choice and then properties. The only property there is the name.
    2. In the Config Editor, locate the file name for your address book. This can easily be done if you filter the view on "ldap_v2.servers.*.descr". This will list all the address book names you have, including the one we are looking for (from step #1).
    3. Find the id of your address book.
      It is is right behind "ldap_2.servers.".  Something like "pab" or "default".
    4. Once you have that identifier, you can get the file name from "ldap_2.servers.yourid.filename". It is most likely abook.mab. [1]
    5. Then locate your Thunderbird profile folder.
      This is (as a default) in the Thunderbird folder of your personal Application Data directory. The fastest way to get there is via Windows Start MenuRun → "%appdata%" (literally with the percent signs). Then go to Thunderbird, then Profiles and then pick the profile you want to modify (if you have more than one).
    6. Now find the file from step #4.
    7. Be sure to exit Thunderbird now, so that all files are closed and available to you.
    8. Move the file from step #6 to your "My Dropbox" folder (again, this can be easily opened by double clicking on your Dropbox icon in the task bar).
    9. Open a command line (StartRun → "cmd.exe" ) and change directory to your profile folder form step #5.
    10. Find the "My Dropbox" folder in your file system. It's quite close to the Application Data folder. Try something like a "dir %homepath%\abook.mab /S /B" to find the exact location of the file.
    11. Create the symbolic link with the following command:
      fsutil hardlink create abook.mab "..\..\..\..\My Documents\My Dropbox\abook.mab"
      Before you do this, you might want to check with dir, if the abook.mab file can really be found with the above path. Correct your path as appropriate. You can also use the absolute path from step #10.
    12. With a "dir abook.mab" verify that the "logical" file is back again with the correct size.
    13. Start Thunderbird and verify that your address book is available and correct.
    14. Go to computer #2 
    15. Repeat steps #1-12 as above, just do not copy the abook.mab (or whatever the name is) to the Dropbox folder. Only delete (or rename) it in the profile folder, before your create the link with fsutil.
    16. When you start Thunderbird you should now have all the addresses from computer #1 available.
    17. Repeat #15 for all remaining computers

    ONE BIG CAVEAT:
    I haven't been using this method for long, so I can't really say how stable this works, especially if there are "replication conflicts", i.e. when you update the file on both computers before Dropbox has a chance to synchronize. Should there arise major problems with my setup, I'll post them here.

    Comments section is of course open for your findings.

    --
    [1] in the following paragraphs I will - for brevity - only call it abook.mab; please substitute your file name as appropriate.

    Saturday, January 15, 2011

    Sharing Thunderbird Signature Between Computers with Dropbox

    Granted, having the signature file for your e-mail in sync between two or more computers is not amongst the top IT problem of the century.
    However, if you change your signature frequently (because you include some simple banner message or seasonal greetings, etc etc) it suddenly becomes important.

    In my case this is between my company laptop and my home desktop. Both have the same IMAPS access to our corporate mail server. But as IMAP and Thunderbird[1] go, you are in sync with your mailboxes, but not with all your other data, like address book and signature.

    Let's take a look at the signature first, since this is easier (from a Thunderbird perspective).

    First we need some file location that can always be accessed from all participating computers. Preferably not only online, but also when offline.

    Dropbox is the ideal solution for that: it synchronizes folders of your computer to the (cloud) storage of Dropbox. From and to multiple computers. That's the trick here.

    Let's for this use case here ignore all the photo album and public sharing or collaboration features dropbox offers. We just use it for file sync to the cloud (and back again).

    So obviously, you have to register for Dropbox and install the software on all participating computers.
    [waiting for you to do so ... ]

    The default folder is a newly created folder called "My Dropbox" in your home directory. This folder will be in sync across all computers, then.
    So let's put our signature file there:
    1. Start on the computer, where you have the most appropriate or up-to-date signature file.
    2. In Thunderbird go to your account settings (Tools >> Account Settings) and pick your account there.
    3. Check where you current signature file resides... 
    4. Go there in Windows Explorer and copy (or move) the file to your Dropbox folder.
      You can easily open your Dropbox folder with a double-click on the Dropbox icon in your status bar.
    5. Once the file is there, on the Account Settings page change your signature file to the new location. 
    6. And then - in Thunderbird - create a new email to check if it has been picked up correctly.
    7. Now the other computer. The signature file should already be in your Dropbox folder. If not, trouble-shoot that first.
    8. Once you find the file there, only change the location of the signature file in Thunderbird- as above - to the one in the Dropbox folder.
    9. Again, create a new email to verify.
    10. Repeat for all remaining computers...
    Now you can update your signature on any of those computers, and it will be picked up by the others.

    Neat, isn't it.
    And it didn't cost us a dime.

    I started this about 2 months ago and had to change my signature (a least) 3 times or more in the meantime. Works like a charme.

    The synchronization of the address book is a bit more complicated, and will be covered in a separate blogpost.

    --
    [1] and other IMAP clients

    Thursday, January 13, 2011

    X10 mini pro replaced

    As I reported, my son's Sony Ericsson X10 mini pro did not charge. The A1 shop accepted the complaint as a DoA and today we got the replacement device (was out of stock).
    Charges as expected.
    Insert SIM.
    Enter Google details.
    Sync.
    Back again.

    Nice....

    Monday, January 10, 2011

    Just a thought

    Would Facebook have as many daily views and time-spent-on-site if it were not for tabbed browsing?

    Judging from my own behavior and what I see from friends and co-workers, we usually have Facebook reside in one tab, which we jump to from time ti time. Only a few of them deliberately go to facebook.com ...

    Just a thought.

    Friday, January 07, 2011

    Android Honeycomb Showcased at Verizon's CES 2011 Keynote

    Not only is my question of yesterday's post answered - obviously Google chose Android Honeycomb for tablets - but I also think my next tablet will be an Androidish one:

    Thursday, January 06, 2011

    Google's reference gadgets

    With the Nexus One (by HTC) and the Nexus S (by Samsung) Google clearly wanted to publish a reference implementation and hardware for the respective Android versions.

    The same is true for the Cr-48 as a reference hardware for their Chrome OS netbook operating system. Or Browser... or whatever it is now.

    None of them is about about having a product out in the market, nor is their (main) purpose to have vanilla Google devices, which are not soiled by nasty vendor or operator code and customizations...

    No, it's about setting a standard.
    Having a reference.
    For all the manufacturers, vendors, operators, reviewers (and bloggers).

    I wonder when they will release such a reference device for tablets (with Android).
    Or will they ever?

    Currently it seems they haven't made up their mind about the tablet space... should it be Android (=tablet as a large phone, like Apple did) or should it be Chrome OS (=tablet as an even more reduced netbook, like everyone thought, before Apple did it the other way a year ago).

    I guess this years CES will show.

    Wednesday, January 05, 2011

    Thinkpad with more power

    So I finally got myself a new battery for my ThinkPad... Now I can work 3.5hrs again on battery instead of only 20 minutes.
    Life's good ;-)

    Should have done this earlier.

    Now if anyone wants to donate an SSD for my TP500 to replace the slow rotating disk, I'd be grateful... :-)

    Tuesday, January 04, 2011

    My Android Family

    So, now my whole family (sauf moi) now has Android phones:

    RelationModel
    wifeSamsung Galaxy S (i9000)
    sonSony Ericsson Xperia X10 mini pro
    daughterHTC Desire

    And myself still with the old Nokia E71... (not for long, I guess).

    So after a couple of days of use here's the quick breakdown:

    Galaxy S(Android 2.2) The largest of them...excellent display.
    Worst PC companion software (Kies). Updates only through the PC software.
    Xperia X10 mini pro(Android 2.1) Not really my kind of phone, mainly because it is too small.
    OK-ish PC-Software (Sony Ericsson PC Companion 2.0) installable from the phone.
    HTC Desire (Android 2.2) Best body/housing and general haptics. Also quite fast (to me it seems faster than the Galaxy). Also I prefer the mechanical 4 buttons over the soft buttons of the Galaxy.
    OK-ish PC-Software (HTC Sync)installable from the phone, but this does not really matter, because it updates over the air (!).

    My favourite: The HTC Desire .. can't see why, but it seems to beat the Galaxy S.

    Also the Xperia X10 did only last one and a half battery cycles. Simply does not charge ever since. Seems to be a bad contact in the USB/charging plug. I hope to be able to register this as a DoA. I'll be posting the results here.

    The activation experience was the same and excellent for all of them [1] - as long as you are not paranoid of Google. Just exporting the contacts with the good old Nokia PC Suite from their old Nokia phones, import the .csv file into their Google contacts, and have the phone sync. Done.Gmail is there, market place is there.  No fussing around with iTunes etc etc...

    I guess I should try the HTC Desire Z because of the physical QUERTY keyboard. But I have to test this first; I do have my doubts about Android with a physical keyboard... does not seem to fit (from my brief X10 mini pro experience). See how this measures against the near-perfect keyboard on the E71 (probably the best feature of the E71... along with the phone stability and battery lifetime).

    --
    [1] Well I can only guess for the Galaxy, because my wife activated and personalized it herself while she was on vacation during summer. I guess this is quite a good benchmark.

    Monday, January 03, 2011

    Sunday, January 02, 2011

    iPad/iPhone date dialog anomalies

    It is really odd how developers use the iOS datepicker[1]...

    The built-in calendar app - which has many other shortcomings  - only lets you enter the time in 5 minute increments. Which is - usually - OK, but when you want to enter e.g. the departure time of a plane or train, you might want to enter the exact time.


    On the other hand, there is Qando, a service (with an app) that lets you check the timetable of public transport in Vienna. Oddly enough, when I want to specify a (rough) time for departure (or arrival), it lets me pick the time in 1 minute increments... the one place where e.g. 15 min resolution would be fine....

    This really is annoying - it make the time selection (e.g. when you want to jump to 17:30 = 5.30pm)  a lot slower, because it makes you scroll through 30 values...

    Did you also notice that the datepicker is not correctly localized? Almost everything here is proper German ("Jän" = Jänner for January, "Di." for Dienstag = Tuesday), but it still quite prominently says "Today" instead of "Heute".

    --
    [1] the dialog/control which lets you enter date & time on your iPhone/iPad/iPod