Sunday, August 30, 2015

Chromebox: Dell vs Asus

Both Dell and Asus sell a Chromebox. The Dell CB retails for $329 and while you cannot buy the MU075 from the Asus store it is available for $250 for the exact same 4GB i3 processor. In fact if you look at the boxes they have exactly the same ports in exactly the same places. Chances are pretty good that the MOBO is a reference and they are selling the same MOBO in similar boxes (just the power button is in a different configuration but the same place).

One interesting caveat is that the Asus product description is fairly generic in that is claims "Powered by up to 4th Gen Intel® Core™ i7 processor". None of the online stores that I checked offered an i7. It might be interesting to note that the processor speed is 1.7Ghz and that might have confused the copywriter... except that Amazon does list "CHROMEBOX-M020U SFF I7/2.1 4GB 16GB" but is not actually selling it themselves. (yet another confusing buying experience). Unfortunately for the $1348 price you get more for your money if you buy a Pixel i7. But that too is a different story.

So basically the i3 Chromebox leans toward Asus. There is a savings of $79 and you can put that to a memory upgrade (which I did) and now I have my daily workhorse driving 24" and 27" monitors.

Amazon Instant Video or Netflix

I'm do not know the psychology of the blog title so I'll say it up front. Netflix is a better product.

First of all Netflix has a player for just about every device out there. That includes my Tivo brand DVR, Android phone, iOS devices, and probably every desktop browser out there. Compared to Amazon Prime Instant Video which does not seem to support my Android phone or Tivo. Clearly Amazon is trying to force their Fire players.

Secondly,  the video browse, search and player on Netflix is biased toward playing and streaming not upselling. I recently searched for a movie "Tim's Vermeer". When I searched for it on Netflix they politely told me it was on DVD only and suggested how I might get it. When I did the same search on Amazon I was presented with a whole host of videos for purchase obfuscating my search results. And quite frankly the user login state, at Amazon, makes just wanting to watch videos next to impossible. Amazon is not in the streaming business.

Amazon Prime... I call bullshit. You're not free. You're always trying to sell me more than I really want. I do not buy enough regular shit to justify the free shipping because everything can be shipped free if I'm willing to wait. And on that note... I know you artificially delay picking from inventory to make sure you deliver per the window because when I make the same purchase from Google and they give me the same delivery window it still arrives in 2 days.

Sunday, August 23, 2015

Turbo - Requirements

I think I can put the requirements into 3 categories. Not because any or all are less important than the others but that they can be accomplished in these groups rather than leaving parts dangling.

Getting Started
  • CRUD files using websockets
  • CRUD records from a SQLite DB
  • build a completely self contained executable (execute from rootfs)
  • are you sure you ant to leave the page if not saved
  • remember cursor position
  • identify the syntax highlighting to use based on file extension

Basic Integration
  • simple filemanager
  • split columns and rows
  • save all
  • tabs
  • choose and save theme
  • override themes with a PROD theme to prevent failures
  • execute make commands; needs to decide on the standard subcommands

Advanced Integration
  • GIT
  • Go
  • zquery
  • mobile
  • authentication
  • collaboration
  • zquery prompt the user for values
  • zquery graphing through D3js or GraphViz

Other things that need to be done
  • add zquery from DB instead of shell
  • zquery export to chromecast

This should complete version 1... and I know there are some advanced features that might not make it.

Turbo - Introduction

I'm not sure how many parts this is going to take. I think most authors actually write the whole article and then find sensible places to split the article. Here's what I'm thinking about for the moment and the basic outline:

  1. Introduction
  2. Requirements
  3. Tools and libraries
  4. The implementation
  5. The final project
  6. Next steps
Over the last 8-10 weeks I have been writing reports using SQL. The database I've been connected to is SQL Server and I have had to export the reports in many different formats including: dot, csv, tsv, text, table, html, and even xlsx. I also needed to email the file to a distribution list and I needed to upload it to an s3 archive. One thing I was hoping to implement was that I was going to be able to produce the same export just in different format. That meant that I needed to store my SQL in glossary form and that I could be assured that the one SQL statement would produce exactly the same results regardless of he format.

I've been using .sh files (bash) and some bash script-foo to get things going. Now I have nearly 50 reports and I feel like I'm losing the library battle. And so the Turbo project begins.

As a historical reference Turbo Pascal, C, C++ and Assembler are where I lived for a stretch of time that represented my greatest learning. (most learning in the least amount of time). So, in part homage and part fond memory and hopes for the future, I named this project Turbo.

(anyone wanting to contribute in any way is welcome)

Saturday, August 22, 2015

Kiosk Mode

I would really like to get my chromecast running in kiosk mode without having to cast my URL from my chrome instance on my desktop.  In fact I'd like to have multiple chromecast devices connected to multiple displays geographically distributed. The business use-case is having a dashboard in operations as well as the support departments... and in my home office too. But since I want to be able to hand these things out to managers and remote workers it needs to be a little more flexible. I originally thought to use a google for work account but the hidden costs rack up quickly and the concise documentation is non-existent. While I'm into sweat equity in my career this is not one of those projects with a high return on investment. Especially when there is an iPad app that makes more sense.

There are a number of Intel/Compute-sticks that might do the job, however, to paraphrase from the CEO at Meteor many times we just want to get the work done.

"88% agree that collaborative work environments have better morale"

Someone touched off a nerve in me this morning because this quote is total bullshit. Google For Work attributed the quote to Reconteur.
I did a search on the Reconteur site and found that the quote in question comes from the "special reports" section of the site. I'm not sure what this means but the article was behind closed doors and yet good was quoting it. Seems that this might have been an advert without stating it was an advert.

Without being able to read the original source material and accompanying research I cannot directly challenge the statement except that since this was an advert it is not likely real. Not to mention that the claim itself has many holes.

  • what is a collaborative work environment
  • what is the opposite environment
  • is software required for a collaborative work environment
  • which software, does it have to be Google for Work specifically
It doesn't take an ivy league researcher to figure this out. The root cause of higher morale in the work place has multiple components from the product, the people, managers, principles and the customers. It's also BS to say 88%... of what? of the bottom line or some other fraction therein.

A quick google search yielded plenty of results. I picked one. Collaboration was not mentioned once. In my next search this article and research concluded that allowing pets in the workplace would improve collaboration.

Finally, I think the writers at Forbes might have a better take on morale in this article. "12 habits of highly collaborative organizations" and they do not mention software or google once.

Friday, August 21, 2015

Shutdown leads to 7 minute installation

I have no idea what just happened.  As I have maintained with the exception of Skype and some in-house file sharing I do very little with my MacBook Air. Point in fact I had a Skype call yesterday afternoon and when I stepped away from my desk my laptop was still running just fine.

This morning I noticed that my MacBook was powered off. My machine was not doing anything in particular but I was concerned that it might be DEAD. I finally got around to powering it up. After the file vault startup finished the screen went black. I clicked a few keys. I got to a login screen. I entered my credentials. and it went back to a black screen. After a few more attempts I was presented with a "installation complete in 7 minutes" splash screen. All I could say to myself was WTF!

First of all Apple had clearly taken control of my machine and initiated a shutdown. Maybe they did or did not expect me to have the auto-start feature enabled or not. Who knows. And then it was the 7 minutes that just slayed me. My ChromeOS devices will always download in the background unless I initiate the upgrade and even then it can be accomplished in the background. And finally the update is simply a matter of rebooting... 10 seconds.

These events from Apple are spooky and disconcerting.

Thursday, August 20, 2015

Google cannot define SOHO

Actually Google can define SOHO but it has no meaning to Google.  Many years ago I registered a vanity domain for my family. Unfortunately I was not fast enough to get a .com domain as a squatter got there first. Shortly there after Google started offering Google Apps for domain users (100 users for free). I got one of those. Fast forward to the present and Google has discontinued the free Google Apps and replaced it with the not so free Google for Work.

Sadly there is nothing concrete about the pricing except the per user ($5 or %10 per month)... and that there is a per device license for Chrome devices... and that there is a device console management software app that I also have to pay for; except that a Google Partner said there was a free version without being specific about the features.

Originally I thought "chrome devices" meant ChromeOS in the form of Chromebox and Chromebook. Maybe a Chromebit and Chromebase too. There was also an inkling that Chromecast required a device license in order to be "managed". However, in a response from a Google partner I now have the impression that every OSX and Windows PC may also require a device license. Which has be wondering about iOS and Android too.

** and there is one caveat. If the device was purchased from Google or a Google partner then the "feature" might be included. This seems to be impossible to determine.

So...

  • pay per user (5 users)
  • pay per ChromeOS device (7 devices)
  • pay per Chrome instance on non-ChromeOS devices (2 OSX, 4 iOS, 1 Android)
  • pay per Chromecast (1)
  • pay for the Device Management Console
Doing the 1 year calculation on this setup I would have to write a check to Google for $950 every year. Sorry but I just paid $1300 for a Pixel 2015 i7; while it's awesome when I'm not working from the library I have been using my Asus Chromebox MU0075 almost exclusively. Even so I would not be spending nearly $1000 for this.

The kicker what when the Google Partner offered to "draft an agreement". WTF do I need a formal agreement for? Surely I'm not the ideal customer for this Google property.

If Amazon, Apple and Microsoft are listening they'll hear:
  • create a device that works alone in tablet and desktop mode and supports multiple monitors
  • The device should boot in under 10 seconds and the applications should be sandboxed and use cloud storage for everything
  • create some stick devices
  • universal players for netflix, itunes, amazon prime, google play (the services are not creating customers they are merely me too)
Or we can all wait for what's next.

Tuesday, August 18, 2015

Recursive Select - tree traversal

Walking a tree is not that big of a challenge. There are a few different variations in the SQL language but they are similar enough.

Given a schema that looks like:
create table tree( id int, parentid int, type int);
SQLite:
;with recursive    tree_cte (id, parentid, type) as (       select 1,0,0       union all       select t.id, t.parentid, t.type         from tree t         inner join tree_cte tc on t.parentid=tc.id     )     select * from tree_cte tc     ;
SQL Server:
;with     tree_cte (id, parentid, type) as (       select id, parentid, type from (values(1,0,0) X(id, parentid, type, path))
       union all       select t.id, t.parentid, t.type         from tree t         inner join tree_cte tc on t.parentid=tc.id     )     select * from tree_cte tc     ;
The differences are '+' instead of '||' and "recursive" and a little of the initiator SQL in the SQL Server version.

In a project I'm working on I need to create a graph of the entire tree, however, there are a few constraints. (a) the graph is huge so limit the graph as soon as possible; (b) only report full paths (no downline nodes); (c) a downline node can only be of type '1'. (NOTE: nodes of type 1 will not be separated by other node types.)

The original query returned:
1|0|02|1|13|2|14|2|15|2|16|4|27|4|38|4|19|4|110|9|111|9|112|9|1
Nothing special to see, it's the same as if I had selected everything:
select * from tree
Let's look at the individual paths:
;with recursive    tree_cte (id, parentid, type, path) as (       select 1,0,0,'1'       union all       select t.id, t.parentid, t.type, tc.path || '.' || cast(t.id as varchar)         from tree t         inner join tree_cte tc on t.parentid=tc.id     )     select * from tree_cte tc
     ;
With this output:
1|0|0|12|1|1|1.23|2|1|1.2.34|2|1|1.2.45|2|1|1.2.56|4|2|1.2.4.67|4|3|1.2.4.78|4|1|1.2.4.89|4|1|1.2.4.910|9|1|1.2.4.9.1011|9|1|1.2.4.9.1112|9|1|1.2.4.9.12
But according to my rules there are a few extra lines:
*1|0|0|1*2|1|1|1.23|2|1|1.2.3*4|2|1|1.2.45|2|1|1.2.5+6|4|2|1.2.4.6+7|4|3|1.2.4.78|4|1|1.2.4.8*9|4|1|1.2.4.910|9|1|1.2.4.9.1011|9|1|1.2.4.9.1112|9|1|1.2.4.9.12
'+' when the node was the wrong type
'*' when the node was not a leaf node

This is the final code unless someone posts a recommendation... it is pretty simple:
;with recursive    tree_cte (id, parentid, type, path) as (       select 1,0,0,'1'       union all       select t.id, t.parentid, t.type, tc.path || '.' || cast(t.id as varchar)         from tree t         inner join tree_cte tc on t.parentid=tc.id         where t.type =1     )     select * from tree_cte tc     where not exists (select 1 from tree t where t.parentid=tc.id and type=1)
     ;
and it produced:
3|2|1|1.2.35|2|1|1.2.58|4|1|1.2.4.810|9|1|1.2.4.9.1011|9|1|1.2.4.9.1112|9|1|1.2.4.9.12
The differences being the where clause in the recursive SQL in the CTE and the conditional check in the outer select.
(1) where t.type =1
and
(2) where not exists (select 1 from tree t where t.parentid=tc.id and type=1)
(1) being some sort of a sentinel terminator for quick termination of the recursion instead of exhausting the data.
(2) when there is a mix of nodes where the non-desired nodes appear at different depths in the tree we need to make sure that the perceived leaf node is actually a leaf or the last of it's type.

Feels good to me. Now I have to put this into practice.

Saturday, August 15, 2015

Open Letter to Google - Chromecast Kiosk Mode

Dear Googlers,

In my day to day life I develop software for my employer, customers, myself and my family. In my business and personal life I have fully adopted the Google lifestyle and ecosystem. I have 3 Chromeboxes, 4 Chromebooks, 1 Chromecast and a Nexus 6. I've also registered a few domains with the FREE Google Apps product. And finally I have a few Google Compute Engine and App Engine instances.

I'm about to embark on an experiment to develop some Kiosk apps for my clients operations staff. There will be some sales charting, call queue, as well as messages for the CSRs.

My challenge is that the Chromecast Kiosk-mode information is strictly limited. Many links are dead. And then there is the constant reminder that everything is "Google for Work". I thought I had a FREE GFW account but maybe I don't. I thought to create a one-off GFW account so that I could experiment because $5/mo is cheaper than $25/mo. And I could always cancel the account where my primary domain needs to remain FREE-ish.

While I think I could get $25 of value just managing my devices I think I could get the same value with a $5-single-user domain.

If you really want to convert me to a paying account other than just slamming my account or whittling down the number of FREE domains you'd go a long way to winning some more hearts and minds. Or at least the rest of mine.

Friday, August 14, 2015

individual employee costs - and then there are software services

We don't talk about our failures very often.

A few years ago I tried to start my own software consulting company. That business was wildly successful for my father 30 years ago... but as they say "it's not your father's Oldsmobile". The market had changed and every potential client wanted everything for free (including my advice) or they had a kid at home that was a programming savant.

This is an exploration into the cost of an individual contributor at a technology startup. Keep in mind that in broad strokes there are many more expense areas than just tech. For example:
  • customer acquisition
  • administration
  • supplies
  • hardware infrastructure for everything from development to production
  • straight employee costs
  • tools and skills acquisition
  • sustainability
  • taxes
  • product R&D
  • conferences and related networking
I want to focus on "tools and skills acquisition".

The easiest is "skills acquisition". The internet is full of information and there are plenty of YouTube videos to prove it. I get a lot of good information from YouTube, however, I curate that information as quickly as I can. There are too many, would be pros, selling snake oil by the internet minute. (I recently learned that an internet charity was begging me to watch a video for 30 seconds because that was the tipping point at which Google paid them for advertising associated with their video) And now I understand why some material is actually produced. Keep in mind you're not billing if you're learning.

So let's look at some of other "tools" expenses:
  • cloud storage ($15/mo)
  • mail relay (20K emails/$5)
  • programmer's IDE ($500/yr)
  • database ($700/yr)
  • photo editor ($240/yr)
  • other programmer tools
  • word processors and spreadsheet ($300/yr)
  • shared calendars ($700/yr)
  • webinar ($79/mo)
  • screen sharing (first $799/yr)
  • internet connectivity, certificates ($200/mo)
  • distributed source control($1/mo)
  • upgrades and other subscriptions(???)
I'm going to estimate the cost here using $500/yr is about $40/mo. In total that's about $450 before upgrades and subscriptions.

Now consider the company servers. The smallest "micro" server from AWS or GCE costs about $5/mo but that's not practical to run your business. It also does not include VPN, HA, LB, CI/CD, or other critical services. In total you can expect to knockout at least 4 to 8 servers. And if you are serious about availability that might be a factor of 2. That's going to be another $500/mo for the services you're going to use; then there's another few hundred for the services not yet started and machines just warning the ozone.

So that first employee is generating about $12k per year in expenses before the first contract is awarded.

"You can fail at what you don't love so you might as well take a chance on what you do"
-Jim Carrey(video)

Thursday, August 13, 2015

quibids or ebay

I would like to say that the jury is out, however, they're back and quibids is a NO-GO.

At least with ebay you're not spending money until you actually buy the thing you want to buy. Therefore it's a known cost to you and your making bidding decisions based on what you know. Quibids is a little more slight of hand than that.

First of all there is no point in going into business unless you are intending to make some money, pay some employees, and maybe a little social and community wellness. So I know they have this motive before I even start. If course I have no idea what the rules are... just that they are getting some traction on the local news all over the US.

Here is my issue:

  • for example: TV retails for $1000
  • for example: Quibids buys it in bulk for $250 per TV
  • In order to bid you need to buy bids... at $60 per 100 or 0.60 per bid
  • Every time you big (a) the bid amount goes up $0.01 and the house gets $0.60
  • And if someone bids with less than 10 seconds left the clock  resets to 10 seconds
Here's where everything get's a little sticky... look at this picture:


This Apple iPad (sold as new) has a standing bit of $9.67. At $0.60 a click the house has already received more money in the form of click-pays than if they paid retail. For example this iPad sells for $499 retail.

This type of auction benefits one entity. The house. The house depends on the losers in order to meet it's margins.

And here's where things get very squirrely. Many years ago I had an acquaintance who would buy pallets of electronics at auction. Many times he would not actually what was on the pallet but there was some sort of estimated value. If he won he would take his goods home. At that point he would break open the pallet and start selling things off. (back in the days before ebay). The source of these pallet could have been government seizures, foreclosures, bankruptcy etc... Even with some of the useless crap he made money because he paid pennies on the dollar.

So now consider if this iPad, which retails for $499, was purchased in bulk or at auction for $250 (worst case) ... then the house has already made $500. However, as I get to this part of the post the current bid is above $12.40. The house has more than doubled it's money and they have not even shipped the device yet.

I do not know if there is any regulation here... but as far as I know this could be a slot machine. Since the house owns the "bid bank" the house could bid-up until the reserve-like value is reached. Furthermore even their own website call their platform "auction games".

WARNING any news organization that does a puff piece on this type of auction is doing more harm then good. As a matter of community service people should be steered away from this sort of thing.

UPDATE - the iPad is now up to $14.49.... and the clock was down to 00:02... and then there was a flurry of bids and back to 00:10.

** look at that... "100 voucher bid".  That's supposed to cost $60. With the bidding at $1.69 the house has already  doubled it's money.

... and the iPad is at $15.0.  I cannot watch this any more.

Open letter to Mickey Mouse

This is an email I sent to Guest Relations at Walt Disney World. WDW does a lot of good things, this, unfortunately is not one of them:

Let me state that we are satisfied but disappointed on how we got there. My wife and I have been visiting Disney World, twice a year, for nearly 40 years and once we are on property it truly is the happiest pace on earth. And now we bring our kids and we have a great time, every time. It is our preferred [vacation] destination.

We have a vacation planned for [redacted]. And this year we are planning to visit "be our guest" for breakfast on the [redacted]. The path to our reservation was very bumpy. Let me explain.

- we made our resort reservation at about 150 days
- [reservations for] lunch and dinner at "be our guest" is 180 days, however, breakfast is 90days
- when we tried to make our reservation at 90days from or arrival date there were no reservations available

** If you've ever tried to buy premium ticket from TicketMaster you know our level of frustration. 

OK, so we made approximately 6 calls to reservations... what was amazed us was the number of different, inconsistent or incorrect answers.

- the website says that "be our guest" breakfast can be reserved 90 days
- one CSR said it was 180 days
- one CSR said it was 90+10days
- another said 180+10days
- one CSR said that we could fastpass "be our guest", however, fastpass is/was only available at 60 days [if you're staying on property]
- one CSR recommended calling at 11:30p EST, every night, looking for cancellations
- one CSR said the 90day clock started at midnight EST 
- one CSR said the 90day clock started at 6am EST (phones do not open until 7am)
- one CSR said the 90day clock started at 7am EST 

One cannot just make this stuff up. We realize that there are probably thousands of CSRs working for Disney at all times of the day and night. But as my wife put it. What about those people who save their money for years for a Disney experience only to be short changed by misinformation. (I want to maximize my children's experience and I cannot get a fair or reasonable answer)


- What is the official policy or rules?
- Is it possible to get this in writing?
- The next time I call reservations what key words can I use to guide the CSR to the right supporting documentation?

It would be great if someone from the CSR training department would call us with the correct information and an assurance that there is an action plan.

The WDW experience is not getting any cheaper. On the contrary it's getting more expensive. While Disney should be characterized as "too important to fail" it has to be available to everyone. Any economics 101 or Shark Tank student will tell you that increasing prices can increase profits while you lower expenses serving fewer customers.

See you soon Mickey

UPDATE:  I received a reply to my complaint. The optimist in me wants to believe but it is hard.

  • if you are staying "on property" then you can make dining reservations 10+180 days in advance of your arrival date and fastpass 60 days.
  • if you are NOT staying on property then dining reservations are "just" 180 days and fastpass is 30.
In the case of "be our guest" it was a new product and Disney was experimenting an many different levels including quick service, fastpass, breakfast, and scheduling. Keeping all of the customer service current has clearly been a challenge; and not the first time we've experienced it.

Finally, When is the best time to make reservations? That's still a mystery. The most recent information that I was given was "The morning of your 10+180/180/60/30 day arrival after 3:30am eastern TZ). This is also plausable as someone needs to update inventory in advance of the next block of reservations and yet there is no real way to know what to add, in advance, as reservations and schedules vary. If I arrive on Monday and I am staying for a week then the "process" that I'm waiting for 180days prior needs to add inventory to account for my complete stay. Not likely. I, also, cannot imagine that the operations staff is going to take the reservation or fastpass system offline daily for maintenance or any other function.

Tuesday, August 11, 2015

Kindle Laptop

In the realm of cheap laptops as a metaphor of paper... is there room for a kindle desktop or laptop?

go-metrics-bosun

I had been trying to get go-metrics to work for a few hours. Ultimately I posted an issue only to be told that they are forking the exporters. And as I read and reread the OpenTSDB code I realized that to did not support Bosun and the current OpenTSDB was socketed and not http+JSON. It seeme obvious to me that Bosun and go-metrics should work out of the box but I do not run that project.

Anyway, by way of announcement here is my code for exporting from go-metrics to bosun. go-metrics-bosun

Sunday, August 9, 2015

Getting a GUI stack together

I'm trying to put together a GUI stack for my IDE and a few other related tools. And I found myself looking at HHVM, Hack, React, and Flux. I'm sure they are all fine technologies and they play for large enterprises. It's the one reason that most large corporations pick some tech, or build their own, and try to stick with it.

I'm not a PHP fan and hack, as a derivative does not take me to a happy place. I suppose if I wanted a job at Facebook I would get as deep as I could. I was surprised, however, while FB is in business to make money, it is still a toy, and yet smart people work there. I wonder if they are on-par with Google and Amazon? I also wonder if they are worried about the fate of their business based on tech decisions?

Saturday, August 8, 2015

Golang vendoring to the rescue

Vendoring is turning out to be a pain in the ass and it is getting worse as there are all sorts of forking both in code and mindshare. Let's review:

  • makefiles (this is a nice model; mine are usually very manual)
  • Dockerfile (my new favorite because I get CI and a dev environment; problem is I'm using the one container for multiple projects which defeats the purpose)
  • batch files
  • idiomatic GOPATH
  • godeps (there are many similar projects)
  • my golo project (forked several times)
  • and now gb
And then there is nice list here.

Of all of these I wish I could get gb and docker to cooperate. My experience has been painful so far. The biggest challenge is integrating many 3rd party packages with their different approaches to vendoring on top of my vendoring strategy simply breaks everything. The lowest common denominator is the idiomatic GOPATH method which I combine with docker (note my comment above)

All this vendoring could seriously undermine the language. I hope someone gets this right soon!

Friday, August 7, 2015

Office Open XML File Formats

Microsoft has to be kidding! I'm trying to help a go xlsx package with it's xlsx implementation and so I went in search of the spec. All 4 parts of the spec are over 50M zipped. I don't have time for that.

The smallest things

In 1986 the Challenger exploded and this year SpaceX CSR7 also failed. While the first was a human tragedy and the second an economic and scientific failure there is a lot to be learned.

There are certain things we take for granted in system design; whether it's o-rings or tank struts. We have an obligation to test and monitor all the things we depend on when designing any type of system.

  • if you're laying concrete then the mixture is important
  • building a roof then wood rot might be important
  • when composing an application with 3rd party libraries it's important to know if there are any bugs
  • if a subcontractor says a strut is supposed to support 10K and only supports 2K
  • or if you have no idea what the operating environment for an o-ring might be
There is no doubt that verifying everything you depend on is costly and so that's where the cost benefit analysis needs to be done. If the cost is too high then maybe it's the wrong design, wrong tools, or the business is not worth entering.

Thursday, August 6, 2015

Tectonic and OpenStack

The CoreOS team has announced that Tectonic and OpenStack are working together. When I initially misread the headline I had the opinion that CoreOS was, somehow, in the mix and was now polluting itself. As I read the headline now I understand it to be Mantis + Tectonic + OpenStack.

I'm not sure what the play is here. Tectonic is a commercial venture and presumably Mantis it too. My confusion is trying to figure out how all of this plugs in together. If you look at the CoreOS solution...

  • deploy a PXE server, DHCP, DNS and docker registry
  • deploy and etcd cluster
  • deploy some workers
  • and then launch kubernetes where ever they need to be
And from this point on kubernetes is going to orchestrate it's containers and this will be as they should.

In this illustration OpenStack might exist just below the CoreOS solution but why when this is already addressed? Kubernetes might run in a dedicated container like Rancher and so OpenStack's Docker shim might be used and so the orchestration needs to be better behaved to use OpenStack APIs instead of CoreOS and/or Docker.

Adding all these layers and APIs is not going to make things more reliable. Also, while only aspects of the CoreOS solution are commercial they still need a way to make some money. I hope they figure it out before I move to RancherOS.

Wednesday, August 5, 2015

True Private Cloud

While I do not have personal experience with WD My Cloud I have heard that it's pretty awesome. Essentially all your data can be backed up or mirrored with the drive so that all of your devices can share the data. While My Cloud supports Windows and OSX out of the box they tend to support Windows first and they clearly do not have Linux support. But wouldn't it be great if I could store my ChromeOS data on this device? I think there is an opportunity for Google to work with WD or someone else and develop an application chain that lets my data be mine.

Monday, August 3, 2015

The pleasure of a Chromebox

I have always wanted a laptop. Back in the 80s when Radio Shack TRS-80 and Apple ][ were all the rage, I wanted a model 100.
Since it was only a BASIC interpreter with some limited real world applications like a terminal program... but I still wanted one. The idea of a battery powered device that I could take with me made be very happy.

My next target was the Sinclair. They distributed a number of models. Some required assembly and others were pre-assembled. There were also some other variations.
Later on I fell in deep love with the Osborne. The first and second models were my favorite.  I'm not sure why I liked it. It was big and heavy and the screen was small and text only(if I remember correctly).
The one luggable that I actually own was an IBM that I bought from my father when I moved from Florida to Chicago in the late 80s.
Later I had some luggable envy when my boss came into the office with his P70. It was nice because it had a decent hard drive and it ran OS/2. We used it for everything from documentation prep, slide shows, lab lessons and software development. I remember being on a train just outside of Berlin on a Sunday afternoon wondering if I would give up the computer for my safety.
I had a very serious crush on the Toshiba T3200. At the time I worked for a company that removed copy protection. We were trying to remove the copy protection from Lotus Symphony. Symphony was an all-in-one suite of business apps. Word Processor, Database, Spreadsheet.
Since then I have had a number of laptops. One of my early favorites was a Sony C1VN that had the Transmeta Crusoe chip inside. I recall finally having enough money to purchase my own. I even bought a few high capacity batteries. Battery technology, at the time, was terrible but the laptop gave me a lot of fun. I eventually put Slackware on it and was developing some Java applications. When closed this laptop would fit in my cargo pants.  I took my C1VN across country and produced a daily blog.
Even today there are a number of Sony models that are just darn awesome. As I wrote that previous line I started to look for some models that might make an impression on me but when I looked at the Sony site I found this:
After almost 20 years of VAIO, we're evolving away from the laptop and desktop business. Check out our ultra thin and powerful tablets and feel the best of Sony at your fingertips.
I find this to be interesting as it might be at the heart of the computer experience for us all. Just look at Apple going smaller and lighter. The latest MacBook is less capable because it does not need it. The work is done in the cloud. And the price of the big iron is getting more expensive.

I sure would like a laptop I can fit in my pocket.
I also wanted one of these. In hindsight I would never be able to get anything done but the form was nice. The function was lacking, however, if it were implemented today it might have a few more practical features.
In many of the intervening years I have owned Multiple MacBooks including the original Intel, the second generation plastic, Unibody, 2x MacBook Air, MacBook Pro, and a few Dell laptops.

Then, around May 2015 I purchased my first Google Pixel 2 (i7).
This was not my first Chrome device but my 4th or 5th ChromeOS device.

Even the ASUS Flip is a quality device. It could replace my Pixel 2. It's a very small form factor so to be practical to get a lot of work done it needs an external keyboard and monitor.
Now, after all that... After 6 days in Houston on business I'm sitting down at my computer to get some DEVOPS stuff done, but instead of opening my Pixel or MacBook... I'm using my ASUS MU0075 which I recently upgraded to 16GB. I like my Pixel. It's a good road warrior. Moreover I like the sync'd config, auto updates, 9 second boot time, and consistency.
And so that was the point. It was nice to come home to a familiar desktop even thought it is identical to my laptop.

UPDATE: Someone just reminded me that I once used a Palm Pilot with a modem attachment as my remote console to debug system problems.

another bad day for open source

One of the hallmarks of a good open source project is just how complicated it is to install, configure and maintain. Happily gitlab and the ...