elmarschraml.com

Occasionally updated personal site and blog

Tag Archives: google

How to compete with Google in Search

To google something has become a verb. Google search is the overwhelmingly largest source of traffic for many sites. Google’s market share in most markets is higher than its competitors combined.
Google has brand identity, search quality, technological quality, and page speed down pat.

So how would you compete with Google search? (Not that google search is bad, but a little friendly competition is always a good thing, and it’s interesting from as a thought experiment).
Frontal assauls (doing the same thing as google, but trying to be better) like yahoo and MSN have hugely failed. In fact, dominant market positions are seldom eroded by frontat assaults, but rather by changes in market demand. The reason why Microsoft has lost so much influence to Apple is not that Macs have replaced windows (globally, Mac OS still has a tiny, if profitable, niche of the PC market), it’s that the market demand shifted so that the whole category of PCs became less relevant since the introduction of smartphones and tablets. Likewise, if ebay sales decline, it won’t be because somebody builds a better auction site (network effects are just too strong for that), but because somebody invents a better way to sell stuff than auctions (like the ability to sell used books back to amazon).

So what are Google’s weak points?
– google does not trust humans -> it cannot use e.g. a human-generated catalog
– google is the no.1 target for spammers, the same way windows is the no.1 target for malware -> a smaller rival might be unnoticed/not worthwhile for spammers, and therefor be able to offer better quality, at least for a while
– google sucks at / has no customer service. That is a good thing, cost-wise, but also keeps people away that require more hand-holding.
– google is run by engineers, so it under-values things like design, and other emotional, touchy-feely topics.
– google is huge, so serving small niches is not interesting.
– google does not understand multiple meanings of a word (for eample, “go” could mean the game, verb, or programming language) – although that is probably the kind of hard compsci problem that google is best at solving

Ideas for competition:
– give me LESS, not more, results (but probably not from a huge human-generated index – that idea failed with the first iteration of yahoo…). E.g. when searching for reviews, google gives me spam and shops (yuck) and reviews from the big newspapers, what I want is 5 blog posts from people like me who have bought and used it, or a link to a great site like kenrockwell or dpreview for cameras)
– serving a single, canonical result. A lot of times, when I search google, I’m looking for something specific – say, the download link for a certain program, or the website of a known organization. Google is pretty good at finding that, but also gives me a lot of results I do not want, which sometimes leads to unwanted results (for example, there were some cases where, due to clever SEO, people looking to download the VLC video player got sent to sites that charged for the download). Finding those canonical links would be labor-intensive, but maybe you could farm it out on the cheap on amazon’s mechanical turk?
– serve a niche very well (flight search or weather are separate category from general internet search, what else can be served by a non-general search site? (technorati for blogs failed…)
– do something sales/service-intensive, e.g. a service where you need to sign up local small businesses. Needs a large salesforce, and therefor large investment, but e.g. yelp has done that successfully.
– rank pages by reputation / social links. For example, when evaluating some product or technology, it would be great if, instead of wading through a sea of marketing drivel, I could get all the links posted by people who follow people who I also follow on twitter, or articles written by somebody whose writing I previously flattered or saved to instapaper. Sort of the holy grail of the internet, apart from being a massive privacy headache.
– better, complex tools for slicing and dicing data, not just finding facts (cf. Wolfram Alpha – which launched hugely mispositioned as a google search competitor, but is actually great at certain specialized tasks)

Advertisements

Don’t like Google’s redesign? Greasemonkey to the rescue

So Google redesigned their search homepage, to include a black highlight bar for their other service offerings on top of the page.

I think it looks pretty good, but my girlfriend, who is a more visual person than I am, and has better aesthetic sense too, absolutely hated the fact that she was greeted by an imposing, dark bar on top of every new browser window.

What’s a good boyfriend to do? Never one to turn down an opportunity for geekery, I installed Greasemonkey on Firefox, and whippe up a little script to set a different color.

Here’s the script, if you want it:

// ==UserScript==
// @name           google in farbe statt schwarz
// @namespace      https://elmar.wordpress.com
// @include        google*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
// ==/UserScript==

var lovelyPink = '#A167E4';
$("div #gbx4").css('background-color',lovelyPink);
$("div #gbx3").css('background-color',lovelyPink);

Eh, voila, here’s Google search in a lovely (?) pink:

Google search page with pink top bar

On a less playful note, this kind of thing is also useful to change color of admin interfaces depending on the server’s url. For example, when developing hybris-based online shops, I use a similar script to color the management console green on test servers, and red on production systems.

Jan 2011 GTUG Munich meeting

Last thursday saw the first GTUGMUC event of the year, thanks to the largesse of Google marketing once again held at the cafeteria of the local google offices, with pizza and drinks generously provided, and once again to a full house of several dozen developers crammed into the room.

First speaker was Robert “Sparky” Rhode, newly hired developer program engineer for Android. He showed a video, and simulator demo, of the new Android 3.0 Honeycomb. The emulator is still dog-slow when doing animations (although there might have been a hint or two about GPU acceleration being planned for that), but overall the new Android GUI was pretty impressive. Previously, Android always looked a little Linux-y to me, i.e. not bad, but not quite polished to the same level as, say, iOS. With Honeycomb, Android got a makeover in the looks department, and reaches almost ipad levels of design.

Interestingly, Honeycomb is 100% focused on tablets, and not intended for phones. Nothing is definite yet, but the 2.x line might be continued as a separate line for phones, with 3.x focused exclusively on tablets.

Sparky has not been with google for long, so there was little hard information, but it was nice to get to know the face of Android developer relations in Munich.

Next speaker was David Karam, a student at Munich’s technical university, presenting his work in the field of scientif computing. Basically, he took a genetic algorithm computing core, made it accessible over the network, made it possible to connect various computing nodes together in a cloud-like fashion, and topped it off with a web gui with lots of fancy graphs and statistics. Very impressive indeed, especially keeping in mind that he is not CS major. Would have liked the talk to go into more details of the how and why of the technical implementation.

Another non-google speaker Marcus Dapp from the Munich city government. He presented his open data / oven government initiative “Mogdi”. The first phase was an e-democracy competition, with people voting on ideas they want to see implemented. The current phase is a programming competition for the top ideas to be implemented, or any tech project based on the open government data made available by the city government. I’m happy to see my local government on the technological forefront again (after being one of the first government institituions to make the switch to Linux. Unfortunately, I probably won’t have time to participate in the contest, with the deadline set to the end of march. Details about the contest can be found at http://www.muenchen.de/mogdy

The final presentation was by Mike West, new google munich-based developer advocate for chrome. He started with a short, but very well-done overview of the new APIs available in Html5, and went on to cover details and current developments in Chrome, the Chrome webstore, and ChromeOS. Especially the ChromeOS part was fascinating – some might see it as a computer restricted to a full-screen browser, but it is more like a thin client for the cloud. The basic idea is that all your apps are on the web (or in the Chrome webstore), and all your data lives in the cloud, so PC is not really a personal computer any more, but rather a disposable appliance for accessing the apps and data on the web, with your profile and settings downloaded on demand to whatever computer you happen to use to log onto the net. A little like what Sun tried to do with their SunRay thin clients way back, or what a lot or corporations try to turn Windows PCs into, with profiles downloaded on login, and everything as locked-down as possible. Unlike that, it seems to actually work rather smoothly. Not sure if we’re yet at the point where I’d be willing to do without any desktop apps or local data, but definitely a concept to watch.

During the Q&A, I had to bring up the topic of Google’s decision to drop H.264 support from Chrome, of course. Mike stated that Google is putting significant resources behind its commitment to have an open, plugin- and patent-free video standard for the web, and patent-laden H.264 is not the way to go. According to the Chrome team, in the short run Flash is not going anywhere, and in the long run Html5 video encoced in WebM is the way to go. I would prefer to see greater adoption of Html5 video in the short run, even if its H.264, but I can understand the fear of having the world switch from Flash to plugin-free Html5 video, only to be stuck with patent royalties once H.264 is established, and the current royalty waver for free content distributors runs out.

Overall, another great GTUGMUC event, full of interesting people and exciting conversation.

Since attendance required agreeing to an NDA, I can’t put up any pictures of the event, but Nils has some on the GTUG’s picasa album at https://picasaweb.google.com/nhitze/GTUGMunchenGoogleTechnologyUserGroup

Notes from Google Developer Day 2010 in Munich

First of all, kudos to google for the flawless organization of a huge (1100 attendees), free event. It was great to have so many key people straight from the source in one place.

Here are my random notes of the event:

Opening keynote

Eric Tholomé: 2004 is the dividing line – Skype was the last app that mattered that was desktop- rather than web-based.

All the google presentations were very polished – in striking contrast to the crowded slides of TU München university.

Some impressive HTML5 demos (especially Canvas3D rendering) by Jochen Eisinger and Bernhard Bauer, software engineers with google Munich. New in Html5: device orientation – so you can query the position sensor of a smartphone. Nicely shown by video breaking up into falling tiles on a tilted mobile device.

Google App Engine hit 130000 applications, with over 5 billion pageviews per week.

Nice presentation idea: fullscreen image of wine and cheese as illustration for “2 good things that are even better together” (here, the topic was Google’s app engine and VMWare’s Spring Roo)

Spring Roo: Looks interesting, like somebody in the JEE world has Rails generator/rake envy.

Google’s internal motto: “Put mobile first”. Number of Android apps grew from 20k to 100k since February. Android is moving fast – there’s a whole presentation about changes and improvements in Android since the I/O conference, which was 4 whole months ago.

Nice debugging tool in Android: If your app crashes on any Android anywhere, you get to see the stracktrace.

API overview

Relevant talk from Google I/O: “How Google builds APIs”.

Coolness chart: SOAP -> REST -> REST with JSON

New: API console: monitor usage in your project, try out REST APIs, see usage vs. limits, get traffic reports

Google data protocol:new AtomPub-based standard for REST-like APIs in json

(Side note: Finally a conference that provides plenty of power outlets at the seats of the audience)

Google apps script: server-side javascript for accessing google APIs, does for google web apps what VBA did for Office

New in google maps: Static Maps: rather than populating a map with flags, which is slow for 500+ flags, prepare a map that is static, to ben included as a simple image tag -> “Programming knowledge from your community college course will serve you well here”.

Cool: Fusion tables: Upload geo data, analyze it, and visualize it on google maps layers

Geocoding API: Didn’t know about that one, allows you to enter an address, and get the latitude/longitude back. Basically a byproduct of what google maps does anyway, but might come in very useful when building geo apps on top of HTML5 geolocation.

Custom Search API: define your own search engine on top of google search, e.g. only search my own site or wikipedia, define synonyms (user searches for “mobile” -> also include results for “android”), boost results from certain sites etc. Looks cool, I might have to play with that.

Translate can also transliterate from one alphabet into another, how cool is that? And can even show virtual keyboards for all kinds of alphabet. E.g. when you’re targeting users from Russia, you can show them a Russian on-screen keyboard, so they can use keys for Russian characters even if they’re logged in from an internet cafe in Spain. I’m currently working on a web-based vocabulary trainer, this might save me a ton of work.

(Sidenote: one of the guys doing the API presentation just happens to run jsconf.eu, wow)

Social: Allows people to login to your site using their google account.

Charts: pass data as simple url params, get back a chart as url for an image tag, very simple.

Finally: news on googlecode.blogspot.com -> how come I did not yet have this in my RSS feeds?

Android UI

Firefox Pencil: free UI prototyping tool as firefox extension, google provides stencils for Android widgets for it. Cool, I was looking for something like that, but so far too cheap to shell out for Balsamiq mockups.

Google also provides an icon designer/ asset studio to allow non-designers to create icons: type some text, add borders,shadows, etc , and get back images in various resolutions. Seems very easy, very fast, and provides decent-looking graphics.

Reasons why Android supports trackballs: Allow users to operate their phones when wearing gloves (hmm…), and make it easy for people who are switching from non-touchscreen phones like Blackberries. My take on that: Where Apple creates a whole new world of completely new and different smartphone, Android wants to be a “smarter Dumbphone”.

App Engine for business

New features targeted at enterprise users: An SLA (three nines, i.e. 99.9%), paid support ($1000/month for developer support, with a guaranteed response time of 1 hour for operations support, and 8 hours for development issues), management console to administer policies, hosted SQL databases (I could not help a slightly condescending tone when talking about how some people might not want to use google’s fancy scalable NoSQL storage).

Will run not only Python and Java, but also any JVM-based language, including frameworks like Grails or Django.

Businesses will be able to setup their own domains for GAE-hosted apps, with users of GAE apps restricted to that Apps for business domain

Pricing will be $8 per user and month, capped at $1000 per app ( so I guess they don’t really expect much uptake amongst businesses that might have more than 125 users), instead of the pageview/CPU hours based pricing for non-business GAE. Apparently business customers were not comfortable dealing with prices measured in pageviews and CPU hours (but if you’re in charge of buying infrastructure, shouldn’t you be??)

New: code.google.com/qualify allows IT service providers to have their devlopers certified for developing GAE applications, to make it easier for enterprises to select partners to develop apps on GAE for them.

 

Sadly, I was still fighting a flu on the day of the event, so I had to call it a day after that, and missed other talks about e.g. BigData, predictions API and chrome developer tools. (Anybody knows if there is a site with videos of the talks, like there was for Google I/O?). I will definitely be back at next year’s Google developer day.