Google Chrome installer failed to start

TL;DR Manually delete Chrome uninstaller left overs on Windows to get rid off "Google Chrome installer failed to start" error during reinstall.


Some time last week Google Chrome browser on all workstations (Win7 x64) I use got their preference files corrupted and as a result I lost all my bookmarks, extensions etc.

Internet paranoid as I am, first thing for me was to scan for viruses, and luckily did not find any (just some friendly AdWare my beloved Lenovo has preinstalled for me but that's another post). Just in case - I uninstalled Chrome and cleaned up registry using ccleaner before I do a clean install. One restart later, I was heading to with my ol'trusty Internet Explorer in order to download and run Chrome installer.

What happened next was beyond everything I was prepared for - Google Chrome was unable to install throwing a undescriptive message: "Installation failed. The Google Chrome installer failed to start.". Tried everything. Restarting, cleaning left over Chrome stuff manually from disk and registry, downloading and running alternate (offline) Google Chrome installer. No luck. Each time this irritating graphics slammed me:

The funny lol moment was reached when I googled for manual chrome uninstall:

First result, on Google support forum results in a - Page not available. *FACEPALM*

After hours of wasting my time googling I started considering a Windows re-install.
But at the end, digging through registry paid off. Found additional 'special' key which nobody mentioned nowhere for x64 os (Wow6432Node). After deleting it, I was finally able to reinstall Chrome.

First thing I did after I reinstalled it - I run ccleaner and - corrupted Chrome settings. Luckily I could repeat uninstall/reinstall procedure knowing what I was forced to learn. :)

Hope it will help somebody.

To fix "Chrome installer failed to start" issue, you have to manually delete Chrome uninstaller left overs:
1. Delete "%APPDATA%\Google" folder and all of it's contents
2. Delete following registry keys:

And the most important - for 64-bit Windows, delete also

3. If you by any chance use ccleaner or any similar utility for deleting your browser/system cache, and you update your browsers regularly - be 100% sure to always update the cleaning apps to newest versions to avoid corruption of your browsers configuration.

ZgPHP meetup conference 2013

On 14th of September (this Saturday) our friends from ZgPHP user group will held a second anniversary jubilee ZgPHP Meetup and a full blown one-day PHP conference. The conference will be held in Croatian chamber of commerce offices (HGK), Nova cesta 3-7 on the second floor (entrance is located on south side of the building, same entrance as Lidl). For further details check out the conference web site.

See you there!


Transformed elements rendering fonts poorly in chrome

For needs of our latest project we were making element that's resembles droplet which has some text in it. So of course we would make it without images, so to make droplet we made a square with 3 corners with border radius 50%, and rotated the element for 45 degrees, and then rotated text in opposite direction for again 45 degrees.

That works nicely, we can have box shadows, and background diagonal gradients, it looks nice, but for the problems in chrome, which renders fonts poorly? There is no one rule solution for this problem, the solution is not to rotate text element, chrome can’t handle it.

Workaround for this problem is to have two separate elements standing one on top of the other, so one can be rotated (gradient/droplet) and text element must not have transform rotate on it.


Trouble with z-indexing pseudo elements.

Pseudo elements are great little things, they can help you make nice little graphical feathers without writing extra markup, or they can provide description elements putting url(), attr(), counter() into content property.

But when making flags or some similar extra graphical feathers, pseudo class element seems to have larger z-index then his parent element, which defeats the purpose, so this is how you make it better :)

  1. Parent element must have z-index set.
  2. Pseudo patent element must not have defined z-index
  3. Pseudo element must have z-index set to negative value
#parent {
    position: relative;
    width: 200px;
    height: 200px;
    z-index: 1;
    background-color: blue;

#pseudo-parent {
    position: absolute;

#pseudo-parent:after {
    content: "";
    width: 100px;
    height: 100px;
    display: block;
    position: absolute;
    z-index: -1;
    background-color: red;

Upgrade to Apache 2.4 and AddOutputFilterByType issue

For quite some time now, we have been using Apache module mod_deflate to gzip some static content served by Apache automatically:

AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

If you upgraded from Apache 2.2 to 2.4, you will notice error in your apache log:
Invalid command 'AddOutputFilterByType', perhaps misspelled or defined by a module not included in the server configuration.

To fix this, enable mod_filter and restart Apache. mod_filter is required in 2.4, although in 2.2 was not the case.

Beware of max_input_vars php ini configuration option

If you are updating PHP on your production server, beware of relatively new max_input_vars php.ini directive which is now 1000 by default. That means if you have 1001 form field - only 1000 form fields will be submitted. Use of this directive mitigates the possibility of denial of service attacks which use hash collisions in connection with CVE-2011-4885.

From php changelog:

2012-01-03 : security / trunk - Added php-5.2-max-input-vars patch max_input_vars directive to prevent attacks based on hash collisions - CVE-2011-4885

Why we have so much form fields is a subject for different post. The main problem is that even php site says this update is available from PHP version 5.3.9. The fact is we have 5.3.2-1ubuntu4.14 and the update is there.

So... you know... beware. :)

Excel stopped calculating formulas – Earth coming to an end?

From early 60s to modern times, spreadsheet processors play important role in every man's day life which basic functionality is taken for granted.

In the accounting a "spread sheet" was and is a large sheet of paper with columns and rows that lays everything out about transactions for a business person to examine. An electronic spreadsheet organizes information into columns and rows. The data can then be "added up" by a formula to give a total or sum. The spreadsheet program summarizes information from many sources in one place and presents the information.
If you are wondering who are those two cool spreadsheet hipsters, check out A Brief History of Spreadsheets (here and here). Now, let's go back to 2012. Erm 2007.

Did your Excel (2007) stopped auto calculating your precious formulas out of the sudden and you are in a hurry to send cost estimates to your client? Just like mine did? Yes, that can be nasty. :)

  1. Click on the Formulas ribbon tab,
  2. then select Calculation Options,
  3. and then check if Automatic is on.

Simple eh? How did this switch off in first place? No idea. This applies to Excel 2007, dunno about 2012:

Alarm and Bluetooth icons in iOS

I was looking at the iPhone (iOS) top system bar and one thing was bothering me in particular, but I could not place my finger on it. Yesterday I figured it out. Alarm icon, and rarely, Bluetooth icon.

If we segment the top bar into three pieces (left, central, right) each of which has a particular info to convey, the structure is pretty clean. On the left there is info about connectivity, signal strength, wireless, 3G etc. Middle part is reserved for time, and on the right there is battery info.

The problem starts when additional icons show up, in particular Alarm and Bluetooth. The Bluetooth icon is an obvious candidate to be moved on the left side since all the connectivity is there. There is no reason to dislocate Bluetooth to the right.

Alarm icon has two problems.

First, an icon itself. Clock. Clock is a wrong communication on many levels. I can clearly remember few years ago when I first got iPhone that this icon meant nothing to me. I set the Alarm and had no idea a Clock icon means that I have an alarm setup. Throughout user interfaces of the world alarm was mostly represented by a ringing bell. This not only is a better visual communication but also is a logical translation of the ancient real-life alarms (church bells) into digital era.

Second problem is the position. When a clock icon appears next to battery icon, what does that mean? It means nothing, exactly. Alarm icon must be placed next to time, because they are both time related bits of information.

Additional Hate
While doing this I found out this little bit of not-so-perfect design. Three icons, each of them has different shade of grayish color. How did Steve miss that one out? Also, minute-hand is not centered. My OCD is kicking in now, I have to stop dissecting these icons.

Non-breaking white space Internet Explorer 8 JavaScript regexp bug (and how to fix it)

While developing jQuery plugin for upcoming bookmarking "Items in select boxes" plugin for our Vudu CMS

I wrote a simple regexp to strip few characters (pipe, minus, apostrof and white-space) that are added before the actual item.

 function cleanOptionText(txt)
 return txt.replace(/^[\s|'-]+/, '');

It worked just fine on FF9 and Chrome but in IE8 only the first pipe (|) was removed. After some debugging I discovered that I have both spaces and non-breaking spaces that should be removed and that in IE8 class shorthand \s (which should include all white space) doesn’t include non-breaking space.

Code for non-breaking space is 0xa0 (dec 160) so regexp should be updated as follows:

function cleanOptionText(txt)
return txt.replace(/^[\s\xA0|'-]+/, '');

Continue reading Non-breaking white space Internet Explorer 8 JavaScript regexp bug (and how to fix it)

Ubuntu Cloud Live on OpenStack published selection of the 10 Best Open-Source Products Of 2011. On 8th place, you can find OpenStack (an open-source cloud platform) for whom our dear coleague Ante Karamatić is leading Ubuntu Cloud Live project. We are looking forward to new interesting grounds cloud support will bring us in 2012.

Ante explained: "Ubuntu Cloud is a product. Ubuntu Live Cloud is a custom version of Ubuntu Cloud, customized to work without a disk. OpenStack is a major, if not essential, part of the Ubuntu Cloud."