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

    Tuesday, January 11, 2011

    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

    Sunday, December 19, 2010

    Saturday, December 18, 2010

    Reading 2.0

    The iPad and a couple of additional tools (not 100% related to it) changed my online reading habits a lot.

    Here's my "Reading 2.0" or rather: as of December 2010, it will probably evolve further:
    1. I have Google Reader as the central management point for the RSS feeds (blogs, news, ...)
    2. about 30% of those articles I read online while I'm in front of a PC.
    3. the rest I scan on my iPad using Reeder.
    4. Most of the interesting articles and postings I save for later reading with Read it later, also on the iPad with their app.
    5. Item with more "eternal" value might then get save to delicious, but that's only one or two a week.
    So basically I separated the consumption phase (step 4) above from the discovery phase (step 3 above).

    Sunday, December 12, 2010

    Samsung did well

    So, only 5 weeks after its "unbranded" arrival, the Android 2.2 update for the Samsung Galaxy S (i9000) is finally available for the A1 branded version. Quite frankly, not too bad, considering how long it takes Nokia to get the branded versions out.

    Then again, the Samsung Kies software is the worst PC Suite type of software I have ever encountered.

    Update went well without any errors; just that the home screen was reset to whatever A1 thinks it should be is not really nice, and that all apps/icons are now sorted alphabetically... hmpf... apart from that... fine.

    Saturday, December 11, 2010

    ATM design flaw

    I just noticed at a local ATM that there was a sign right next to the slot for the cash reading:
    Don't forget your money!

    Though it never happened to me personally, I do know some friends who actually forgot either their bank card or the money in the ATM. So the warning does make sense.

    However, isn't there a fundamental design flow in the user interface or process of an ATM when you have to remind the users of the very one thing they came here for in the first place ??

    Quite frankly, I'm not sure how to fix this, maybe glue the card to the money?

    Friday, December 10, 2010

    Singleton

    Oh, yes, faux singletons... haven't we all had them.

    via Geek&Poke

    Sunday, December 05, 2010

    The Case for Social Search

    An interesting and well written article in the NY Times about the owner of the online shop decormyeyes caught everyone's attention: the owner actually admits to willfully create negative ratings for his shop by actually giving crappy customer service... because this actually pushes him up in Google search results, due to the nature of the page rank algorithm. And thus the bad reputation actually brings him additional business.

    Why?
    Because everytime someone has a problem with him and posts this to a blog or a consumer feedback site like getsatisfaction.com there is a link to his site (with a mention of the product they purchased), and each of those links counts in the PageRank alogrithm, which is primarily based on the number of incoming links to a site. The more links point to your page, the more relevant this page is considered.
    Due to the large number of complaints, he actually made #1 for many of the goods he sold on his site.
    And shoppers searching for the item were likely to shop there, because it was #1 search result. Organic search result - that is - not a paid ad.

    No-one saw all the negative feedback, because Google does not show it (or actually know about it).
    However, if you do a search on the site's name you will also see a lot of complaints about decormyeyes on the first results page. So searching for the site/shop does work as expected.

    Odd that it took about 10 years for anyone to notice this flaw...

    The problem there is, that Google search results are not recursive... i.e. you do not see the results of a result.
    (Maybe this would actually fix the problem).

    Google is not to blame for this, and the PageRank algorithm is still fine. If Google were to implement some semantic magic in their algorithm that would treat a positive reference different from a negative reference, it would create an altogether different problem: for all the controversial topics (or persons) out in the world, you simply will always find negative and positive references, and in many cases the negative will outnumber the positive. The system would be gamed with as easily as the current.

    That's what Google said in reaction to this story:
    As it turns out, Google has a world-class sentiment analysis system (Large-Scale Sentiment Analysis for News and Blogs). But if we demoted web pages that have negative comments against them, you might not be able to find information about many elected officials, not to mention a lot of important but controversial concepts. So far we have not found an effective way to significantly improve search using sentiment analysis. Of course, we will continue trying.
    [...]
    Instead, in the last few days we developed an algorithmic solution which detects the merchant from the Times article along with hundreds of other merchants that, in our opinion, provide an extremely poor user experience. The algorithm we incorporated into our search rankings represents an initial solution to this issue, and Google users are now getting a better experience as a result.
    In other words, for the time being, Google will - on a very high level - curate the search results.


    What worries me (if only slightly) here is that Google will use "their opinion" to determine which merchants (in this case) to filter.

    Although I consider this is the right solution for now, it has two flaws:
    1. It can only work a posteriori,
      i.e. only after you find the next merchant (or content provider, or ...) who games the system like this, you can remove him from search results, but this means that they already did damage.
    2. This is the by-far #1 search engine - let's call them a monopoly for the sake of this argument - applying their opinion/judgement....worrisome, isn't it ?

    The solution:

    Take the opinion out of Google's hands. Crowd-source the opinion.

    Let the wisdom of crowds or rather the opinion of crowds do the work.

    Which crowd? My crowd of course. For me.
    Your crowd for you.

    In other words: Social Search

    So the decormyeyes incident - apart from being disgusting from a customer care perspective - can finally help make the case for social search.


    ---
    Did you notice that in this entire post I never linked to the actual site, just to avoid contributing to the problem ;-)