Sunday, January 27, 2013

Did Facebook Replace Restaurant Homepages?

This stems from a couple of conversations that I had recently, about how restaurant homepages lack content.
Many of them at best have their contact details, but nothing else.

In one case the phone number was an image file, so I could not even copy-paste the phone number :(
(Or they are total flash-crap).

I don't want to single out anyone, just give examples here, that came up.
All of them, however, do have very active Facebook pages.

One reason I can think of is that Facebook has actually replaced those store / restaurant homepages. And there are good reasons for this

  • it comes with hosting / homepage / everything
  • it does have a simple content management system (if you really stretch the term) and you don't have to mess around with HTML/CSS or any of that
  • it comes with statistics
  • you can easily enter a conversation with your "visitors" (or friends or followers)
However, you still might consider having one of those half-empty pages (and domain) so that Google will still index you.
And: no, I could not find any of them on Google+ :(

Tuesday, January 08, 2013

Why, Flickr, Why ?

As much as I like the new flickr app for iPhone [1] and Android, I wonder, why they could not decide on one layout for the toolbar

The above is from iPhone, the lower is from Android.


Why, Flickr, why ?


--
[1] actually, I use it on my iPad, but there is no HD version yet, so I have to use the iPhone version... room for another rant :)

Thursday, December 27, 2012

HTC One S JB Test Upgrade

So, since I broke my original HTC One S about 6 weeks ago, I replaced it with a new one... the broken one (broken glass) to be sent in for repair  for one of the other family members later. Lazy as I am, I did not send it in yet, so I have 2 HTC One S right now.

Two days ago the Jelly Beans upgrade for HTC One S Worldwide/European versions has been released. But mine did not pick up. So I checked on the "old" one, and - voila - Jelly Beans is available for it.

Both phones have CID  HTC_102, (you can check with with the CID Getter app), a version that is listed to be ready for the update. Still only one found the update.
So I did some digging around and found that the "new" one has the older CPU (S3) whereas the broken/old one seems to be equipped with the newer S4 chip. So there most be some other parameters to identify the update
version/file. As the discussion on XDA says, the S3 update wont be out for another 2-3 weeks...

Annoying, but still good news... Because this actually means that I can test the JB upgrade on the broken/old/S4 model.

Download takes a while (612MB), but then it installs smoothly.

So I now have 2-3 weeks to play around with it, before my "real" phone gets the benefit of Jelly Beans.
I guess the broken one wont get repaired for another 3 weeks...


Monday, December 24, 2012

You're asking me, Google?

Have a smartphone or tablet? Get Chrome for Mobile
Oh c'mon, Google, you know anyway. Why are you asking me?
Especially since I'm using chrome on my Android as the default browser.

Saturday, December 22, 2012

Someone hacked my gmail

... or in any other way got access to it and sent (non critical) spam from it.

So first and foremost, if you got an unsolicited email from my gmail account this night, I do apologize. It probably only contains a link to a non existent document. If you can see any data / route / ip / trace in the email that could help me identify the source, kindly reply to me via this email.

I was under the impression that a) my google password is quite strong, and b) that I'm very selective with app or site I allow access to my gmail account.

The weird thing is the list of recipients they picked. It's a strange combination from people I've sent email to in the past, and people I follow on g+ (but did not send an email to).
They all exist in my gmail address book, and the only common denominator I found  so far is, that none of them have a phone number in the address book entry... apart from that I have to draw a blank.

I also found the original email (not only the non-delivery replies) in my sent folder, so I looks like the email has really been sent through my gmail account (and not only with my email in from/reply-to).

Of course in the meantime I not only changed my gmail password, I also reviewed the web-apps and services that have access to my gmail, and will go through the apps on my iPad and Android phone.

Again, sorry... If you have any data to help, just pass it on.


Saturday, December 08, 2012

Android Automatic WiFi Login

Most of the public and free (as in beer) Wifi spots force you to click on a freaking "Accept" button before you can use them.

In Vienna, for example, we have a free Wifi operator called "Freewave" who have quite acceptable coverage in and around restaurants, cafés, hotels, etc, etc. So I do have freewave wifi configured and "enabled" if you will in my Android phone.
Bad thing is, whenever I come close to a freewave hotspot, I have to click "accept" in order to get connectivity.
There is a freewave app for Android (and iOS), but it only helps you to locate the next hotspot, not to automatically sign in.

I used to have an app called "Wifi Browser Login" that would open a browser page, so I'd only need to accept without opening a browser first.
But this was still to cumbersome for me (talk about first world problems, eh).

What I had in mind was an app, that would detect that there was only a button to click (or sometimes a checkbox to select) and submit the HTML form. automatically

Just before I wanted to hack this myself I checked the play store and found  WiFi Web Login, which does exactly this.
Even more, you can record the sequence on your first "login", and it will automatically replay it, when you connect to this wifi hotspot.

Works like a charm on freewave.
Haven't tried it with a real username/password situation yet, because I don't have any such Wifis.

There's a 3 day trial, and the "full" or perpetual version is just 1.22 EUR. So go for it.

Loving it.

Friday, November 30, 2012

I Hate Apps That...

... are only a badly written container for HTML, without any proper error handling...


And btw: this is not Android specific...

Saturday, November 24, 2012

Second Screen - part II

While we are talking about Second Screen:

Google Glasses are the Second Screen to Life.

Really, I mean it. With all the consequences. Think about it.
I'm not even saying this is good.

Wednesday, November 21, 2012

Thoughts on Second Screen

With the ongoing success of tablets, media companies and many social platforms get all exited about the "Second Screen".
Second Screen is short hand for getting additional content on your tablet while watching TV. Sometimes it refers to the device itself, sometimes to certain apps on this device.

The quest for the perfect second screen app reminds me of the race for killer app in the early 2000s for the mobile phones. Everyone is jumping in and wants to define the second screen experience.

TV stations, networks and content owners/producers rush to the race in creating very narrow and limited second screen apps for certain programs, TV series', ... Just because they noticed the success of Twitter (and probably Facebook as well).

My 0.02$:

Yes, there is a (very positive) second screen trend right now... but it is defined by the users, not be the content providers. I don't see a lot of sense in creating separate apps per TV program, because that's not like we users behave.

When I watch TV (or a DVD, or streaming, for that matter) I do have my iPad on my lap (or next to me), and I spend quite some time with it: e.g. in IMDB, or Twitter, or Facebook, or Google+ (or my email).
Point is, it is somewhat, but not 100% related to the program I'm watching. I'd never open one specific app e.g. the Breaking Bad app just because I'm watching Breaking Bad...

I don't want to engage in anything (and most probably not the things, the network wants me to), I want to look up actors; or find some background information; or see where Downton Abbey exteriors where shot (link) and find that on Google maps; or have the twitter stream for the election night run by while I watch as Ohio is being called.

But that's my personal second screen usage or experience, not a pre-defined one.

Sunday, November 18, 2012

Social Bookmarking

Social bookmarking has changed a lot over the last couple of years.
What started with simple (and some say ugly) pure heading/URL lists, turned into magazine style full-color, hi-res, rich-media, insert-your-buzzword-here pages.

Observe - as an example - the change from he good old del.icio.us to Pocket or Flipboard.


I don't really won't to compare them with or against each other, because to me they define different categories or sub-categories of social bookmarking.

Here is how I use the various tools and platforms:

  • To publish or almost broadcast links, I use Facebook, Google+ or Twitter.
  • To publish for a certain interest group - kind of newsletter like - I still use delicious and have people subscribe to the tag via RSS.
  • To store for later reading, I use Pocket - especially because of the text-only view in Pocket, which make medium-size to long articles and posts really good to read on an iPad or phone.
  • To save or archive URLs, I use delicious, sort of my bookmark vault.

Thursday, November 08, 2012

ifttt to the rescue

Since my feed from flickr to Facebook has been broken for a while now (and I re-authorized flickr on facebook and v.v.) I decided to work around this with ifttt.

No, I'm not out of my breath, I'm just using if this then that

A simple but very convenient service, with rules of the nature
If (this) happens then trigger (that)
with predefined "channels" for this and that. E.g. flickr and Facebook.

So I created a rule
which takes every new picture I upload to flickr (with the tag #FB) and posts the URL to facebook
Bingo, it works again, and I can now control what is being posted to Facebook by adding or omitting the #FB tag.
Cool

You can slightly modify those rules, but you are bound to what ifttt offers. Pretty much actually.

Sort of competes with Yahoo Pipes in a way (if they were really still alive). Bit more powerful in some aspect, less powerful in others.

Monday, November 05, 2012

[revisited] Google's reference gadgets

Almost 2 years ago (Jan 2011) I was musing about Google's reference device strategy; see my post from then.

At that time Google had the Nexus One (by HTC) and the Nexus S (by Samsung)  devices out, they also released the Cr48 as a reference for their Chrome line.
And I was wondering
I wonder when they will release such a reference device for tablets (with Android).
Or will they ever?

Well, they did, didn't they.
Here's the full Nexus family of devices as of now;
  • a really cool smart-phone (Nexus 4)
  • a mid size tablet (Nexus 7), that I really long for
    and
  • a full tablet (Next 10)

So, they did it.
Thanks

Wednesday, October 31, 2012

No Jelly Beans yet

Ok, so it does not really look like October, does it ...

After the earlier report  about October, I was really ...optimistic 

IT conservations: Jelly Bean on its way: From The Verge : The Taiwan-based manufacturer also revealed that a Jelly Bean update for the HTC  One X  and  One S  will arrive in Oct...

Saturday, October 27, 2012

Maps mash up: Underground vs post office

The other day, when I had to post an important letter, I was wondering if there is any post office close to an underground station on my commute, and I could not come up with one. So - me being me after all - I decided to do some in-depth analysis on this. And learn Python along the way.

1.  The Idea
Get all the underground stations and post offices as geo coordinates, and find those closest to each other.


2. Getting the underground data
Easy, the geo data of all the public transport stations (or ony the underground stations) can be found easily, since the are part of the open government data, shared by the municipality of Vienna.

3. Going postal
Getting the post office data is rather challenging, because they are seemingly not considered to be public enough.

Still, this can be done; so first get a list of all the post offices in Vienna from post.at. Best with a little python script (my first!!) to parse it.
Get all those with a ZIP code starting with '1' into a CSV file including their full street address.

Then - thanks for the hint, martin - use the Yahoo! PlaceFinder API to convert those postal addresses to geo coordinates. Get an Appid for Yahoo!, if you don't yet have one.

Important trick here: Don't place everything into the q=... query string, but separate it into postal, city, street, etc. Like this
u = yahooURL+"?appid="+yahooAppidy
u += "&postal="+po.zip
u += "&city="+po.city
u += "&street="+quote_plus(unicodedata.normalize('NFKD', po.addr).encode('ascii','ignore'))
u += "&country=Austria"
From Y! we get some fine XML back and use XPath to access the geo coordinates

doc = ElementTree(file=urlopen(u))
lat = doc.findall('.//Result/latitude')[0].text
lon = doc.findall('.//Result/longitude')[0].text
So now we have the geo coordinates of all the underground stations and all the post offices.

4. Visualize & Verify the data
Let's again use Python to create a simple KML file to load the date acquired so far into Google Maps (or Google Earth). There's a Simple KML python library to do just that. Here's are the maps (post offices, underground stations)

5. Do the Geo Math
This is the tricky part. I decided to put all the data into a (relational) database, and since I have DB2 installed on my system, it was of course DB2. I did not use any geo/spatial extension, but just put the latitude and longitude into proper types. Then I created a user defined function (UDF) to do the geo math. Actually, for this purpose this could have been simpler, since one can disregard all spherical aspects and assume the surface (of the Earth in Vienna) to be flat.
With my newly created haversine function the query then looks like this:

select haversine(p.lat,p.lon, u.lat,u.lon) as distance, p.plz,p.street,p.lat,p.lon,u.station,u.lat,u.lon
from ubahn.post p, ubahn.stationen u
where haversine(p.lat,p.lon, u.lat,u.lon) <1
order by 1 asc
fetch first 20 rows only

I'm only interested in post offices that are maximum 1km (distance<1) from an underground, and I only want the closest 20 of those (first 20 rows only)

6. Create a map
Export those data into a CSV file, and run a pyhton script that creates the KML file for this, with the post office being a point, the distance being a line, and the underground again a point. Map can be found here.

Turns out, there are more pairs than I actually thought.

Sunday, October 21, 2012

Geo-Distance vlg Haversine as a DB2 UDF

In a hack I'm currently working on (to be published soon) I needed to calculate the distance between two locations (on the surface of our planet). Admittedly, those are close addresses (all in Vienna), so I could have assumed them all to be on a plane (not an airplane, a flat surface...), but I felt like some real math.

This is a workaround for all of you who do not have spatial extender available or installed.

To calculate the distance of two points on (a perfectly spherical earth) you apply the haversine formula.
This is the representation of it as a DB2 user defined function (UDF)


CREATE FUNCTION HAVERSINE( lat1 decimal(10,8), lon1 decimal(10,8), lat2 decimal(10,8), lon2 decimal(10,8))
RETURNS DECIMAL(15,8)
F1: BEGIN ATOMIC
declare dlat, dlon, a, d double;
set dlat = radians(lat2-lat1);
set dlon = radians(lon2-lon1);
set a = sin(dlat/2) * sin(dlat/2) + cos(radians(lat1)) * cos(radians(lat2)) * sin(dlon/2) * sin(dlon/2);
set d = 2*6367*asin(sqrt(a));
return d;
END

The two points are given in latitude and longitude (in degrees) as lat1/lon1 and lat2/lon2. It returns the distance in kilometers. If you want to change this, replace 6367 (which happens to be the Earth's radius im km in Vienna, for which I needed this) with your radius and units,e.g. 3956 if you want miles in London.
Check it simply at Wolfram Alpha with "earth radius in london".

I guess it is not perfect, but it does work well. I should probably make it DETERMINISTIC (because it is) to improve performance.
Go ahead, play around.

Monday, October 15, 2012

Something's odd here

In tablets we currently observe two business models:

The Apple model -  make money on the hardware, therefore lock users in,  and make sure that there's enough content available for iOS to do so

The Amazon model - get consumers to buy content and stuff from Amazon,  and make sure they have a device for this.

What is odd here,  is that the Apple model,  which depends on globally availability and distribution of a physical goods (the iPad) is more scalable than the distribution of purely electric or virtual goods (content) in the Amazon model, because Amazon is (still) limited by availability of said content in each country and has to negotiate it...

Sick.

Wednesday, October 10, 2012

Firefox 16 is out

... and fighting with he F1 addon (an addon to share pages via Facebook, Twitter, gmail)

Problem was that the tab-key stopped working... both in web-pages as well as in the awesome bar (to jump to the search inbox).
Google revealed bug 788050  with the following exchange:

Luckily, F1 has been replaced by the Firefox Share addon, which solves the tab-key problem, but does not have a share button/icon on the address bar... 

The worrisome part of it, is that the addon is from Mozilla Labs, and not some thirdparty script kiddie.

Tuesday, October 02, 2012

Jelly Bean on its way

From The Verge:
The Taiwan-based manufacturer also revealed that a Jelly Bean update for the HTC One X and One S will arrive in October
hell yeah...

Saturday, September 29, 2012

A New Baby - Raspberry Pi

Finally - thanks to Max, I got my new baby:

a Raspberry Pi.

What for, you ask?

Don't know yet... I'm thinking along the lines of

  • a thermostat - with some fancy features
  • a power meter - for some "private" smart metering
Any other ideas welcome.

Today I finally found the time to get the beast running: only needed an SD card (believe it or not, I could not find any SD card at home... probably because my Nikon uses CF). 

I also got myself a new Logitech wireless keyboard and mouse; the first time I'm using a wireless... but only because the Pi is next to the TV (via HDMI cable), and I don't want any more cables lying around.


Apache is running, the dhcp lease is permanent... cool times ahead.



Monday, September 24, 2012

Oh boy!

Last Friday, late  afternoon, just when we arrived at our b&b for our 2 days vacation in Styria, my beloved HTC One S went into a reboot loop. Meaning, it would power off, restart and right after the HTC logo reboot again, and again, and again, ... forever.
Didn't change when connected to power.
Didn't change when I let the battery run out (which was fairly fast and easy with this behaviour).
Nothing.
After about 2 hours I was not only really annoyed, but also quite allergic to the Quietly brilliant logo and sound.

So I finally managed to get into the bootloader or diagnostics menu (or whatever it is called). The one you get when you press volume-down while powering up. There I - after some playing around - decided to go for a factory reset.
This helped.

Bad thing is, I only had a 2 months old Backup I took with My Backup Pro. Not only that, I didn't actually have it, because it was on the memory of the phone I just wiped...
At this time, I really wished, the HTC One still had physical SD cards...

And this in the middle of nowhere. I only had an Edge connection from time to time.
Luckily the b&b had at least free Wifi, so I could re-install all my apps from Google Play.

From there it was easy: all contacts were synched with Google. Nothing to do there.
My emails, tasks, appointments are of course all "in the cloud" and/or on our corporate server(s), so once I logged into the respective app, it was done.
My photos/videos got periodically backed up to Dropbox with the automatic camera upload. Nothing lost there.
Most podcasts I had in Google Reader, and BeyondPod does sync with Google reader. Good.

The only real pain (apart from losing all my achievements in Temple Run) was to get the application settings back again. Still working on some of those.

Lesson learned: always do a backup and do it to an external medium or the cloud. Will set this up tomorrow.
Really.
I swear.