Sunday, April 10, 2022

Brave New Post-Brexit World

So, last week I had my first (business) trip to the UK since the Kingdom in its infinite stupidity decided to leave the EU.

It's been a while - Jan 2019 to be precise. Not because of Brexit, but of course because of the COVID-19 pandemic, that kept everyone from travelling.

There were two major changes and experiences that sort-of relate to tech in a larger sense, so I want to report on them here.

Mobile Phone/Data and Payments

Payments

Let me start with the latter: Even when the UK was still part of the EU using any payment card (credit card like VISA, or debit card like the then maestro card that meanwhile has been turned into Mastercard) was more costly than in mainland Europe. No, I should be fair, this got nothing to do with them Brits living on an island of their own, but with them having their own currency. EU regulations didn't allow to charge for payments or withdrawals within the Eurozone[1], but they still could charge you for the currency conversion. So even before Brexit paying for a 1£ could potentially end up like 2-3€ on my account[2].

Back then, I already pondered getting a UK debit card, that I'd only need to charge once every blue moon, and thus limit the charges & fees.

This time I did. Some research amongst friends and colleagues led me to try Revolut. There are many similar other fintech startups with comparable offerings. I chose Revolut because people around me used it (and hence I hoped to piggyback on their experience) and it appears all have had the same startup issues in the last couple of years. Revolut it was.

I opened my account on a commuter train ride in & around Vienna[3], got an EU IBAN, and transferred some money from my regular (Austrian) checking account, created a "GBP" sub-account - or whatever you want to call it - and a virtual credit card. Thought I try my first trip without a physical one - and also I had only 1 week left, so chances it wouldn't arrive in time were high. Why bother at all, then.

Ah, yes, and I linked this card into Google Pay, to facilitate contactless payments from then phone.

And guess what? It worked like a charm. No need to run a tab at the pub, hence no need to receive this credit-checking looks from behind the bar. Just tap the phone, and that's it.

Since I started with only 10€ for a start, of course I immediately had to top up  the account from my checking account again, but that only took half a minute, without any charges...  - in the pub with the pint half empty alredy Life's good.

Mobile Phone/Data

Well what can I say. I'm an idiot, I guess. I knew that with Brexit the UK also got out of the EU roaming agreement. Previously, I used to ignore roaming in the UK. Since I only was there for a couple of days at a time, there wasn't even the slightest risk of me violating the fair use limitations, since most of my data volume was always used in Austria. And I knew that this was no longer in place. I knew that roaming charges (on data) again applied.

But I forgot how insufferably high they are. Just switching on my phone after landing at LHR, I immediately got 2 texts from my operator: the first informing me that I just used 40€ worth of roaming, and the other letting me know that they cut me off, because I reached the 50€ limit. And I hadn't even opened my seat-belt yet[4]. 

So I jumped on the public Wifi in the terminal, whatsapp'd the colleague who handles our phone contracts and packages and he was nice enough to immediately sign me up for the roaming package.

Crisis averted - for now. The 100MB packages costs 40€ a month...Seriously? The 250MB still 80€... not really a volume discount there... Still was ridiculous. While still happy that I had a solution for the time being - without needing to hop on any next available free wifi, I needed something else.

And it wouldn't be a burner phone, like a co-worker suggested. One better, I have a dual SIM Oneplus 9.

So, again with the help of some local recommendations, I decided to get a Three SIM, and top up as I needed. I was on the train from wonderful totally-non-boring Staines-upon-Thames into London already[5]. Arrived in Waterloo, strolled casually into the next WHSmith, only passed the SIM shelfs like 5 times, before a friendly assistant pointed to it, got a Three SIM for 0.99£ [6] , went to our wonderful London Office in London's Old Street - the area is affectionally called Silicon Roundabout, and I now know why - plugged the SIM into my phone and nothing.

For a moment, nothing happened. Then, after a second or so, nothing continued to happen.
The good old Hitchhiker

I checked the three homepage, where they confirmed, that once the SIM is plugged in and the phone switched on, I should receive a text after a while with my new phone number. Nothing.

Not even for half an hour. Tried several tricks, like switching off my Austrian A1 SIM. No. Switching off Wifi...No.
Well, let's leave that, I got work to do.. So I did. 

Then we popped out of the office for a quick bite and PLING... text from three arrived. Turned out there was no reception in the middle/core of the building where I sat... So while enjoying my sandwich I even more enjoyed to create an account, top up my Three SIM with 8GB for the month for 10£... Probably not the cheapest option in the world, could have had a cheaper per-GB plan, but do I even need 8GB a month, when I'm there at best 3-4 days a month? No I don't. So good for now.
Did you guess by now, how I paid the 10£? Right.

(And then texted my colleague in Vienna, to switch of the roaming package, no need to waste money next months as well)
So 8GB for 10£~~12€ vs  100kB for 1.49€  or 40EUR for 100MB... Again, not the cheapest option, but a bargain compared to roaming charges these days.

Tarifinfo UK: Lieber A1 Kunde, Sie nutzen jetzt Datenroaming. Wir verrechnen wie folgt: Daten 1,490/100 KB; MMS 0,990. Infos zu Ihrem Datenvolumen finden Sie auf A1.net und Mein A1 App. Preise in Euro inkl. USt., g├╝ltig nach Verbrauch etwaiger Freieinheiten, Roaminginfo +43664664666, Notruf 112. Ihr A1 Team      Tariff information UK: Dear A1 customer, you are now using data roaming. We charge as follows: Data 1,490/100 KB; mms 0.990. You can find information about your data volume on A1.net and My A1 App. Prices in euros including VAT, valid after any free units have been used, roaming info +43664664666, emergency call 112. Your A1 team

So?

Why did I write that up?

  1. if as a EU citizen you plan to travel the UK, I wanted to give you some recommendations.
  2. I tried all of the above... Setup was really easy, and is for your if you consider yourself a non-tech-averse person.
  3. Everything worked, no fraudulent or fishy things or hidden charges found so far.
  4. I'm still annoyed by Brexit. Full stop.
  5. A point of ale appears to taste better when paid from a local account ;)


------

[1] or was it actually SEPA?

[2] honestly, I don't want to fact check this, but it felt like it ;)

[3] oh the enquiring "what-is-he-doing-now" look on my wife's face, when I first took a selfie on the platform and then two minutes later put my id card on the seat next to me to take pictures for identification ;)

[4] don't judge me.

[5] the 1 hour delay is a different story, but hey SWR trains at least come with Wifi.

[6] That's why I got the revolut account ;)   smart, right? Right?


Saturday, April 24, 2021

Android 11 and Google Photos Permissions

 Got me a OnePlus 9 yesterday, which already comes with Android 11 installed. Migration of apps over there was rather smooth, many thanks again for LastPass, taking care of easily getting authenticated in all those newly (re-)installed apps.

Even moving those apps who are supposed to run on one device only, was quite easy this time. I'm speaking of authenticator apps (Microsoft and RSA) and the Banking apps.

What kept surprising me was that whenever I wanted to delete a photo in Google Photos I had to answer an additional "Allow Google Photos to ...".

I googled around and found that this was a side-effect of the new Android Scoped Storage that they finally implemented to get some more fine grained control over apps accessing the filesystem.

There is a nice article over at XDA Developers detailing this "issue" and the remedy.

OnePlus Gallery app is the owner of the photo storage area ("System Gallery") and not Google Photos (except on Pixel phones of course), but you can change that and make Google Photos the owner. 

The TL;DR: go to your pc, connect the phone and get out the adb.

adb shell cmd role add-role-holder android.app.role.SYSTEM_GALLERY com.google.android.apps.photos

Did the trick for me.

Monday, January 04, 2021

ISO compliant year-week function in DB2

 I've already shown how to create a year-month function in DB2, which - when it comes to date arithmatic - is quite straightforward, because very year (in ISO/Gregorian) calendar starts with the first month.

Some systems argue whether this should have the ordinal 1 or 0, but thats the usual 0/1 issue in programming.


Weeks however, are far more complex, because not every year starts with the begin of a week (whether this is Sunday or Monday in your preference / area).

It might just start with a Thursday... WOW.

So for that ths ISO 8601 standard set a definition on what is to be considered week 1 of a year:

The ISO 8601 definition for week 01 is the week with the first Thursday of the Gregorian year (i.e. of January) in it
Luckily, DB2 has a function for that - WEEK_ISO.

So let's just try that with a 

rtrim(char(year(TS))) || right(digits(week_iso(TS)),2)

Takes the year (need to rtrim it) and adds 2 digits week to it (you might want to insert a "w") between them.

However, this leeds to e.g. 2021-01-03 being in week 53, because week 1 start on 2021-01-04.

the yearweek for 2021-01-03 therefore should be 2020-53 not 2021-53 as the above formular would yield.

Now we need to make sure that if we get a week 53 and its January we return the previous year... Only for January, because some days in December might also be week 53, and we need to keep the year there.

Voila:

create function yearweek_iso(TS timestamp)
returns varchar(6) no external action deterministic 
return    
CASE

     WHEN (week_iso(TS)=53 AND month(TS)=1) Then
             
rtrim(char(year (TS)-1)) || right(digits(week_iso(TS)),2)   
     ELSE
              rtrim(char(year(TS))) || right(digits(week_iso(TS)),2)
END


The results now match whatever java.time package might do with week parsing. In order to get the first day of this week back (in Java, where I needed it), you parse as follow:

new DateTimeFormatterBuilder()
            .appendValue(IsoFields.WEEK_BASED_YEAR, 4)
            .appendValue(IsoFields.WEEK_OF_WEEK_BASED_YEAR,2)
            .parseDefaulting(WeekFields.ISO.dayOfWeek(), 1)
            .toFormatter();

Saturday, May 09, 2020

Windows 10 Folder Shortcuts

I have to admit, I did not know about that:

The shell: command can be used to open a special folder directly from the Start, Search menu or from the Run dialog. For example, the command shell:sendto opens the SendTo folder (%userprofile%\sendto) of your user profile. To launch the Documents folder of your user profile, you’d type shell:Personal. Below is a complete shell: commands listing for Windows 10/8/7/XP/Vista. The entire listing is stored in the following registry key in Windows Vista and higher:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\FolderDescriptions
So e.g. Windows-R and "shell:startup" opens the startup folder.
I used to play around with "%appdata%" etc etc where I knew there was an environment variable for it, but the shell: shortcut enables a lot more.

Found - amongst others - here 
and of course on superuser.com

Wednesday, January 08, 2020

How do I stop my Firestick from optimizing?

Well, the other day I noticed that my USB charging cable for my Amazon Fire Stick was broken. So I just dug into my USB cable carton and get the next best USB micro charger and replaced the broken one.
Done.

I thought.

A couple of days later I found the stick busy  "Optimizing systems storage and applications...", letting me know "This will take approximately 10 minutes to complete.".
Fair enough... You do your thing then...

Well, it never completed, Even rebooting did not help.

Image result for have you tried turning it off and on again

So I googled, and found a bunch of useless videos, that show you the stuck message for minutes and complain about the stick being stuck... and that not even Alexa would work.  No sh$t, Sherlock.


Oddly enough, the cause (as those google searches revealed) was related to me changing the power supply/cable. Shouldn't have picked the cheapest one.
Went back to the USB cable box, took a more expensive looking cable, and - voila - after completing the optimization the stick is now back running as it should.

And I just saved you half an hour of your life watching those not-really-helping videos.
You're welcome.

Tuesday, October 29, 2019

Google .new shortcut for Calendar

Just found this on engadget.

If you type in cal.new or meeting.new in the address bar (sorry, awesomebar, or whatever it is called these days), it will directly re-direct you to the page/dialog to create a new calendar entry for your google calendar.

Seems to have been around for google docs for a while now, but I don't really create a lot of them, compared to calendar entries.

Nice use of TLDs ;)