Sunday, July 02, 2017
Sunday, April 23, 2017
OnePlus One with Lineage OS
So, haven't posted here in a while... sorry 'bout that... Here's what happened most recently:
My Nexus 5X decided to get stuck in a bootloop (like most others in the world). Started with random reboots a couple of weeks ago, and then, one day after I upgraded to Android 7.1.2, on the way to a friend, it decided to no longer even go into the recovery mode. Totally offline.
Luckily, this very friend of mine, had a spare OnePlus One with CM on it, which I'm now the proud owner of. Since we went for a quick vacation in Lisbon just days after the bootloop incident, I decided just to move the most important data and apps on the OnePlus One (OPO from here-on) and properly set it up after the vacation.
That's what I did yesterday. Flash it with Lineage OS 14.1 and gApps. Right after the reboot it offered to re-installed apps (and quite a lot of settings) from the last backup of the Nexus 5X.
Since I had no recent backup (adb backup) of my Nexus 5X (I should have seen the crash coming, shouldn't I...) and I could not even get into recovery mode (to pull a new adb backup) that was the only thing I could rely on. LastPass again helped me to sign into those apps really fast, and a couple of hours later I was up and running with OPO+LIN14.1
The two most cumbersome steps on the 2 hop migration (there was the minimum install on CM two weeks ago) was my Banking app, since both times I had to call my bank to reset the default device for the mobile TAN security feature (should have known this yesterday, but then again, just a 2min call to the bank, even off-hours... real good customer service, I have to admit), and the RSA token app I have to use for authentication for my company (vmware); that needed re-initialisation with the help from the help desk as well.
So frist thing: have a backup of the new device ... CHECK.
And again: Thanks, Max, for the fast help with the OPO...
My Nexus 5X decided to get stuck in a bootloop (like most others in the world). Started with random reboots a couple of weeks ago, and then, one day after I upgraded to Android 7.1.2, on the way to a friend, it decided to no longer even go into the recovery mode. Totally offline.
Luckily, this very friend of mine, had a spare OnePlus One with CM on it, which I'm now the proud owner of. Since we went for a quick vacation in Lisbon just days after the bootloop incident, I decided just to move the most important data and apps on the OnePlus One (OPO from here-on) and properly set it up after the vacation.
That's what I did yesterday. Flash it with Lineage OS 14.1 and gApps. Right after the reboot it offered to re-installed apps (and quite a lot of settings) from the last backup of the Nexus 5X.
Since I had no recent backup (adb backup) of my Nexus 5X (I should have seen the crash coming, shouldn't I...) and I could not even get into recovery mode (to pull a new adb backup) that was the only thing I could rely on. LastPass again helped me to sign into those apps really fast, and a couple of hours later I was up and running with OPO+LIN14.1
The two most cumbersome steps on the 2 hop migration (there was the minimum install on CM two weeks ago) was my Banking app, since both times I had to call my bank to reset the default device for the mobile TAN security feature (should have known this yesterday, but then again, just a 2min call to the bank, even off-hours... real good customer service, I have to admit), and the RSA token app I have to use for authentication for my company (vmware); that needed re-initialisation with the help from the help desk as well.
So frist thing: have a backup of the new device ... CHECK.
And again: Thanks, Max, for the fast help with the OPO...
Friday, April 15, 2016
Even more speed, speed, speed
Just two weeks after I upgraded my DSL line to 100/20 Mbps, my employer was nice enough to move our mobiles to a new contract where we finally have LTE/4G included.116 M down/ 41 M up
Wow... that was from my Nexus 5 this afternoon in Vienna, i.e. I was not looking for an "empty" cell during off-peak hours... pretty good.
Sunday, April 10, 2016
Speed, speed, speed
After a chat with a friend (and former colleague of mine) I decided to trust my telco (A1 Telekom) to upgrade to a higher speed, though I only got 12 Mpbs down on my 16Mbps ADSL line because of the age-old copper lines.
I called them, they checked the line and told me that they could guarantee 92Mbps if I go for the 100Mbps option (VDSL).
So I did. Got a new modem (TG 588v), plugged it in and interestingly already for 14Mbps though I only had 12 with the old modem (same line, still ADSL). Then a couple of days later (as announced) they changed my line on the switch/exchange and now I'm running almost 100 down (and 20 up).

With two kids in the house, netflix, two tablets and four smart phones... it was overdue to say the least.
So finally I can work while everyone else is watching Netflix (or the other way round).
I called them, they checked the line and told me that they could guarantee 92Mbps if I go for the 100Mbps option (VDSL).
So I did. Got a new modem (TG 588v), plugged it in and interestingly already for 14Mbps though I only had 12 with the old modem (same line, still ADSL). Then a couple of days later (as announced) they changed my line on the switch/exchange and now I'm running almost 100 down (and 20 up).

With two kids in the house, netflix, two tablets and four smart phones... it was overdue to say the least.
So finally I can work while everyone else is watching Netflix (or the other way round).
Sunday, February 21, 2016
MWC 2016 - need to go offline
So, as every year, just after CES the Mobile World Congress in Barcelona is starting right now. Time to go offline for a week... or be bored to death with all the new phone, screen, GHz, multicore and VR announcements.
Saturday, January 30, 2016
Google Play Services networking error > Phishing?
Last week my son approached me, because his Samsung all of a sudden started to show networking errors for YouTube, the PlayStore and G+ app. Connectivity was fine, we switched from 4G to Wifi and back, with no change (he would not have asked me for a pure/true connectivity issue). The Youtube app itself worked fine and played videos, he just could not log in with his Google account.
So no wonder this problem exists across several google services/apps, but nothing else.
Opening google.com/youtube.com in the browser also showed no problem, so definitely not a networking, dns, routing... problem.
I did some googling and found (apart from nonsense like "turn on wifi"...) some hints about a broken hosts file. So I adb'd into the device from my computer, pulled the /system/etc/hosts file:
So no wonder this problem exists across several google services/apps, but nothing else.
Opening google.com/youtube.com in the browser also showed no problem, so definitely not a networking, dns, routing... problem.
I did some googling and found (apart from nonsense like "turn on wifi"...) some hints about a broken hosts file. So I adb'd into the device from my computer, pulled the /system/etc/hosts file:
127.0.0.1 localhost
127.127.120.139 android.clients.google.com
With a hint from the ever-helpful stackexchange and the fine coincidence that he (or was it me?) rooted his phone sometime in the past, I was able to shell in, su to root, mount the file system as read-write, comment out that last weird line (for android.clients.google.com) and change the file system back to read only. Check the details on this post on stackexchange.
And then it worked.
This looks suspiciously like a phishing attempt by some malware, that managed to manipulate the hosts file to get the google password. So thirst thing after fixing this, chance the password.
Next thing, find that f*ing app that did this.
That's the downside of having rooted your phone. So finding the phone rooted was not such a coincidence after all.
Thursday, December 31, 2015
What happened 2015?
So, as you noticed, I did not really blog a lot this year, i.e. 2015.
Let me quickly recap what I was busy with in the last couple of month (lame excuse, I know).
In summer I changed job from Oracle to vmware. Still handling the channel/partner business, but now no longer for (boring) hardware, but for - to me - exiting software. The concept of the software defined datacenter - or SDDC for short - is something I really like. Virtualize everything. Move from on-premise to cloud(s) seamlessly... pretty cool I think.
Enough of the professional plug.
I still found time for some nice hacks at home.
I've been recording my electricity and gas consumption at home for years, nay, decades now. What started with a plain ascii file in the early 90s, turned in to a DB2 application on OS/2 (with visual REXX) , and then to a very rudimentary web application (against the same DB2 database) under Windows XP and 7. Over the years I slightly modified the web application to also be mobile friendly, so I could take my phone (Nexus 5 right now) or iPad and enter the data while I was reading the meter.
Did I mention that I'm a nerd and do this weekly? No?
Well perhaps I should.
Not very interesting from a hack perspective, is it?
So this year I decided to change this, and I
Two really impressive things here. Anyline... check it out. Excellent meter reading SDK (and other OCR stuff) on iOS and Android.
And step 5, already started: I bought some NFC tags (from whiztags, thanks for the hint, Max). One will go to the gas meter, the other one to the electricity meter, and both are registered to my app on Android. So when I go near the meter, it will automatically open the app with the OCR scanner for the respective meter. Click, and done.
Let me quickly recap what I was busy with in the last couple of month (lame excuse, I know).
In summer I changed job from Oracle to vmware. Still handling the channel/partner business, but now no longer for (boring) hardware, but for - to me - exiting software. The concept of the software defined datacenter - or SDDC for short - is something I really like. Virtualize everything. Move from on-premise to cloud(s) seamlessly... pretty cool I think.Enough of the professional plug.
I still found time for some nice hacks at home.
I've been recording my electricity and gas consumption at home for years, nay, decades now. What started with a plain ascii file in the early 90s, turned in to a DB2 application on OS/2 (with visual REXX) , and then to a very rudimentary web application (against the same DB2 database) under Windows XP and 7. Over the years I slightly modified the web application to also be mobile friendly, so I could take my phone (Nexus 5 right now) or iPad and enter the data while I was reading the meter.
Did I mention that I'm a nerd and do this weekly? No?
Well perhaps I should.
Not very interesting from a hack perspective, is it?
So this year I decided to change this, and I
- created an Android app for it
- added the anyline meter reading to it (because I did not want to get into the OCR stuff myself)
- created a REST interface to my database (building upon the old web application I had), using Jersey.
Two really impressive things here. Anyline... check it out. Excellent meter reading SDK (and other OCR stuff) on iOS and Android.
And Jersey, wow!! REST with the click of a button, yet you are still in full control. And also getting JSON and XML with the same code. Nice.
Now for step 4 I'll re-write the old web-app to a pure Ajax/jQuery/JSON thing, and will only keep the REST interface to the database.
And step 5, already started: I bought some NFC tags (from whiztags, thanks for the hint, Max). One will go to the gas meter, the other one to the electricity meter, and both are registered to my app on Android. So when I go near the meter, it will automatically open the app with the OCR scanner for the respective meter. Click, and done.
So that's the last half year - or so - in a nutshell.
Sunday, November 22, 2015
NetBeans and DB2 again
So for various reasons (mainly the 64bit v 32bit problem with the native driver) I changed my DB2 JDBC driver to type 4, i.e. the Universal driver.
However, when I connect from NetBeans with an URL like jdbc:db2://localhost:50000/sample the schema would stay empty.
Nothing. Zip. Zilch. Zero.
Nada.
Quite some googling and debugging - mainly with a little java program like this:
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class MainDB2 {
private static final String URL = "jdbc:db2://localhost:50000/SAMPLE";
private static final String USER = "roman";
private static final String PASSWORD = "pwd";
private static final String SCHEMA = "roman";
public static void main(String[] args) throws Exception {
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
try {
DatabaseMetaData dmd = conn.getMetaData();
ResultSet rs = dmd.getTables(null, SCHEMA, "%", new String[] { "TABLE" });
try {
while (rs.next()) {
int count = rs.getMetaData().getColumnCount();
System.out.println("Column count: " + count);
int i;
for (i = 1; i <= count; i++) {
try {
System.out.println(rs.getString(i));
} catch (SQLException e) {
System.err.println("Exception reading column " + i);
e.printStackTrace();
}
}
System.out.println();
}
} finally {
rs.close();
}
} finally {
conn.close();
}
}
}
I was able to trace it back to an SQLCODE -443SQL0443N with diagnostic text "SYSIBM:CLI:-805". SQLSTATE=38553. Google this and you will get to here and learn that - again - a package was not bound, this time the db2schema.bnd file. Bind it as suggested in the article with the usual db2 bind db2schema.bnd blocking all grant public
and voila, NetBeans will find the schema.
However, when I connect from NetBeans with an URL like jdbc:db2://localhost:50000/sample the schema would stay empty.
Nothing. Zip. Zilch. Zero.
Nada.
Quite some googling and debugging - mainly with a little java program like this:
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class MainDB2 {
private static final String URL = "jdbc:db2://localhost:50000/SAMPLE";
private static final String USER = "roman";
private static final String PASSWORD = "pwd";
private static final String SCHEMA = "roman";
public static void main(String[] args) throws Exception {
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
try {
DatabaseMetaData dmd = conn.getMetaData();
ResultSet rs = dmd.getTables(null, SCHEMA, "%", new String[] { "TABLE" });
try {
while (rs.next()) {
int count = rs.getMetaData().getColumnCount();
System.out.println("Column count: " + count);
int i;
for (i = 1; i <= count; i++) {
try {
System.out.println(rs.getString(i));
} catch (SQLException e) {
System.err.println("Exception reading column " + i);
e.printStackTrace();
}
}
System.out.println();
}
} finally {
rs.close();
}
} finally {
conn.close();
}
}
}
I was able to trace it back to an SQLCODE -443SQL0443N with diagnostic text "SYSIBM:CLI:-805". SQLSTATE=38553. Google this and you will get to here and learn that - again - a package was not bound, this time the db2schema.bnd file. Bind it as suggested in the article with the usual db2 bind db2schema.bnd blocking all grant public
and voila, NetBeans will find the schema.
Gets me every second year, it seams.
Friday, September 25, 2015
The iOS9 Podcast app is totally broken
Usually I hate and hence avoid to slam an app or service like this, but the podcast player in iOS9 really sucks. At least for video on an iPad.
No full screen video anymore, too much white space, and even with all that unused space, the controls are too small
Exhibit A:
Sunday, September 13, 2015
How to hide a userid from Windows login screen
With DB2 on my home PC[1] I have a service account for the DB2 instance, makes life a lot easier than trying to map it to you actual user(s).
However, regular Windows (Home) setup has 2 defaults that are annoying:
a. password and account expiry for this user.
b. the userid appears on the Windows login/lock screen, although nobody is supposed to sign in with it.
Create a maintenance free user
The first issue I fixed a couple of month ago, because that was really annoying. Because DB2 just would not start. And the first two times this happened I had to work through db2diag.log to find out what happened.
So, make sure the account actually never expires (that's separate from the password). With admin privileges run
net user db2admin [2]
to check if the user account expires.
If it does, then run a
net user db2admin /expires:never
to fix this.
The password expiration is trickier, since it cannot be done with the net user command.
To make the password everlasting, run
WMIC USERACCOUNT WHERE "Name='db2admin'" SET PasswordExpires=FALSE
I found this thanks to the folks at StackExchange.
Hide the service account from the login screen
I wanted to do this on Windows 7 already, but never found the time or cared enough. Now with the move to Window 10 I thought of it again and fixed it.
So this can be done with group policies and stuff, but not on a standalone Windows Home edition.
Registry and Microsoft Technet to the rescue:
Create an entry under
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList and list the db2admin user with a dword (32) of 0 to hide it. Remove the entry or set it to 1 to show the user again.
Voilà .
--
[1] Ha, now that I no longer work for Oracle, I can again freely admit it... Not that I really held back on this in the past 5 years.
[2] replace db2admin with the userid you need this for
However, regular Windows (Home) setup has 2 defaults that are annoying:
a. password and account expiry for this user.
b. the userid appears on the Windows login/lock screen, although nobody is supposed to sign in with it.
Create a maintenance free user
The first issue I fixed a couple of month ago, because that was really annoying. Because DB2 just would not start. And the first two times this happened I had to work through db2diag.log to find out what happened.
So, make sure the account actually never expires (that's separate from the password). With admin privileges run
net user db2admin [2]
to check if the user account expires.
If it does, then run a
net user db2admin /expires:never
to fix this.
The password expiration is trickier, since it cannot be done with the net user command.
To make the password everlasting, run
WMIC USERACCOUNT WHERE "Name='db2admin'" SET PasswordExpires=FALSE
I found this thanks to the folks at StackExchange.
Hide the service account from the login screen
I wanted to do this on Windows 7 already, but never found the time or cared enough. Now with the move to Window 10 I thought of it again and fixed it.
So this can be done with group policies and stuff, but not on a standalone Windows Home edition.
Registry and Microsoft Technet to the rescue:
Create an entry under
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList and list the db2admin user with a dword (32) of 0 to hide it. Remove the entry or set it to 1 to show the user again.
Voilà .
--
[1] Ha, now that I no longer work for Oracle, I can again freely admit it... Not that I really held back on this in the past 5 years.
[2] replace db2admin with the userid you need this for
Saturday, September 12, 2015
Windows 10 installed
While I finally made it to a Mac (MacBook Air 13) at work, I gave in and let Microsoft install Windows 10 over my Windows 7 on my home PC.
It went surprisingly smooth and without any problems.
Except that my Tomcat did successfully start under Window 10, because for some weird reasons Redmond decided to install and activate the Internet Information Services (which I previously did not have), and those blocked port 80 of course.
Simple de-install of those features, reboot and everything was running fine again. All apps and services I had running (or those I could think of within 30minutes) are running fine again.
Amazingly even my DB2 instance did not create any problems at all.
Now I only have to get used to the new UI, but even that seems easier than I thought.... well, as long as I have the keyboard.
It went surprisingly smooth and without any problems.
Except that my Tomcat did successfully start under Window 10, because for some weird reasons Redmond decided to install and activate the Internet Information Services (which I previously did not have), and those blocked port 80 of course.
Simple de-install of those features, reboot and everything was running fine again. All apps and services I had running (or those I could think of within 30minutes) are running fine again.
Amazingly even my DB2 instance did not create any problems at all.
Now I only have to get used to the new UI, but even that seems easier than I thought.... well, as long as I have the keyboard.
Sunday, August 23, 2015
WiFi + Train + Google Location = weird
For some while now, the Austrian Railways (OeBB) offer free Wifi at least on their premium trains ("railjet"). The trains are good and fast, the Wifi (most of the time, at least in Austria) is good, but it confuses the heck out of the Google/Android location services.
The trains operate all the routes from Zürich to Vienna, from Munich to Budapest, from Graz to Prague, etc etc.
And it seems that Google (and Apple as well) associate various geo coordinates to those access points, On my route from Vienna to Salzburg, both my iPad and my Nexus 5 "re-located" me to Graz, Linz and Prague, while I actually was just around Salzburg.
(For the convenience of readers outside Central Europe I include the map as a reference for the screw-up)
There must be some way to report those access points to Google so they exclude them from location services. The concept of mobile hotspots/access points should be too common.
Any idea anyone where I can report this ?
The trains operate all the routes from Zürich to Vienna, from Munich to Budapest, from Graz to Prague, etc etc.
And it seems that Google (and Apple as well) associate various geo coordinates to those access points, On my route from Vienna to Salzburg, both my iPad and my Nexus 5 "re-located" me to Graz, Linz and Prague, while I actually was just around Salzburg.(For the convenience of readers outside Central Europe I include the map as a reference for the screw-up)
There must be some way to report those access points to Google so they exclude them from location services. The concept of mobile hotspots/access points should be too common.
Any idea anyone where I can report this ?
Thursday, July 23, 2015
Vertical Video - revisited
Can I just say TOLD YA.
Here to be precise.
YouTube for Android will play vertical videos in full screen
Here to be precise.
YouTube for Android will play vertical videos in full screen
As much as we all might want to stop people from recording vertical videos, the Periscopes and Snapchats of this world have made these clips so prevalent that, sadly, they're just not going to go away. Giving in to the inevitable, YouTube's Android App is getting the ability to play vertical videos in full screen, ...
Wednesday, July 22, 2015
Publishing in the 21st Century
I always found that one of the core features or tasks of a publisher it to spend money made with best-selling artists on the newcomers. This applies both to publishers of music (a.k.a. labels) and literature.
Call it a cross-subsidy (and yell fire if you are too neo-liberal for this).
Over the last decades it appears that this is no longer the case.
Taylor Swift claimed in her open letter to Apple that she's is not complaining for herself (as she gets enough money) but for the young / indie artists:
Over the last decades it appears that this is no longer the case.
It seems that corporate financial controlling measures are being applied to each author or book of its own (or artist/album), and if it can not turn a profit, it will not be published. Profits from say Harry Potter [1] stay with the Harry Potter team and division and are not invested to find the next promising author.
That's because everyone hates cross-subsidies. Even within one company.
I especially find this is the case in music:
Take the recent rant of Taylor Swift against Apple. She complained (whether rightfully or not) about the fact Apple will not pay the artists during the 3 months trial period, because they, Apple, themselves don't receive any money.[2] Let's for a second ignore whether this is fair or not, let's turn to a separate aspect:
Taylor Swift claimed in her open letter to Apple that she's is not complaining for herself (as she gets enough money) but for the young / indie artists:
This is not about me. Thankfully I am on my fifth album and can support myself, my band, crew, and entire management team by playing live shows. This is about the new artist or band that has just released their first single and will not be paid for its success. ...
So is she asking Apple to take on the role of a publisher? She is asking them to help (i.e. finance) the young artists. Shouldn't the labels be doing this with the revenues they already make?
Interestingly she does not mention that this could be done out of the revenue streams from her music, only from the young artists themselves. That's odd.
So this is only a little less greedy than actually asking for herself - as she claims this is not doing.
Not so philanthropic after all.
Where are the publishers or labels in all of this? By taking themselves totally out of this equation, they will get by-passed in the future. Why would anyone need a publisher, when they don't even fulfill one of their core tasks? What's the value of a label/publisher to a young artist?
Instead of greedily clinging to their old business model, which is falling apart, they should think of creating new and relevant offerings to their customers, i.e. the artists.
--
[1] I admit I have done the research on this author/book/publisher, I just use it as an example. Correct me in the comments if I'm wrong.
[2] Apple of course changed this after her open letter.
Saturday, July 18, 2015
Yahoo Pipes no more...
So, Yahoo decided to pull the plug on one of their most interesting services: Yahoo Pipes.
So I revisited the service as long as it is still there. Turns out, the only 2 cases where I'm still using Pipes is for aggregating and filtering RSS feeds.
So I will look into one of the alternatives now, as listed here for example.
So I revisited the service as long as it is still there. Turns out, the only 2 cases where I'm still using Pipes is for aggregating and filtering RSS feeds.
So I will look into one of the alternatives now, as listed here for example.
Labels:
yahoo
Thursday, July 09, 2015
Quick Perl Hack
My regular commute train quite frequently has a delay of somewhere between 3 and 8 minutes, which is annoying when you really hurry up in the morning to be sure to catch it - it's only a 6min walk or so - and then you notice that all the rush was in vain, because the train wont be there for the next 5 minutes. But then again, you can't rely on it being late...
Wouldn't it be nice to already know this at home?
Well luckily on the website of our Austrian Federal Railways (ÖBB) and in their mobile apps you can watch the "Station monitor" as they call it. That is, you get almost the same screen display as the have in the station, with the delays showing - if any.
However, that would require 2 taps on my mobile .... way too cumbersome for me.
So I put together a quick Perl hack, just to stay in shape.
First analyze the webpage and the actual Ajax call in the background.
Then so some lenient JSON parsing, fix three stupid perl mistakes I managed to make within 1 hours. Filter on the train that I actually want, and send a PushBullet notification to my mobile and schedule this through cron on my QNAP for 8am every morning. Just in time to let me know whether I would need to speed up or not.
That was yesterday.
This morning, though, I of course did not get any notification, because I forgot the proper use lib ... in my perl script, so it would pick up my personal PushBullet library. Which of coursed worked during testing yesterday, because I was in another working directory. Will I ever learn?!
And at the same time I learned from my wife, that she is taking an earlier train this summer, so while I was at it, I updated the script to monitor 2 trains (with only 1 notification).
Should work fine now... But let's see tomorrow morning.
Wouldn't it be nice to already know this at home?
Well luckily on the website of our Austrian Federal Railways (ÖBB) and in their mobile apps you can watch the "Station monitor" as they call it. That is, you get almost the same screen display as the have in the station, with the delays showing - if any.
However, that would require 2 taps on my mobile .... way too cumbersome for me.
So I put together a quick Perl hack, just to stay in shape.
First analyze the webpage and the actual Ajax call in the background.
Then so some lenient JSON parsing, fix three stupid perl mistakes I managed to make within 1 hours. Filter on the train that I actually want, and send a PushBullet notification to my mobile and schedule this through cron on my QNAP for 8am every morning. Just in time to let me know whether I would need to speed up or not.
That was yesterday.
This morning, though, I of course did not get any notification, because I forgot the proper use lib ... in my perl script, so it would pick up my personal PushBullet library. Which of coursed worked during testing yesterday, because I was in another working directory. Will I ever learn?!
And at the same time I learned from my wife, that she is taking an earlier train this summer, so while I was at it, I updated the script to monitor 2 trains (with only 1 notification).
Should work fine now... But let's see tomorrow morning.
Saturday, June 13, 2015
Vertical Video
The other day I was browsing the Internet Trends 2015 presentation by Mary Meeker from this year's Code conference (and I urge you to do the same).
Out of all the excellent observations and predictions, one especially caught my attention: Something Funny Happened on the Way to the Small Screen ... Small Screen Vertical Viewing Became Big Deal. (Slides 22ff).
Video buffs and know-it-alls (like me, ahem) always frown upon iPhone/Smartphone users recording (and posting) portrait/vertical video. "Look at those stupid idiots", we yell, "they don't even know that video is supposed to be landscape. Don't they know anything?" Bruhaha.
Well, bruhaha ourselves.
Where does it say that video has to be landscape? Just because the cinematic/theatrical screen was horizontal, and (almost all) PC screen are? Soon the majority of viewing devices can now be either - horizontal or vertical, like tablets and smartphones. And the phone is even more likely to be held in portrait mode (the tablet less likely). See the data in the presentation.
If content producers and designers focus on this as a design element, this can be a competitive advantage.
Saturday, May 23, 2015
FlickrTab for Chrome
How about an extension for the Chrome Browser that does nothing for your productivity, almost the opposite: Flickr Tab
All it does: it will show a photo from flickr every-time you open a new (empty) tab on Chrome. That's it.
No productivity value at all. But you get to see truly awesome pictures.
I installed it a couple of weeks ago when it first was released, and enjoyed it ever since.
All it does: it will show a photo from flickr every-time you open a new (empty) tab on Chrome. That's it.
No productivity value at all. But you get to see truly awesome pictures.
I installed it a couple of weeks ago when it first was released, and enjoyed it ever since.
Labels:
flickr,
google chrome,
tip
Thursday, April 16, 2015
Moto 360 first experience
A couple of weeks ago, I got a Moto360 Android watch/wear, and by now I have been trying it out in daily life, Here's how that works / worked:
One disclaimer, though: A couple of days after I got it, I went on a short London vacation/trip (with the family), and I deliberately decided to leave my Moto360 at home... On the second day in London I started to regret this...
1. In the morning I start wearing it just before I leave home and start my commute (a couple of minutes walking, traind and underground).
Here I mainly use it for reading (and dismissing) notifications, like incoming emails and sms/text.
Responding to a text is really not an option, or do you want to talk to your watch while on the underground (unless you are Dick Tracy)
2. Then a full office day with internal and external meetings and coffee breaks. Again, mostly reading and dismissing. Also, the reminders about upcoming meetings are nice.
During the coffee breaks, the most important use case is showing it to co-workers... I hope that wears off.
Regarding calls (regardless when), the watch of course only helps, to see who's calling, and more smoothely reject the call. When you want to take it, you still need the phone.
3. Commute back - see above,
Swarm/Foursquare check-ins - if you are really still into that, like I am - work quite fine with Wear for Swarm.
4. Once I get home, the battery is usually still around 40%.
One disclaimer, though: A couple of days after I got it, I went on a short London vacation/trip (with the family), and I deliberately decided to leave my Moto360 at home... On the second day in London I started to regret this...
1. In the morning I start wearing it just before I leave home and start my commute (a couple of minutes walking, traind and underground).Here I mainly use it for reading (and dismissing) notifications, like incoming emails and sms/text.
Responding to a text is really not an option, or do you want to talk to your watch while on the underground (unless you are Dick Tracy)
Podcast player control (BeyondPod in my case) works like a charm.
2. Then a full office day with internal and external meetings and coffee breaks. Again, mostly reading and dismissing. Also, the reminders about upcoming meetings are nice.
During the coffee breaks, the most important use case is showing it to co-workers... I hope that wears off.
Regarding calls (regardless when), the watch of course only helps, to see who's calling, and more smoothely reject the call. When you want to take it, you still need the phone.
3. Commute back - see above,
Swarm/Foursquare check-ins - if you are really still into that, like I am - work quite fine with Wear for Swarm.
![]() |
| The Minimal & Elegant watch face I started using today |
4. Once I get home, the battery is usually still around 40%.
5. In front of the telly ... yeah, that's the only time I really dare talk to the device. Works quite well, as long as you stick to English.
Even though Google (on the phone) has no problem with switching between German and English dication, on the Moto360 I only got it to work with English.
Even though Google (on the phone) has no problem with switching between German and English dication, on the Moto360 I only got it to work with English.
So some text/chat replies do still not work (when I'm in a German conversation), or I start responding with "Thanks" instead of "Danke" :)
I did manage to have quite complete chat conversations just using dictation through the watch. More than just "Thanks".
6. In the evening, I put it in the charging station on my nightstand and the watch now doubles as an alarm clock, and gets charged at the same time.
The biggest problem so far interestingly occured during the night: a couple of days ago, the Wear app on the Moto 360 itself crashed, and kept crashing, even after rebooting the watch [1]. Which was indeed annoying because my newly enthroned alarm clock kept flashing bright wite every 3 minutes (while it kept crashing and restarting). So I just switched it off, tried to re-synch all apps in the morning. That still did not fix it, so I did a full reset and re-paired the watch. Works fine now.
Impression and experience so far: Totally nice piece of art (and technology), which works extremely well. Battery is a lot better than expected. Proper use-case worth 200+EUR: none so far
--
[1] There, I said it "Rebooting the watch"... How dorky/nerdy is that. Just shoot me.
Labels:
android wear,
moto 360
Saturday, April 11, 2015
LastPass - a must
It's really that simple:
Using the same password for each and every site or webservice is just not an option:
a) because of different and incompatibly password rules and policies
b) for simple security reasons.
If one site gets hacked and passwords leak (and it will and they will) then those nasty nasty people will have access to all (or many) of your accounts.
Creating (much less remembering) 100 separate and secure passwords in your head simply wont work.
So you need a service to do this for you.
I choose LastPass some time ago, and it works great, especially the random password generator, and the auto-fill feature on web-sites and Android apps.
I know, some will say, that LastPass can get hacked and then all my accounts (incl online banking and all) are revealed. True. But still more unlikely than all the other scenarios.
As of today this is the most secure choice for me.
There are others like 1Password, or Apple's key chain... (here's a list). If you don't yet have any of those, get LastPass now.
Using the same password for each and every site or webservice is just not an option:
a) because of different and incompatibly password rules and policies
b) for simple security reasons.
If one site gets hacked and passwords leak (and it will and they will) then those nasty nasty people will have access to all (or many) of your accounts.
Creating (much less remembering) 100 separate and secure passwords in your head simply wont work.
So you need a service to do this for you.
I choose LastPass some time ago, and it works great, especially the random password generator, and the auto-fill feature on web-sites and Android apps.
I know, some will say, that LastPass can get hacked and then all my accounts (incl online banking and all) are revealed. True. But still more unlikely than all the other scenarios.
As of today this is the most secure choice for me.
There are others like 1Password, or Apple's key chain... (here's a list). If you don't yet have any of those, get LastPass now.
Subscribe to:
Posts (Atom)










