Archive for the ‘Uncategorized’ Category

Elementary - Sherlock’s OS?

Thursday, December 20th, 2018

Recently the hard drive in my Toshiba Satellite gave up the ghost, so I decided to stick in an SSD and update the OS.  Originally the laptop shipped with Windows 8 (yeach!).  The laptop kept hanging as it accessed the hard drive.  I tried repairing it by booting off a Windows CD, but it kept locking up.  Even after installing a new SSD this issue persisted.  I could not get any version of Windows to install.

Finally I decided that I would try to install a Linux Distro.  I had previously used Ubuntu and found it to be reasonably reliable and user friendly,  Googling for Distro rankings I came across Elementary OS.  It’s Mac like UI intrigued me, so I set about installing it.  Unlike Windows, the Linux distro installed without issue on my SSD, and seems quite quick.

I happily discovered that Firefox and Skype are available and work quite well although installing them was a little more complicated than running a Windows installer.  Unfortunately I cannot say the same for VMWare Player, so for now running my VMs on the laptop is not possible.  Between the apps that come bundled, and those available for this Ubuntu based Linux distro, I have everything an average use would need on a daily basis.

Unfortunately I installed Loki (v4) and to “upgrade” to the latest OS version of Juno (v5.0) meant a complete re-install of the OS and apps.  Hopefully future “upgrades” will be available using the AppCentre.

Windows 10 Updates Suck!

Monday, August 27th, 2018

I have no issue with Microsoft wanting to patch the OS and bundled applications to make them more reliable.  The problem I have is that Windows 10 Updates are always being applied at an inconvenient time.  If you defer an update you have limited choices, and more often than not, Windows just re-starts on it’s own to apply them without me even knowing one was pending.  I have a bad habit of keeping scratch notes in a NotePad++ file and not saving it.  More than once Windows has re-started and I’ve lost those notes.

The worst thing is, it can take Windows a long time to apply an update and in the mean time you’re twiddling your thumbs.  What was wrong with the way updates have been handled for the last ~20 years?  Worse yet, some of those Windows Updates have caused issues, and required rollbacks.

We all know software is more complex than ever and hard to get right, so why would Microsoft force updates upon their user base?  At least let the user have the illusion they are in control of their own computer.  Apple notifies of updates for Mac OS/X, but they don’t apply them automatically.

Nothing alienates a user more than being inconvenienced by their OS, and there are lots of free alternatives these days.

Buying from Amazon - Caveat Emptor

Tuesday, May 8th, 2018

I just bought a pair of BlueDio T4S headphones from Amazon.  I received the package and went to the Bluedio site to verify my purchase for warranty purposes, only to discover that BlueDio is offering the same headphones to consumers for $56.99 ($3 less than Amazon).

I called Amazon to find out why this was the case, and discovered they do not offer a lowest price guarantee like a lot of brick and mortar stores, and claimed they have no control over manufacturers offering their products directly to consumers.

I find it hard to believe that Amazon does not have anti-competition agreements with their vendors, otherwise why would anyone go to Amazon other than to find the product they wished to purchase and then buy it directly from the manufacturer?  The whole capitalistic distribution model would no longer apply, and Amazon as a middleman could be completely cut out.

The moral of the story is, caveat emptor (buyer beware), you may not get the best price from Amazon, so do some research before buying there.

The Lost Art of UI Design

Tuesday, June 26th, 2012

Today I came across a UI design from Microsoft that made me laugh, so I thought I would share it.

It's Always Good to Offer Choices

It's always good to offer choices

Why Managed Code isn’t Managed very Well

Wednesday, May 30th, 2012

Today I was listening to the 50th podcast @ where Jim McKeeth again brought forth the idea of Managed Code being the future, and JITing for the CPU of the device being better than native compilation in advance.  While I agree with the latter to some extent, I certainly don’t agree with the former.  I think it’s safe to say the vast majority of OS/X and iOS applications are written in ObjC and compiled to native code.  Native is still king in many camps, and even Microsoft is bringing sexy back.

IMHO managed code is not very well managed.  What I mean by that is, every time you load a managed EXE, the code contained therein, is JITted for your CPU.  This increases startup time, and CPU load every time you run it.  Even today, .NET applications start up slower than a Delphi application compiled for a native target.  Most businesses have standard, relatively current hardware so you don’t have to worry so much about whether to target Pentiums with floating point issues.  You can target current generation CPUs and still get decent optimization.  Perhaps not as good as some IL JITters, but good enough, and you don’t need the Jitters to already be installed on the target machine.  What native compilation without garbage collection does, is force the developer to think more about managing lifetimes, and making efficient use of CPU cycles.  The more abstract the language and framework, the harder it is to truly understand the cost of implementation decisions, which only adds to the memory bloat and performance problems that are the scourge of software development..  The resurgence of native compilation seems to indicate that even .NET has gone full circle just as Java did.  It’s great for interoperability, and on the server side, but not the end all be all for XPlatform, or client applications.  Native toolkits still have their place, which is great news for EMBT, and has been reflected in their recent sales figures.

Back in the days of the Dec Alpha and WinNT 3.51, you could choose to convert an EXE compiled for an Intel x86 CPU into an EXE native to the Alpha.  That was done once, and from that point forward you saw the true performance of the Alpha chip.  Unless the EXE changes, or the user changes their CPU, there is no point in re-compiling the EXE, therefore JITting should really be a deployment activity.  IL is merely a method of delivering application code in a CPU agnostic way, the same as Google’s PNaCl used as part of their NaCl.  If the CPU market was more fragmented and there were OSes that ran on multiple platforms using different CPUs, I could see a real advantage to JIT compilation.  As it is now, in the worst case scenario you generate a couple different versions of your EXE for the popular instructions sets, and you’re good to go.

As for whether the UI is native or not for the platform, really depends on the platform.  Sometimes having a unique, or non-standard UI helps differentiate your product.  Sometimes it’s plainly not acceptable to the users on that platform because it doesn’t adhere to platform conventions.  That’s just another choice a developer has to make when choosing a toolset.  What’s nice, is to have choices that don’t necessarily box you in.  That’s why it would be great if EMBT would support ObjPas on the Mac without FireMonkey.  If you don’t want to learn ObjC, prefer pascal syntax, or have a lot of Pascal code you want to leverage,  you would have another option to produce a native UI on the platform.  I don’t know that this would make sense for EMBT financially, but they could certainly help the open source community make Pascal a first class citizen again on the Apple platform.