Nextcloud via Proxy on unRAID

The above are two of my favorite software packages at the moment.  So powerful and I’m very content to run it on my own hardware, in house!  In order to get it to work though, I needed one more great piece to the puzzle, NginxProxyManager.

There is a great video by spaceinvader one describing setting this up with his preferred proxy package letsencrypt, but I couldn’t get the mental energy to figure it out.  And even if I did, what happens when I need to maintain it and I’ve forgotten all of it?  So I decided to go with the much clearer NginxProxyManager (I’ll call it NPM despite another project having that name).

First thing I did was create a dynamic DNS address, pointing to my home IP address.  I use but there are a bunch of others that work just as well.  Then I created a subdomain CNAME pointing to that dynamic DNS name and it worked!  The outside stuff is almost done!

Install the Nextcloud app from the App store.  Give it a HTTPS port that won’t conflict with unRAID itself and configure it on localhost as you need.

Next, install the unRAID app for the proxy manager from the app store.  Create the proxy host pointing to your unique HTTPS port for Nextcloud.  Click off HSTS support and “Force HTTPS” and don’t forget “Block common exploits” because who really wants common exploits?  Theoretically you are done – but the one thing that is missing is a certificate!  Thankfully NPM has letsencrypt support built right in.

As an aside here, make sure you have port 80 on your router open and forwarded to NPM’s HTTP port.  You should of course have a HTTPS port open because you need to access Nextcloud from outside!  Port 80 is required to respond to the challenges from letsencrypt!  I found this out when my setup worked fine for three months and then failed because the certificate expired.  Sadface.

You should be able to easily get a certificate in NPM if the above is set up.

Installing the certificate is more challenging though!  You need to copy it over from one docker app to another.  Go into /mnt/user/appdata/NginxProxyManager/archive/npm-? and copy the cert and privkey PEM into /mnt/user/appdata/nextcloud/keys and rename them cert.crt and cert.key respectively.  Sounds tricky, let’s break that down a bit

There is a question mark above – the reason is that NPM will create a bunch of sites and certificates and take care of them for you… but unless you only have 1 site, you need to figure out what certificate is for where!  So, let’s assume you have 3 different certificates.  You *think* npm-2 is the right directory, so let’s find out.  cd into it and run:

openssl x509 -in cert1.pem -text -noout

A ton of stuff should be printed but notice the CN line – if it points to your correct domain, you’re good!  Remember that number. (2 in our imaginary scenario.  I can’t believe you already forgot).

cd back to /mnt/user/appdata/nextcloud/keys and copy cert1.pem and privkey1.pem over.  Rename them to cert.crt and cert.key respectively.  Chown them to nobody:users so that NPM can read them and I would restart NPM to make sure it does.

That’s it!  Really.  But the problem is, as above, our busy minds are like sieves, and YES we will forget how to do this even though we stuck it on our OWN BLOG FOR EXACTLY THAT REASON.  How about a script to make it go down easier?

# Make sure npm-x is pointing to the correct (NextCloud) proxy path - here it's 2 but it may not be on yours!

# Get the latest files
certFile=$(ls -tr $certDir/cert*.pem | tail -1)
keyFile=$(ls -tr $certDir/privkey*.pem | tail -1)

echo "Copying $certFile";
cp $certFile ./cert.crt
chown nobody:users cert.crt

echo "Copying $keyFile";
cp $keyFile ./cert.key
chown nobody:users cert.key

Put that script file in the keys directory, along with a README.txt file pointing to this page so you know what in the world it’s for, and make it executable.  It will take care of the rest.  You could run this from cron if you like, but if so I would make some sort of backup archive of the old certificate files just to make sure you don’t overwrite a good one and not be able to get it back.

See you in 3 months!


Mounting Cloud Drives

Cloud drives are everywhere. OneDrive, Google, Dropbox, Amazon, Box, and a dozen others I haven’t remembered.  You can create your own with OwnCloud or even just WebDAV if you need.

But the problem with having a half-dozen cloud drives (and we all do) is a half-dozen sync apps to interface with them.  That can go from annoying to crippling depending on the app.  Even when you have them working together well, do you always want a sync or do you sometimes want cloud storage instead, so you can free up local drive space?

Leaving the reminder that a cloud-only file is not backed up and should be considered a transient storage solution, what can you do?  Well if you’re on Windows, look for ExpanDrive, StableBit Cloud Drive or NetDrive.  I have no opinion of the Windows version of these, as I run a Mac.

So what do I use on the Mac?

I have both ExpanDrive and Eltima CloudMounter.  I bought the latter first, because it was on a ridiculous deal in the Mac App Store, but I always considered ExpanDrive appeared to be the premier app for this purpose.  I bought it for that reason, plus the fact that it supported Amazon Cloud Drive, which at the time of my purchase was unlimited*[1. Which they quickly throttled, then revoked.  Now you get 1TB for that price – which would be reasonable if it wasn’t so slow, unreliable and inaccessible]!



Supports Amazon Cloud Drive

Available on Windows (and Linux in private beta)


Amazon Cloud Drive is super slow, much slower than the native uploader.

Copying large amounts of files hangs up Finder.  It seems like it splits files into proprietary chunks with a database interface.

No per-file progress indicator.  One global menubar indicator, an if you drop down the menu you will see the file currently being transferred.



Nice Dropbox-style icons to show queued, encryption and uploading status.

Yeah, you saw it… client-side encryption!  This could be significant.  You can transparently encrypt your sensitive files and upload them.

Fast!  Caching seems to handle on a per-file basis.

Cheaper – including a competitive upgrade discount, and many bundle deals include it.


No Amazon Cloud Drive

No information about encryption.  Based on a single password, so it’s probably crackable.  It would also be nice if there was an open source decryptor so you could retrieve your data if your Mac ever blows up, or at least you know that you won’t irretrievably lose your sensitive data.

Again, the encryption – apparently you can configure only specific directories to be encrypted but I can’t see any way to do it.


Each app has its own advantages that the other lacks.  I wonder the real advantage of the Amazon Cloud Drive interface, as nice as it might be.  The first-party app seems to do the same thing, if a little more clumsily.  The encryption for CloudMounter was just released today, so it may have some development and documentation coming soon.  As it stands now, I think I am most impressed with CloudMounter.  I expect development and improvement from both products soon.

The Open Solutions

You can get a couple of open source products like acd_cli (for Amazon Cloud Drive only), the speedster google-drive-ocamlfuse (for Google Drive) and a super cloud-storage toolkit rclone (for several cloud drives).  These can each be used with FUSE so you can mount the remote drives into your file system and use native tools, at least for reading.

The Update

Before I even got a chance to polish and publish this, ExpanDrive came out with a major update to v6.x.  They fixed the responsiveness and added amazing features to their product.  Namely:

It appears now that they are using at least 4 threads to upload, and you can monitor progress in the menubar dropdown (percentage complete).

You can browse the filesystem right from the menu, without opening Finder.  Search files also (which is extremely quick, at least on Google!)

Finder integration, Offline file sync support, file versioning, and probably a few other things.

All in all this is a fantastic upgrade, and reverses my preference from CloudMounter to ExpanDrive.  A solid, solid release.


Steam Controller

The visible and eminently tactile part of the Steam hardware experience is the controller. Steam took a leap and designed something significantly different from the standard twin stick/d-pad “standard”.
The fundamental reason for doing this is that Valve is designing a controller for their platform and not for a subset of games that are already suited for controllers. This is a tall order, and needs to take in FPS games, adventure games, strategy, racing, and everything in between. And it kinda almost works.

I tested a few games to see how it worked.

It’s easiest, though perhaps unfair, to compare to the well known (and loved) Xbox 360 controller.

The Steam Controller has an overall totally new tilt. It is designed so that your thumbs are in place to float over the touchpads, instead of the A/B/X/Y buttons. The shape is more concave than convex, like virtually all other gamepads. The grips of the controller sit nestled in towards the palm/heel of your hand.

Out of the box, the controller feels rather light, when you add the batteries it feels better, more balanced.  It is still lighter than most gamepads, but probably partly because of the different style of haptic feedback,rather than weighted “rumble” motors.

Since the touchpad is central to the operation, the buttons have been bumped down and to the left. Unfortunately this requires a reach, instead of them being instantly available, and locatable by touch. Another side-effect is that the bottom left edge of the touchpad is a dead zone to prevent hitting there when you use the B or Y buttons.

There is no D-pad at all, though the left side can work as one. Since it is a touchpad, though, you can slide up and down (for things like mouse wheel actions), amongst it’s many configurable layouts. This offers a lot more ability, if a little finicky. Both touch pads can be clicked.

The trigger buttons are analog with two “steps” of pull. You can half-pull them for one action and pull all the way to perform another (there is a slight click). There are digital shoulder buttons above that, and a wonderful “squeeze” button under your middle and ring fingers.

Above all of that, there is apparently a gyro inside (motion/tilt tracking, not the delicious Greek food). To wrap all of that up, there is naturally a clickable analog left thumb stick, as well as a few ancillary buttons.

The most powerful part is the software. Without any third-party add-on drivers or utilities you can make extremely fine customizations to the functions of every control, from mouse-vs-joystick type controls, to haptic feedback, to sensitivity. You can configure an outer ring for each trackpad to a different function. You can use a key as a mode switch, to double the number of commands. It is certainly possible to program the controller to handle all but the most complicated and confusing keyboard and mouse scenarios.

You can set up a configuration for each game (and download community-created ones too), and one “Desktop configuration” that can be used to make the controller a general purpose input device, so you can play games without running through Steam. That being said, I haven’t figured out a suitable Minecraft setup yet, and yes that makes me sad.

With that ability comes the caveat. You will need to customize it. You will need to spend time playing with the settings instead of playing with the games. By now, thanks to the preorder and early release, there are the above-mentioned community-provided profiles for pretty much any game. It’s easy to pick one that looks reasonably familiar and tweak it from there.

Nevertheless, it is a totally new design of a controller. You can only pick it up and be instantly familiar with it for some games here and there, maybe like some racing games, platformers and so on, but anything else needs you to relearn what a controller feels like and can do. It will take some time. F1 2013 was instantly comfortable, Portal Stories: Mel took a little getting used to, some various RTS games were and still are a big challenge for me.  Tomb Raider Anniversary was tremendous.

I think it has a lot of promise, and I am still not totally comfortable with it. Valve can easily influence game authors and publishers to build controller support in to the games, and in fact they may already have done so.

We as gamers are not totally strangers to innovation, but maybe we usually expect it from Nintendo. PC gamers are perhaps more locked in to their keyboard and mouse mindset, but this controller is definitely not designed to completely displace the desktop input devices.  Will it displace traditional gamepads?  Time will tell.  Perhaps version 2 or 3 will be even more devastating to them.

Bottom line is, there’s a entirely new niche of game controllers that has been created, and it is currently occupied solely by the Steam controller.  It can control all of your Steam games, and that’s a pretty impressive resume.


My Keyboard Journey

As a professional developer, I spend a lot of time with my hands on a keyboard.

Many many years ago, I was privileged to use an IBM Model M keyboard.  I really enjoyed it, but trends changed.  Microsoft came out with a fancy looking ergonomic keyboard and I had the chance to try it out.  I liked the shape, but the keys – especially the space bar – were rather unpleasant.  So, I went back to the Model M.  I even managed to pick up a “space saver” TKL (“ten key” less) version, which is designed more for server racks

MS ergonomic keyboard
MS Natural Ergonomic 4000

Over time, though, I just used whatever was attached.  My jobs at the time just had a bundled Compaq or Dell keyboard and I just used it.  Unless they keyboard was really terrible, I managed and didn’t make a fuss.  When I started working for myself, I tried out a Microsoft Natural Ergonomic 4000.  They had come a LONG way since the first one, the key feel was much better.

After a little while, I switched to a Mac.  The Apple keyboards are actually pretty good, better than most, but they just don’t have much key travel, this is the nature of their low-profile design.  I plugged in my Microsoft Ergonomic again.  I decided I liked it enough to even get a second one after the first one wore out.

IBM Model M
Two words: awesome.

All of this time, I still had my Model M.  It stayed with me through about 5 moves, stuck in a closet, still has the exceptionally long PS/2 cable (still coiled up, it’s probably 10′ long).  It’s heavy, it’s fairly loud.  It uses “buckling springs” under the keys that gives a unique progressive resistance and feedback.

I never had any problems with my hands and wrists with this keyboard.  I figured it must give your hands enough strength to keep healthy, or something like that.  But, it was PS/2.  So it limited my opportunities to use it.

I started wondering if I could get a better keyboard, a mechanical keyboard rather than a membrane keyboard.  This is the only way to get really good feedback from each key.  Unfortunately, cheap keyboards are so popular because they’re, you know, cheap.  A good keyboard starts to cost something.  I thought about it though, and realized I would pay a fair bit for a really good mouse but for some reason always cheaped out on a keyboard that I use much more… so… I set myself a slightly higher budget and started to search.

It seems like most of the focus these days for these higher-end keyboards is on gamers.  One main feature is called n-key rollover, so you can hit a whole bunch of keys and have them all register.  (Here’s a test to try your own keyboard: hold down both shift keys and try to type “the quick brown fox jumps over the lazy dog”.  Yes, this is challenging.  If you don’t have a similar feature, you may be dismayed to see many letters missing).

There are a number of flavours of key switches, mostly from the Cherry company, they are identified by a color, such as black, blue, red, etc.  It’s very hard to know what kind you want, because very rarely are these keyboards available to try in stores!  I managed to find one or two, and gave it the swat test, and did not like it at all.  (It seems like the one I tried were the blue variety).

Other features are cool, but not that necessary for work, like LED backlighting.  I didn’t need to see this feature, though it would be cool.

My new keyboard
My new keyboard

I finally found in a review a reference to the Matias tactile keyboards.  I checked them out and it sounded really good.  I wasn’t worried too much about the volume, though I heard the Tactile Pro described as “antisocially loud”.  They also made one called the Quiet Pro, though, and I thought that only offered advantages over the non-quiet version.  They had a Mac version!  If the caption didn’t give it away, I got it, and I’m using it right now.  It’s really really good!  It’s really easy to get used to typing on one of these, so that when you go back to a cheap keyboard it feels jarringly wrong.

At the same time, though, I found a wonderful project online called something like TMK which is an open source driver/converter for older keyboards.  With Teensy (or a few flavours of Arduino) you can convert a PS/2 keyboard to USB and add a ton of really cool features to it at the same time.

What this means is… I realized my Model M can come back to life!  I have most of the parts and at least one more on order, but I will build this very soon.  I will report when I get it running.  I will have my choice of great mechanical keyboards, well, at my fingertips.



The recent update of iOS and OS X brought along Apple’s new cash grab photo organizing scheme framework.  To be honest though, it is very slick.  It makes photo storage and access very secure and ubiquitous.  You don’t need to worry about where your photos are and you (probably) don’t need to worry about having space on your devices.  Like Apple’s typical catchphrase, “it just works”.  It kinda represents the ideal of cloud storage – you don’t know or care where it is, but it follows you everywhere and rains your data down whenever you want it.  Also it obscures the sun.  And makes visibility at higher altitudes a bit of a challenge.

Hold on, those last two might not fit in to the desired description.  Just leave them off for now.

Except this convenience is gonna cost you.  iCloud storage prices have come down, but they are still a little on the pricy side.  The lowest end (20GB) is $1 a month, and perfect for the security and convenience of cloud-based iOS device backup.  After that though, competitors start to look a little nicer in the price & capacity range.  Both Amazon and Microsoft have decently-priced tiers that provide unlimited space.

So with the constraints of iCloud storage, they introduced their new Photos app.  (It’s not bad, but it’s no Aperture).  I tried importing and uploading my photos, but as you guessed it, I ran out of space.  I have about 10,000 photos, which is a lot but not a lot a lot, you know…  Now, iCloud Photos is by no means required to use, but having lost photos a few times to hard drive deaths, I decided I need some sort of cloud backup.  It would also be nice to save on the limited SSD space of our MacBook Air by keeping those photos primarily in the cloud.  But iCloud wasn’t it.

Enter Flickr

No not him, another one. Certainly © Disney.

I signed up for Flickr quite a while ago, although at the time it wasn’t really anything that compelling.  Then Marissa Meyer came along and kicked Flickr into the spotlight by giving 1TB away for free.  I instantly became a fan, yet I didn’t use it as much as I’d like.  There was a hurdle.  I could auto-upload from the iOS app, and that was wonderfully seamless (I was pleasantly surprised that many of my photos were up there already).  The hurdle, however, is the desktop.  When you import photos using a card or plugging your camera in… or you do some editing, then what?  I have a couple of plugins that allow you to upload to Flickr, and they work pretty good, but it’s a single-photo manual process… subject to my easily distracted mind (ooo something shiny!)

A few days ago, though, they came out with v4.0 of the iOS app.  I heard some raving about it, but the previous iOS app was already very very good.  Then I looked into the web – and more importantly – the Uploadr.  This is an agent that sits on your computer and does what it says.  It monitors your photo libraries and selected folders and uploads them to your Flickr account.  It deduplicates too, so you won’t have multiple unnecessary copies.

The web now has a camera roll that lets you do bulk operations like batch delete  (oops, I uploaded a screenshot folder) or album management.  It’s a little clumsy at the moment, since it falls back to the old interface in a few places, but already it’s very welcome.

Is it a complete “just works” solution like iCloud?  Almost, but not yet.

The one thing that is missing is the elimination or reduction of local libraries.  It would be nice to have an app that could access your hosted library, and optionally cache locally some full-resolution images, so you get the benefits of both cloud and local photo libraries.

Kinda like iCloud Photos.  Only affordable.



When the Apple Watch was released, I was highly intrigued. I’m an on-again off-again watch wearer. I tend to lean to analog watches, though, something about the “liquid” display of time is very interesting to me. My last watch was a cool analog Timex chronograph. It had the capability to work as a stopwatch but the display was a little difficult to read.  So, I do like me some extra functionality.

The $349 cost of the Apple timepiece was quite a blow to my hopes, though. I had mentally prepared myself for a $300 top end. Still expensive and I can’t as easily justify it as I could an iPhone or iPad.

But I started to see the value of a smart watch.  I again looked up Pebble, the original smart watch success story.

Is it an Apple Watch replacement? Far from it. It’s plastic where the Apple is Aluminum. It has buttons instead of a digital encoder and touch screen. It’s black and white (e-paper) instead of LED or OLED color (whatever it is). But, it was only $199. At that price though, you were getting less than half of the Apple Watch, it was a hard sell.

But they read the market rather well, and boom, they lowered the price to $99.  Also, boom, I ordered one.  Smart choice on their part?  Well, they gained at least one customer they wouldn’t have otherwise, and I suspect it’s considerably more than just me.  I hope and suspect they can move a lot more volume at this “impulse” level.

So on its own merits, apart from being relatively cheap, what does it have going for it?


First of all, there are some built-in apps, like a few basic watch faces, a music control, notifications wrangler, and alarms.

The firmware development has been fast and furious.  There have been three significant updates (including notifications and emoji, quick launch, background apps, fitness tracking, auto-updates) in the last month (or few weeks?).

Third-party app development looks pretty decent.  You can even write apps in Javascript, using their SDK.  The CPU is respectable, as is the RAM, so there’s no dramatic impact to using Javascript that I can detect.  But.  The hard limitation is 8 apps and watch faces, and it doesn’t matter how big they are.  I do kinda understand in so doing they eliminated the need for their users to know anything about resource-wrangling.  But let’s be frank here, this customer base is made up of geeks.  It sounds like a future version of the firmware will remove this limitation and loosen things up a bit more.

You may notice I said apps and watch faces.  These are two categories of software you can have, apps allow access to the buttons and faces are a little more lightweight and require the accelerometer to allow you to interact.  You can scroll between faces with the right-side up and down buttons.  Apps either require a trip to the menu or assignment to long-presses on the two buttons.

There are a fair number of apps in the store, from fitness trackers (a hot category at the moment), to weather apps, to GPS displays, to Starbucks payment cards.  Oh and timekeepers of course.  Because of the 8-app limit, a few popular apps will bundle several small utility apps into the same executable, and they work fairly well.


Perhaps the biggest distinguishing feature of the watch is what they call an e-paper display. This is not to be confused with e-ink, this is really LCD. A low-power, high-reflectivity LCD, so in full daylight the screen is exceptionally visible.  Technically a higher resolution version of what was in my first eBook reader, the Aluratek Libre. Since the power draw is low, the battery life is estimated at about a week. That is very easy to live with, and the big distinguishing feature of the hardware.

There is a potential issue with this display.  If you have polarized glasses, you will especially see dark streaks in it (sometimes without polarized glasses too).  I stick to dark screen displays anyway, so I don’t mind.  When I use polarized sunglasses on my iPhone I notice big color problems anyway so I expect some weirdness anyway.

There are quite a few sensors in the little thing, including accelerometer and compass.
Communication is handled by bluetooth, Bluetooth LE most of the time (Bluetooth 2.1 is used for music control and some more data-intensive processes). This means that a phone or other partner device is required.  Ideally you want something with a data package, but you could certainly get by as long as you didn’t expect to update more connectivity from your watch than your phone will have.  The phone app acts as a proxy (or a bridge) to the Internet.


The fact that I need to add another heading here is a good sign. If the device ended at specs it would be another nice geek toy, and that’s all.

Notifications are a big deal.  It is nice not to have to dig out my phone to see what that noise was about… but sometimes it’s a bit overwhelming.  When I get notifications of email, they often come in batches of 6 or 7 (I have my phone only poll every hour or so).  That can be a little annoying to have the flood, especially when they’re triggered by opening the mail app on my phone. I don’t need any notifications when I’m right there!  I suspect this might be a limitation with the way Apple feeds notifications to the Pebble app, though.

The phone app does a nice job of managing installation, removal and configuration of apps. This is important because of the app-limit. Many configurable apps have a modular chunk of code, seemingly pre-installed in the Pebble app to prevent post-review code downloads.  Some of these have obvious jQuery UI front-ends (or worse), which is unfortunate but understandable… Still, the illusion of seamlessness is gone.  As well as it works, it looks hokey. They should have written their own library, or even just an aggressive CSS makeover to enforce an “App Shop” look and feel.

There doesn’t seem to be a mechanism at this point in the Pebble App Store for paid apps, but most of the more complex apps have “companion” apps you can purchase through the respective phone App Stores.  Having to go through the Apple review process, at least, enforces a little more visual consistency.

Bottom Line

There are only so many things you need or want on your wrist.  You won’t see an explosion of apps on the App Store for these, but a few essentials will rise to the top.

But really, does this thing add to my life?  Hmm.  In a strictly first-world scenario, I’d have to say yes!  Basic apps that you want at hand are really at hand.  The Misfit app is quite good and actually helps me to keep my activity level up throughout the day.  I’m happy to tell people about the weather forecast whenever I can.

It’s not ugly.  There’s no denying it is a big rectangle on your wrist, but the design isn’t too bad.  The plastic is highly glossy and there are lots of skins available if you want to change color. The band is replaceable with any standard 22mm band so there’s a lot of visual variety available for a reasonable cost.

Speaking of that reasonable cost… yes this watch will become obsolete in a couple of years.  But, at this price, is that a big deal?  Maybe by then the Apple Watch will be more accessible.

Linux Networking Security Server Uncategorized

Hack Attack

Someone mentioned they got a bounce from my domain’s email. I went to take a look at the error and discovered a couple of hosts trying to brute force login to my SMTP server. Some quick config changes to create a blacklist, and a fail2ban install and it has stopped now.

Lesson 1: check your logs often
Lesson 2: use SASL
Lesson 3: use complex and random passwords
Lesson 4: install and configure fail2ban or blacklist the bozos with iptables or hosts.deny or something.

I got most of these right the first try, especially the middle two.

Eternal vigilance, they say…


Android… stuff.

So I didn’t pay a lot of attention to the Google I/O keynote.  I just noticed the tweets.

One thing I did notice was the Samsung Gear Live watch – that thing actually looks decent. The problem is a) Samsung and b) Google.

Samsung is of course just annoying.  I’m certain 6 months from now they’ll have 6 different models of the same watch, with varying levels of support for bleeding edge technology, most cool but questionable in their real-world utility.

Google is getting creepily intertwined in everyone’s lives and that would be the big reason I’d want to stay away from that device, despite how neat I thought it worked and looked.  The Moto 360 looks 100 times better but still… Google.

I’m not sure how I would solve that if I was Google.  I’m not sure they can… they have just put themselves in a position where they can’t be trusted.  To tell you the truth, as a techie, I am a little disappointed in that.  I miss the “don’t be evil” Google.

I am excited to hear about Word compatibility in Docs, that should prove interesting.  I want to see what that actually means.


Surface Pro 3

I’m not sure I have an opinion on this thing, just because it is so significantly out of my working style.  That shouldn’t stop me posting though!

It’s pretty clear that MS doesn’t get the tablet market.  When they seem to say “hey we’ve been making these slates for 13 years now, let’s do the same old thing we’ve been doing all that time”, can you take them seriously?  With most new products you have to say “let’s see what the market decides”, but in this case I think it decided a long long time ago.

Besides, a fan?  Really?


Bad Fleksy.

FYI “Fleksy Free” on the Google play store is actually “Fleksy Trial”.  Way to misrepresent your app, folks. I’m back to SwiftKey.

Update: looks like Swiftkey is just as bad.  I didn’t realize it because I had the freebie from Amazon.

Guys, can’t you just be up front about this stuff instead of wasting our time?

Now I’m even tempted to go back to the stock keyboard… 😕