Labels

3G (1) 8600GT (1) AI (4) amazon (1) API (1) apple (3) apple mail (1) atlassian (1) bambo (1) Bamboo (1) bloat (1) boost (1) bugbear (1) C++ (5) calling conventions (1) cdecl (1) chromecast (1) CI (1) compiler (1) continuous integration (1) coursera (1) custom domain (1) debugging (1) deltanine (1) diagnosis (1) diy (5) DLL (1) dns (1) don't be evil (1) ec2 (1) education (1) electronics (1) express checkout (1) fail (7) fink (1) free hosting (1) GAE (1) google (1) Google App Engine (4) hackintosh (1) Haskell (3) homebrew (2) icloud (2) iOS 9 (1) ipad2 (2) jobhunting (1) lag (1) letsencrypt (3) libjpeg (1) linux (1) mac (2) mbcs (1) mechanic (1) memory (1) MFC (3) Microsoft (1) migration (1) ML (1) mobile (1) movi (1) MSBuild (1) music (1) naked domain (1) NLP (2) o2 sensor (1) obd (1) Optiplex960 (1) osx (1) outlook express (1) payments (1) paypal (1) photos (2) PIL (1) Project Euler (1) python (2) raspberrypi (3) renwal (2) soundcloud (1) ssl (3) stdcall (1) stripe (1) subaru (2) supermemo (1) supermemo anki java (1) sync (2) Telstra (1) tests (1) thunderbird (1) udacity (1) unicode (1) Uniform Cost Search (1) university (1) upgrade (2) vodafail (1) vodafone (1) VS2010 (1) vs2013 (1) VS6.0 (1) weather (1) win (1) Win32 (1)

Monday, 29 August 2016

Google Chromecast Video does not work without an internet connection even for locally hosted video!

Google's motto is "Don't be evil". I guess they don't think that spying on every thing you do is evil.
That's the only reason I can see why your Chromecast video needs an internet connection to function, even if all you wan't to do is cast videos stored locally on your laptop to your TV.

I recently picked up a Chromecast Video in preparation for a a weeks snow holiday at Thredbo, thinking it would be handy so the kids could watch some of their own videos on the TV in the chalet. The chalet came with WiFi internet, but the cheapskate owner must have purchased the cheapest possible internet plan with the lowest quota, because even though all the right lights on the router were lit, there was no internet access.

This caused big problems trying to setup my new Chromecast, which needs to download some updates when it is first configured. I can understand why it would need internet access for that.

But once it is setup it refuses to work without an internet connection. The only reason I can see it might need an internet connection is so that it can spy on you and report your viewing habits back to google.

I managed to get it working by creating as hotspot on my iphone, having the chromecast use that hotspot for internet access and use my laptop to connect to the chromecasts WiFi to configure it.

But that's way more complicated than it needs to be. It really should be written on the box in big letters:

REQUIRES INTERNET ACCESS!


Tuesday, 26 July 2016

Letsencrypt certificate renewal process is awful!

So, my free 90 days letsencrypt certificate is about to expire.

I tried the auto-renew feature, but it does not work in manual mode. They intend it to be run automated and unattended, but I can't do that because I want to use the certificate on google app engine.

So basically, you have to re-issue the certicate , which means updating the challenge response on your website.

Well, I did all that, and generated a new certificate.

Unfortunately it expires the same time as the certificate I want to replace... WTF?

Anyway, I cleaned out /etc/letsencrypt and tried again from scratch:



sudo ./letsencrypt-auto certonly -a manual --rsa-key-size 2048 --email webmaster@mydomain.org.au -d mydomain.org.au

and this time it generated me a certificate with the correct expiry date.

Then I have to convert the format for google app engine:

openssl rsa -inform pem \
  -in /etc/letsencrypt/live/mydomain.org.au/privkey.pem \
  -outform pem > /etc/letsencrypt/live/mydomain.org.au/privkey_fixed.pem

and we are good.

This time I documented it so I can rmember in 90 days time when I need to renew it again!

Letsencrypt certificate renewal process is awful!

So, my free 90 days letsencrypt certificate is about to expire.

I tried the auto-renew feature, but it does not work in manual mode. They intend it to be run automated and unattended, but I can't do that because I want to use the certificate on google app engine.

So basically, you have to re-issue the certicate , which means updating the challenge response on your website.

Well, I did all that, and generated a new certificate.

Unfortunately it expires the same time as the certificate I want to replace... WTF?

Anyway, I cleaned out /etc/letsencrypt and tried again from scratch:



sudo ./letsencrypt-auto certonly -a manual --rsa-key-size 2048 --email webmaster@mydomain.org.au -d mydomain.org.au

and this time it generated me a certificate with the correct expiry date.

Then I have to convert the format for google app engine:

openssl rsa -inform pem \
  -in /etc/letsencrypt/live/mydomain.org.au/privkey.pem \
  -outform pem > /etc/letsencrypt/live/mydomain.org.au/privkey_fixed.pem

and we are good.

This time I documented it so I can rmember in 90 days time when I need to renew it again!

Monday, 2 May 2016

Let's Encrypt and Google App Engine... not a match in heaven

I recently got on the SSL bandwagon for a site I manage, and bought an SSL certificate from GoDaddy for less than $10 (I can't remember exactly), but it only lasted a year.

True to form, when time came up for renewal GoDaddy wanted to charge me $100.

Top Tip: Never, ever allow GoDaddy to autorenew anything you buy from them. Because they alway jack the price up when they autorenew by default.

Anyway, I heard about LetsEncrypt, the new CA which offers SSL certificates for free.

"This must be too good to be true", I thought. And once again, I was proved right.

After much yak-shaving, (installing the prerequisites on my mac, the letsencrypt software, and the appropriate challenge/responses to prove I owned the web servers) I actually managed to sucessfully generate my certificate...

...which expires in 90 days!?!

Now the people at letsencrypt think that 90 days is a really, really long time, and any longer would be a security risk. And they say, "Hey, you should automate all your certificate issuance/renewal/web hosting malarky".

The only problem is, THERE IS NO API TO AUTOMATE UPLOADING OF YOUR CERTIFICATE TO GOOGLE APP ENGINE!!!

So, every 90 days, you will have to do it manually.

And one more thing... when I tried to upload my 4096 bit key certificate, app engine complained with an extremely generic error message. Turns out it only supports a maximum of 2048 bit keys.

Way to be cutting edge Google!


Wednesday, 25 November 2015

How to move your amazon instance to another account

Did you know amazon offer 1 years free EC2 hosting on a t2.micro instance when you create an account?

Free hosting for a year! But, what happens when the year is up? Hmmm, I wonder....

You might wan't to migrate the instance to another account.

How?

1) Create an AMI image of your instance
2) Add the account id of the new account to the permissions on the instance
3) Now you can see the AMI image in the new account and deploy it.
4) Create an elastic IP address and associate it with your new instance
5) You may also need to update the DNS records to point to your new elastic IP.

Voila! Another years free hosting!

Sunday, 11 October 2015

Do not install IOS9 on your iPad 2!!!

So, Apple released IOS9 with a bunch of PR hoopla about how well it was optimised for older devices.

So, I installed it thinking, well my iPad 2 is running okay, and Apple promises the new version will not make it any worse, so what the hey, lets install IOS9.

What I forgot was that I never installed IOS8 because I heard it was a dog. Now I have IOS9, and my iPad has massive, massive lag!

The onscreen keyboard has a few seconds lag before the letters appear, scrolling through the apps is glacially slow, the whole thing is sluggish- basically it is a terrible UX.

And would you believe it is impossible to downgrade any lower than IOS 8.4.

I can't believe that QA at Apple signed off on IOS9 for iPad 2 because the experience sucks.

If I was cynical, I might think this was a deliberate strategy to make perfectly usable devices useless and push people to upgrade.

So DO NOT UPGRADE TO IOS 9!


Monday, 28 September 2015

No wonder PayPal is having it's lunch eaten by Stripe...

I am currently trying to integrate paypal express checkout with an organic fruit and vegetable online shop that I manage the website for.

Wow! What a flakey experience, I can only hope that the PayPal production site is more stable than its sandbox!

First up, when I tried to create test accounts in the sandbox I kept getting mysterious "system errors". Only after much googling I discovered that this mysterious system error means that the password for the test account does not meet the password complexity rules... (hint: Password1! meets the criteria).

Then there are the random, intemittent failures when I call the express checkout apis.

And now, I find that paypal gives me an nginx 404 error when I try to launch the integrated express checkout page: https://www.sandbox.paypal.com/checkoutnow?token=blah. After a while it comes good...

This just smells of a half baked test sandbox environment. No wonder upstarts like Braintree (now bought by PayPal) and Stripe are eating paypals lunch in the payments market.

In fact, I was thinking of using Braintree integration, but there signup process was a bit onerous, asking me questions about our shops delivery and returns policy (we don't have one - people pick up their groceries each week), privacy policy, etc.

Anyway, PayPal needs to step up its game as far as developers are concerned... when you have so many issues in its test environment you have to wonder how stable the production environment is.