All posts by KyleWilson

Web user interfaces…

Looking at web user interface libraries. I have at least one project that would like some UI functionality with a PHP/Restful back-end and much of its content likely rendered in a canvas using WebGL (and probably three.js but I’m not familiar enough to be certain).

Angular, bootstrap, JQueryUI seem to be names that come up in searches. Angular 2 downplays its UI aspect. I’ve got quite a few books in this area that I’ve read parts of. In the end I expect I’ll just pick something that I have decent documentation for and dive in. Given the WebGL aspects, I expect that much of the heavy lifting won’t really care which kit of tools (or any) I use.

 

Manning and Packt

I’ve been noticing that my technical book buying seems to be shifting in the last few years.

For a long time APress and O’Reilly were my preferred sources for high quality technical books (with a bit of Prentice Hall and Addison Wesley).

They’re still in the mix, but I’m finding more and more that Manning and Packt are front and center. Not sure whether this is the result of an actual shift in the books or a result of my interests broadening out into Java, C# and JavaScript.

 

Glad to have made the switch to KMC

Just had this come up in my facebook memories feed

It is a reminder that while I learned some things I’m happy to have learned while at Amazon, the culture there was more than enough of a mismatch that I’m vastly happier to have made the switch to KMC.

It’s worth taking chances outside your comfort zone but it’s just as important to be willing to call it when things aren’t working out.

I’m much happier as a lead and with a broad based, cross disciplinary role to fill at KMC. Looking forward to future robots 🙂

Repairs moving forward bit by bit…

I received the battery and fan that I ordered. Battery looks good (though  I haven’t yet installed it in the laptop).

The 200mm Fan that Thermaltake suport suggested to replace my broken case fan turns out to be too small. Looks like 220mm perhaps…kind of irritating that the company I bought the case from pointed me at the wrong size replacement fan.

Here’s a ‘fan on fan’ picture…the 200mm fan clearly won’t fit this case.

and here’s the case
I’ve now ordered a 220mm fan from Amazon…we’ll see if that one fits.

A little itchy at the moment as I took the free shipping option from NewEgg for my replacement video card and it doesn’t arrive till next Tuesday. Currently running an old GeForce 770 card in the system. Works but is not particularly inspiring.

It is clear that my old GeForce 970 was dying before it fully failed though. Lightroom had been acting up for some time…I had just put it down to software issues, but the 770 card is much more responsive than the 970 was. Clearly something was up before the end…

Hardware Replace-o-Rama Time

Last weekend the GeForce 970 card in my main desktop failed (had been acting a bit flaky for some time…I had assumed driver problems) and the big side fan on the case ended its life. My Canon S100 belt camera (so much more portable than the 5D) stopped working. My laptop battery also reached zero minutes life.

Working through the replacements now 🙁

Laptop worked out to be straightforward as Amazon had severl options. None had flawless reviews, but at $30.00 I’m giving the most promising option a try.

Video card hurts a bit, but the end result is an upgrade to a GeForce 1080 and no more flakiness (and perhaps getting myself moving on some OpenGL sandbox coding that I’ve been putting off. Ordered from NewEgg so slightly slower delivery than Amazon Prime. Currently running on a 770 card that normally lives in my ‘test target’ machine.

Camera replacement is a bit more of a conundrum.  The Canon S100 was getting a bit long in the tooth but largely met my needs. I have a waterproof case for it as well and that will be missed. I’m looking for a slightly higher end model that might work as an SLR stand-in on my belt on occasion. I’d also like to find something that I can get a waterproof housing for.

The Canon G9 X Mark II looks interesting. Small, light and pretty recent vintage. No waterproof case available and it looks like the low end of the ‘G’ series.

The Canon G7 X Mark II is the next step up. A little bulkier and perhaps less well suited to hanging from my belt next to my phone. It does appear to have a Canon branded waterproof case though as might be expected, pretty pricey.

Leaning towards the G7X as it seems to have the features I really want and is recent enough that I don’t think I’ll wind up feeling that my camera is obsolete as soon as I get it. Still chewing on this for the moment though as I don’t have a vacation in the near future and can wait a bit to make the final decision.

 

 

JSON options in C#…too many options

I’m getting back to sandbox projects on the home front (plenty that got shelved when things got busy) and have been looking at JSON handling in C#.

So far a quick scan of what is out there leaves me with the impression that there are many choices and no clearly dominant one.

So far the open source http://www.newtonsoft.com/json seems to be the best choice. I think I’m going that way for the time being and will look into other options down the road.

Thinking that MongoDB may be a good back end for the data storage I need for the current work at hand. JSON-centric as well so likely a good overall match.

 

Interesting Mashable share discussing stop motion to CGI transition

Cool rundown of some of the transition from stop motion to CGI. In particular I had never considered that motion blur would be an issue with the believability of stop motion sequences. Makes sense after hearing the description though.

Mashable page here video here.

It is pretty amazing how far and fast this technology has moved. I’m wondering what will happen now with VR/AR as they seem to have the potential to follow the same curves. Back end them through something like AWS or a direct peer to peer link and you should be able to look at building multi-person immersive environments. Add in voice recognition to replace keyboard entry. Use either multiple camera views of the participants or limb sensors and you should be able to make it amazingly real.

Pixel-C and Pixel-XL Filesystem Support

I’m finally getting the filesystem support on my Android pixel devices sorted out. I’ve had Samsung tablets and phones previously (until the Note 7 debacle) and they fully support exFAT. Given this is the default for almost everything larger than about 4GB that has been very useful.

When I got my two current Pixel branded devices I thought that my SD card readers were failing. It is not clear that the issue is a lack of exFAT support. Particularly curious as I appear to be able to read NTFS formatted SD cards in read-only mode.

I’m now at s point where things are workable but still rather annoying. Cards that I’ll use with my pixels are either small, crippled and FAT32 formatted (read/write) or NTFS and read-only. Cards I’ll use with my old Samsung tablet are exFAT formatted and won’t work with any of the pixel devices.

I suspect that if I rooted the tablets I could probably find a way to add exFAT filesystem support but I’d rather not make changes at that level. Really wishing that google had paid the extra bit to license exFAT for its flagship devices.

 

One major reason I’m not fond of fork/exec componentizing

In Debian Linux recently the CryptKeeper encryption package fails to properly set passwords due to a bug fix in the command line handling of a package it runs (see this Register article for more details) .

It appears that the code was tested and worked perfectly in previous versions. The tool being used had a minor bug in its command line processing that resulted in the password being accepted even though it was placed improperly. Once the maintainers of this package fixed their big, the string sent by the CryptKeeper package resulted in the letter ‘p’ being taken as the password and the actual password being ignored and it would appear discarded.

It seems to me that Linux could use a universal (or nearly) –API switch that converts the command line and stdin/stdout/stderr to something like JSON with extensive and aggressive checking for validity in all inputs along with tightly specified outputs.

Most programmatic usage of command line tools that I’ve encountered to date makes broad assumptions about the details of the input and output formats for human usable tools. In most cases I’ve seen the checks for unexpected data are weak and porous. This generally results in tools that are fragile and often either need manual tweaking or are simply tied to a specific version of a particular distro. The alternative (less common but I’ve encountered it as well) is to force tools whose primary interaction is with humans on the command line to lock down the original output formats in ways that don’t necessarily work well for people in order to avoid breaking programs and scripts.