Ubuntu on Windows

windows-category-inverted

In the Anniversery Update, Microsoft added support for “Bash on Ubuntu on Windows”, a full linux subsystem, allowing you to run virtually any console level Linux application, including things like Apache, MySQL, PHP and other standard offerings, without any modification.

Of course, these are available for Windows as well, but having a full LAMP (Linux Apache MySQL PHP) stack on your local system without having to run a full VM is kind of useful.

When I picked up my new Ultrabook, I decided to try out Ubuntu on Windows instead of using Wampserver for my local PHP development.

Installing Ubuntu for Windows was easy enough, enable the feature in Windows and away you go.  Once finished, you can then run Bash and get a full Linux command line available.

Installing packages is exactly the same as with Ubuntu, for example to install Apache, simply do a “sudo apt-get install apache2”.

MySQL, PHP, Apache, phpMyAdmin, etc. all installed without issue and I had a functional LAMP stack soon afterwards.

It’s quite an impressive feature really, but there are a few drawbacks:

  • Apache started automatically with the system, but for some reason that I haven’t tracked down yet, MySQL doesn’t.
  • File system access (see more below)

Overall, it’s a useful tool if you need Linux but don’t want to install a full VM.

File System Access

Here’s the show stopper though.  The files system inside of the Ubuntu install is a real Linux file system, everything you expect is there; etc, mnt, var, …

To accomplish that, Microsoft has created “root” directory inside the current users home directory.

In Windows you can browse to it via:

C:\Users\[username]\AppData\Local\lxss

Inside the Ubuntu instance, Microsoft has mounted your permeant drive letters under the /mnt directory.

This let’s you move files back and forth between Ubuntu and Windows.

That sounds like a great idea until you notice that to accomplish this trick Microsoft has created different file properties for Windows and Ubuntu.  So for example if you edit a file in Linux, the last modified date is update in Linux but not Windows.

Likewise if you create a file through Windows in the Linux file system, it won’t show up in Linux as it doesn’t have the “right” file properties associated with it.

This makes trying to do development in this mixed environment virtually impossible.

For example, if your working on a PHP app and editing the file in your favorite Windows editor and save it, PHP will never see the file modified and not reload it in to the cache so you will always get the unedited code running on the server.

There are a few ways around this, like disabling opcache in PHP, or “touching” the files after editing, but these are hacks at best.

In addition, I found some files simply disappeared from Linux after being edited in a Windows editor and the only way to get them back was to remove them and copy them from /mnt/c.

Conclusion

It’s an interesting option to have, but it’s too immature at this point to use in any serious fashion.

I’ll keep an eye on it, but I’m removing the LAMP stack and going back to Wampserver for the time being.

 

 

 

 

ZenBook 3

hardware-category-inverted

My primary notebook for the last four years has been the ASUS ZenBook UX31A, a fine system running an Intel Core i7 with 4gig of ram and a 256gig SSD.

However I’ve recently been playing around with some VM’s for Linux and Windows and the 4gig of ram had become a significant hurtle for it.  By the time the OS and the rest of my apps were up and running, I couldn’t load a VM with anything over about 764meg of ram.  That makes it challenging to do some things and so it was time to start looking for a new notebook.

My first instinct was to go straight to the Microsoft store and pick up a Surface 4 Pro, but as this was in April, Microsoft had not yet had their announcement of the new Surface Pro and I was not eager to pick up something I knew was about to be obsoleted.

The other issue with the Surface is of course the price, by the time you get an i7 with 16gig of ram you’re well over the $2k mark and you still have to pick up accessories to make it useful (like a doc and typecover).

With the announcement of the Surface Pro (2017), the other issue is the lack of a USB Type C port.  Microsoft can make all the excuses in the world as to why they didn’t include it, but it’s incredibly short sighted in my opinion.

Beyond that, the Surface Pro is really a tablet, which can be a good thing, but the majority of my work is more laptop oriented and so I decided to take a look around and see what else was out there.

Of course, I’ve been very happy with my ZenBook, so a quick stop at the ASUS website was required.  The ZenBook 3 was released last year and has the specs and size I wanted, however I have to admit the gold highlight kind of put me off of it.  It looks a little gaudy to me, but style is very subjective.

I checked out Dell and HP as well, but there’s a limited market for small, powerful notebooks and so in the end I picked up the ZenBook 3.

Hardware

You can go to the ASUS site and find all kinds of detail on the hardware, but really it doesn’t prepare you for just how small and light the unit really is.  My old Zenbook looks like a luggable from the 90’s in comparison.

It’s running an Intel Core i7, with 16gig ram and a 512gig SSD.  It’s fast and well built.

The display is crisp and bright, with a thin bezel that really fits a much larger screen inside or a smaller chassis than you would expect.  In practical terms the screen is almost as large as the 13.3 inch one from by old ZenBook but the laptop is much smaller.

The hardware is great, but there are a few things you should know before thinking about getting one of these laptops:

  1. Ports: With a laptop this small, ports are at a premium.  And by premium, I mean there are only two of them; 1 USB type C and 1 headphone jack.  That’s it.  It does come with an port expander, which is small and easily accomidated in any pocket in your case, but it is a concern.
  2. Keyboard: Getting the notebook this thin has had a tradeoff in the key travel.  It’s very shallow and takes a bit of use to get comfortable with.  It’s not a deal breaker by any means, but if your a key pounder it may be an issue for you.
  3. Keyboard: No left hand command button.  Well there is but it’s a fn+ctl combo.  I’ve actaully remapped the right ctl key to the command key as I use it quite a bit.
  4. Keyboard: The arrow keys have a slightly weird layout.  The left and right arrows are full sized but the up and down are only half sized.  Weird but not a big deal really.

Software

It’s running Windows 10 of course, but it does come with Windows 10 Pro so that’s a pleasant surprise.  Beyond that, there’s not much to say about the software.  There’s a little bit of bloatware on it that’s easily enough removed, but it’s not too bad overall.

Recommendation

So of course the question is, would I recommend it to someone?

In this case that’s a Yes and No answer.

If your looking for the smallest, lightest, fastest, most powerful notebook, then yes by all means.

However the rub comes with ASUS’s announcement of the ZenBook 3 Deluxe a few weeks ago.  It’s basically a 14″ version of the ZenBook 3 and if I’m honest I’d probably have giving it a serious look if it had been announced before I picked up the 3.

But you can’t wait forever so I’ll be quite happy with the ZenBook 3 for the time being.

Two Factor Authentication for WordPress

wordpress-category-inverted

I’ve used WordPress for a long time now and over the years security concerns have changed greatly on the Internet.  Adding plugins to block multiple login attempts and filter out IP address all work well, but technology has moved on and two factor authentication is popping up all over the internet.

It’s primarily been driven by the adoption of “soft tokens”, standard software that can be run on any phone that generates unique numbers used as another layer of security for your login process.

Big companies like Google, Microsoft and others have this as an option, but WordPress does not include it by default.  Instead, you can install it with a plugin.

There are several options to choose from in the plugin directory, but I’ve chosen Two Factor Authentication, primarily because it works well and has a reasonable set of features in the free edition.

Installation is the standard WordPress plugin install and after that a user can activate it by selecting the “Two Factor Auth” menu in the WordPress admin backend.

You can either use the QR code to setup your phone with the account and after that, your good to go.  Using Microsoft or Google Authenticator apps on your phone (or several others that are available) makes managing your second factor easy and quick.

The plugin integrates with most major login plugins (like Theme My Login) and works well.

If there is a downside to it, it is that some of the features are only in the paid edition.  For example; recovery codes and compulsorily usage for roles.  However for the vast majority of sites this won’t be an issue.

The only other downside is the upgrade to the premium version is a little expensive at £19 (about $33 Canadian at the moment) for a small or personal site.

Beyond that, I certainly recommend it and have been using it on several of my sites (including JumbleCat of course) for a few months now.

 

 

 

Replacing Windows Phone

[sc:mobile-category ]I’ve been a big fan of Windows Phone since it came out, but fandom can only take you so far.  Microsoft, while not abandoning Windows Phone, has let it languish to the point where I have been unable to recommend it to anyone for over a year.  Likewise, I’ve had to take a hard look at if it still meeting my needs and the answer is frankly, no.

As much as I still love using my 950XL, there are now a few deal breakers for it to continue as my primary phone.

  • Continued issues with car audio integration
  • No support for anything but the most major of applications

I won’t go in to app support much other than to say that there are a few smaller apps (buy tickets for a movie?  Not on Windows Phone…) I’d like to use on my phone but they just aren’t available.  This isn’t really a huge problem for me, but it’s significant enough now and it’s only getting worse.

The real deal breaker for me is integration with my car audio system.  Using Windows Phone as a media player has never been very good, but after a few dozen iterations of Groove music, it had finally gotten to a place where I could start up my car and drive away confident that the music would start.

That started to change about 6 months ago with an update that started to break the auto play and since then it’s been getting worse and worse.  It finally reached a point I was no longer willing to put up with it and so it was time to start looking around for a new phone.

Choices

The two choices, of course, are iOS and Android.

Apple has done a good job of creating a very curated ecosystem and they charge you for the privilege of getting in to their gated community.  I consider an iPhone as Apple’s stance on privacy is second to none in the industry, but the Apple tax and the inability to customize the phone put it out of contention.

That left Android, but unlike Apple, Google has no privacy stance when it comes to harvesting your data for their advertising needs.  However, there is another Android build out there that isn’t Google, Lineage OS.

Lineage is the fork of the old Cyanogenmod after it imploded and it’s still relatively new, but it seems to have momentum behind it so I decided to give it a try.

Of course, Lineage needs hardware to run and that means tracking down a phone.

A while ago, a friend gave me his old Samsung Galaxy S4 after he upgraded to an S7, while the S4 is pretty long in the tooth, I used it to install Cyanogenmod to play with and didn’t have any issues.

I had also picked up an ASUS Zenfone 2 a while ago to use with Freedom Mobile (aka Wind Mobile) as a WiFi hotspot. I’ll go in to more detail about it later, but for now let’s just say it turned out to be a poor choice.

That meant looking for a new piece of hardware, and my requirements were for something decidedly mid-range as Freedom Mobile is just starting it’s LTE rollout and the selection of phones that work with it are limited.  So for the time being I wanted a phone to tide me over until some more options are available.

After some digging round I found a Motorola G4 Plus online for just under $300 which looked like it would do the job.

Installing Lineage

Installing Lineage on a phone requires a few things:

  • An unlocked boot loader
  • TWRP recovery
  • The Lineage OS for the phone

My first attempt to install Lineage on my ASUS Zenfone 2 went poorly, unlocking the boot loader was easy enough and TWRP installed without issue, but something went drastically wrong with Lineage.

After installing Lineage, the phone went in to a boot loop, with nothing on the display.  Normally this would not be a problem as most phones have a way to get in to fastboot mode through a hardware key combo.  The Zenfone 2 doesn’t, which means you have to have a functioning OS to get in to recovery mode.  Since the boot loop never brought up the OS, the Zenfone was effectively bricked.

That was unfortunate, but if I’d managed to get Lineage up and running without bricking one piece of hardware I don’t know if I would have considered it a complete success 🙂

So, after waiting a couple of days for the G4 to arrive, I proceeded to a second attempt.

The G4 has a locked bootloader and Motorola makes you go through some hoops to unlock it, but once it’s done the phone is ready to go.

Installing TWRP went well, but strangely it has a tendency to disappear once in a while from the phone.  It’s easy enough to replace and since the G4 does have a hardware key combo to get in to fastboot mode, it’s not like the phone becomes unusable because of it.

Installing Lineage was easy enough as well, you can follow along the instructions on the Lineage Wiki for how to do it.  Once the Lineage was installed, the phone booted in to a shiny new Android 7.1.1 install.

GAPPS

Of course one of the primary reasons to use Lineage is avoid having a lot of Google services on your phone.  My first attempt at using Lineage was to leave all Google apps off of the phone.

This worked with the base OS and quite a few applications, but anything there were a few issues, mostly related to location services.  Applications like Outlook worked fine, but as soon as something required location services (like Here WeGo for GPS) things started to get funky.

Long application pauses, failure to load, missing functionality (screens you couldn’t get by because they were missing controls) seemed to be the order of the day.

In the end I decided to do a minimal install of GAPPS (the Pico install package), just enough to get the Play store running, which included location services.

Of course Google location services is one of the most intrusive apps Google makes, it send back “anonymized” location data to Google all the time.  You can opt out, which is what I’ve done.

App Stores

Once the base OS is up and running and GAPPS is installed, I wanted to avoid the Play store as much as possible and so I’ve installed to alternative app stores.

  1. F-Droid
  2. 1Mobile

F-Droid is an entirely open source app store, to the point of being overtly aggressive in their open source requirements (FireFox doesn’t meet their guidelines and is going to be removed in the near future).

1Mobile is the next best think to the Play store as it pulls the APK’s from the Play store in addition to the apps they have.

Of course for most “pay” apps I had to end up going to the Play store as 1Mobile just doesn’t have the coverage required on the pay side of apps.

The Launcher

One of the big things about Android is that you can customize just about everything, including the launcher you use.  Lineage comes with Trebuchet, the stock Android launcher which works pretty well, however coming from Windows Phone one of the things I really missed was some kind of notification count on the icons.

Trebuchet doesn’t support this, but another popular launcher, Nova, does and so I installed it.

So far it’s been quite good, with only a minor issue of Outlook not showing notification counts.

Another issue with Trebuchet is the number of widgets it supports, there seems to be a lot of apps that no longer support Trebuchet where as Nova is supported by everything I’ve found so far.

The Keyboard

The stock keyboard with Lineage works, but beyond that it’s nothing special and perhaps it’s biggest issue is the lack of Emoji support.

My first thought was to use the Microsoft Hub keyboard, which I did for a few days, but it too lacks Emoji support so it was replaced.

I ended up using the AnySoft Keyboard, it’s highly configurable, available through F-Droid, it’s open source as well.

The only annoyance I have with it is that you need to hit a long press on the emoji key to get a list of emoji to use, a short press simply inserts the smiley.  Not a huge deal, just something to get use to.

Applications

I’m going to cover a few “core” apps that any phone needs here, but I wont’ go in to things that are more personal preference (like IM clients and social networking apps).

  • Weather: Android has lots of choices for weather, but a lot of them are pretty gaudy as far as I’m concerned, however One Weather seems like a good choice and is highly customizable.
  • Music: The stock music apps is functional on Lineage, however it doesn’t seem to remember it’s last playlist very well so whenever my car connected to it, it started playing a random selection of my entire music library instead of the last playlist I was listening to.  Music Player Pro on the other hand is a very capable music player and has been flawless so far.
  • Mapping: Avoid Google Maps means finding an alternate mapping solution, coming from Windows Phone means I am very familiar with Here Maps so installing Here WeGo (the Android version of Here Maps) was an obvious choice.
  • Passwords: I’ve used KeePass as my password safe for years and Keepass2Android is a very capable version of KeePass for Android, including OneDrive integration.
  • Bluetooth Connections: Stock Android doesn’t seem to remember volume settings for different Bluetooth devices, so I installed A2DP from the F-Droid store which allows for complete customization of what happens when a Bluetooth device connects to the phone.
  • Mail: Mail apps on Android seem to be a mess in general, the stock mail app isn’t very good so I’ve install Outlook, which is Ok, but not nearly as good as Outlook on Windows Mobile.
  • Browser: The stock browser on Lineage is based on Chrome, I’ve installed Firefox, along with uBlock Origin and Ghostery.
  • Caller ID: Truecaller is available for Android of course so it is installed to avoid scam callers.
  • Office: For some reason MS Office says it doesn’t support my phone, so I’ve installed LibreOffice Viewer to handle any office file formats I need to view.

There are a few other apps (OneDrive, OneNote, etc.) I’ve installed, but of course those are dependent on what services you use so I won’t go in to detail on them here.

Other Items

Overall the new system is running well, but there are a few thoughts I’ve had on the experience:

  • In the current build of Lineage for the G4, whole phone encryption is broken, it seems to be a know issue so it will likely get addressed in a future release.
  • The default install of Lineage doesn’t seem to set the default ring and notification sounds, I had to select them otherwise the phone didn’t make any sound.
  • Android has a “screen save” mode, that is kind of like my 950 XL’s passive screen mode but it keeps the backlight on, which makes it too bright to keep on your nightstand.
  • I installed a 128g SD card, a Kingston card with an 90/80 read/write speed, but Lineage continues to think it’s “slow” and any app I put on it stutters and is slow to load.  I suspect it must be a bug in Lineage, but for the time being I’ve put my media on the SD card and it seems to run fine.  Applications I’ve moved to the primary memory and there are no issues there either.  The only thing is that installing a new app will, by default, go to the SD card and I then have to move it.  There doesn’t seem to be a way to use internal memory as the default install location for apps.

Vinsic Stand Qi Wireless Charger

mobile-category-inverted

When I purchased my Lumia 925 and added the wireless charging to it, I picked up several of the DT910 wireless charging stands.  These were great and I really like them.

However, the size difference between my old 925 and the new 950XL meant that these small stands no longer line up with the charging coil and don’t work.

I’ve been looking for a replacement for the 910 for a while and I’ve finally found one.

The Vinsic Stand Charger is designed for larger phones and works with the 950XL.

It arrived and I was surprised by how light it was, it seems well-built but almost feels empty.  It comes in two pieces, the main body and a slide in stand to keep it upright and hold the phone.

I did have one slight problem with the unit when it arrived, a bad USB cable.  It would start charging my phone and then after a few seconds stop.

I contacted their support and they quickly identified the issue.  I didn’t both RMA’ing the unit, I just pulled a new USB cable from my pile 😉

Otherwise it’s been working flawlessly.

The only issue I have with these chargers (and it is with the 910 as well) is that they all have a charging light on them.  As I have this unit on my nightstand, I really don’t want a nightlight, so I’ve put a piece of tape over it.