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.

More Diving into Node.js

I’ve been digging through node.js code more over the last few weeks. Coming up to speed on JavaScript idioms and best practices (and a few things that feel like worst practices) . Looking at IDE options to streamline things as node has less structure to it than the languages I’m used to and emacs doesn’t help much on that front.

  • Visual Studio 2015 has some node support but at first look it doesn’t seem to do the sorts of things for JavaScript that it does for C# or C++. It is also terribly slow.
  • There are eclipse based options that I’ve seen. I’ve downloaded a  copy of one option (Nodeclipse) but haven’t tried playing with it much yet.
  • Folks at work use Sublime Text and seem moderately happy with it…not sure that it provides too much more than emacs does though.
  • There’s another free editor that came up called Cloud9 that I’ll probably take a look at. Actually, now that I see their terms, nope…it would have to be something radically wonderful for $20 a month for personal use.
  • WebStorm looks potentially interesting. It seems to get good reviews. It is a paid product but for personal use might be workable and if it looked sufficiently valuable might be worth swinging a license for it at work.

Much more to learn here…got to dig out my copy of Effective JavaScript when I get home and read through it again…I suspect that I’ll take away more from this reading now that I’ve been struggling with the stuff for a while.

A Bit of a Quiet Stretch some Node, Some MongoDB

I’ve been doing more reading on node.js, mongodb and related stuff (a bit of angular 2 in there as well). I got notification that my M3D Pro printer will be delayed by about two months. Work is keeping me busy as well.

On the 3D printer front I need to make a decision soon. I can defer delivery till summer and get a final production model or I can take delivery in my defined time slot and get the early production item that I ordered. I’m a bit torn as currently things are busy enough that I might very well get the thing on time and wind up leaving it on the bench in the basement until summer anyway. On the flip side, I’d like to find the time to get things started.

I do think that mongodb will likely work better for my needs than MySQL. The stuff I’m looking at doesn’t need the hard guarantees that MySQL provides and the flexibility of mongo would be nice. More reading to do. Need to get coding a bit soon as well.

Dedicated Intel Linux Machine is Finally Up

After finding that my two oldest spare computers (old core-2 machines) were dead, I’ve loaded Linux on my workbench machine (madhatter) in the basement. The install was a bit rocky as Ubuntu 16.10 didn’t seem happy booting with the ATI video card the machine had in it. Once I switched that out for one of the old NVidia cards from one of the dead machines things progressed smoothly.

I’ve now got SSH and XRDP up and running. SSH went smoothly as expected while XRDP took a bit of configuration tweaking in order to get a real desktop on the remote session. When it first came up, every window was in the upper left corner of the screen, laid one on top of the other. After installing gnome (not sure this was required, but the web page I found called for it) and adding a ‘dot’ file specifying the desktop manager, things seem to be working.

I’ve added node.js, the compiler set for c++, mono and emacs. This  should get me most of what I need at this point. The main reason for bringing this machine on line was to make sure I could run node stuff that needed Linux but I’ll be happy to have a general purpose Linux target around for various purposes.

I Still Need to fix my Landing Page Redirect.

Mod_rewrite seems to cause me no end of problems so far. I’ve got two URLs pointed at this hosting (one dormant but I’d like to keep it alive). I want apache to redirect my base url to my landing page while preserving access to the other site.

So far I’ve largely managed to either nuke my sister’s wordpress site while successfully redirecting ninecrows or take out everything with a broken rewrite configuration. I thought I had it working at one point or another but it always seems to come back to a caching issue fooling me into seeing the fix working.

Not sure when I’ll get back to this but it is a bit annoying…

Dead Computer, Live Computer

Looks like the spare core-2 machine is likely down for the count. Even with the motherboard completely out of the chassis with nothing but the power supply and the power switch plugged in it seems to immediately shut down the power supply. I may give it one more shot on the possibility that it just doesn’t start properly without at least memory and video but I’m not hopeful.

I’ve started an install of Ubuntu 16.10 on ‘madhatter’ my back basement lab bench machine. This should do nicely for now. I’ll probably wind up buying some low-ish end hardware to replace the dead machine when the back lab bench area gets set up with a 3D printer. Until then this provides a decent Intel based linux machine that should meet my needs.

Once the base install is complete I need to get

  • xrdp installed for easy remote UI access
  • SSH installed (if not there out of the box) and configured for secure command line stuff.
  • tightvnc installed mostly to see if it works better than the free version of realvnc that came pre-installed on the RPi
  • samba to make files available to my windows boxes and hopefully set up for cleaner network visibility.

Hoping that this one goes smoothly. Disappointing the number of machines that have gone flaky recently.

Ubuntu install appeared to succeed. The machine was waiting at a ‘press enter to restart’ prompt when I checked on it this morning.

It is running on a WD ‘green’ drive so may be a bit slow booting. When I left it was still showing just a black screen (after dropping through a ‘how should I boot’ screen) so I’ll see tonight whether this system loaded up successfully. The machine seems ok overall as the windows 10 boot disk works fine.

I did start downloads of the Ubuntu 16 and 14 LTS releases to try tonight if the 16.10 image fails. Hoping there isn’t some incompatibility with core-2 era computers in newer Linux builds.

Back on Node, Minor Computer Troubles

For work and sandbox reasons I’m back into node.js reading. I had bought a paper (used) copy ofNode.js in Practice from Amazon. I found it to be more of a cookbook and less the walk-through I currently need. I’ve since started reading Web Development with Node and Express on my Kindle and found it to be much more helpful. I expect that the other book will be more useful once I’m up to speed and looking for more focused solutions.

Node is still looking like a great solution for quick and easy web UI access to systems that support it (QNX seems like one exception…probably because of V8 support).

I’ve been doing my Linux work on either VMs or my RPi-3 lately. The node stuff is pushing me back towards getting an Intel based, free-standing Linux box online again. Last night was rather disappointing as I powered up my spare, stable old core-2 box with the intention of pulling the windows boot drive out (drive trays) and slotting in a spare drive to load Ubuntu on. The system failed to come up and then died so as to crowbar the supply. I tried a spare supply (to make sure I wasn’t having power supply issues) and got the same result.

At the moment that machine is fully torn down to the bare motherboard with CPU in and it still isn’t behaving. I’ll likely give it one more try tonight or tomorrow night (relatively low mileage motherboard so shouldn’t have problems) and see if there’s a screw causing a short or something.

If that fails, I’ll likely take the back basement work bench system (madhatter) as my linux system and plan on bringing up a relatively cheap core-i5 system when that area gets cleaned up enough to be useful. I should have a M3D Pro 3D printer coming soon from the kickstarter I funded and if this happens I’ll likely put that together in the back area with the new system hardware. Looks like motherboard, memory and CPU can be had for $300 to $400 so not too bad. Still hoping that the core-2 system can be recovered though.



Remote Desktop Working on my Pi-3

For reasons I still don’t entirely understand, XRDP started working properly last night. So far it meets my needs (full screen sizes and ease of use) so I’ll likely be getting on with things and shelve the VNC issues.

I expect that there is a way to make VNC behave as 640×480 isn’t a very useful resolution. My next likely step would be to try tight VNC as the pre-installed VNC version (real?) seems to come fro a very commercially oriented site and I could readily believe that their shipping (free) version is intentionally crippled. This is further suggested as open source clients don’t seem to be compatible with the real VNC server (no compatible security contexts).

Looks like that is the case. The realvnc FAQ shows that adjustable screen sizes for headless systems are only available on their enterprise subscription version. I’ll have to find out how to disable their version and replace it with a real open source version sometime soon.

Raspberry Pi 3 Remote Desktop

I’ve been trying to get my pi-3 setup so that I can run it headless and still fully control it. I’ve found that the pi support node with opens up many possibilities for using it for prototyping work.

After moving it off the guest WiFi (easy oops but no in-house access) and making sure it has a valid IPv4 address I had to find the default username and password (pi and raspberry). Changed the password but I’m not yet ready to add an account (sudoers list and other such isn’t something I want to struggle with at the moment).

Enabled SSH and that seems to be working normally now. I used the text GUI to get this working. I still need to generate a key pair and load the public key onto the pi for convenience.

I’m still working on getting desktop access up and running. I enabled the default VNC server that comes with the pi (realvnc I think). I can connect using the realvnc viewer. So far if I have a display connected this works reasonably. If I run headless then the screen size defaults to 640×480 which is effectively unusable.

I’ve seen suggestions of using the xrandr command on the target. That runs but the only resolution that is supported seems to be 640×480.

I’ve been trying to install tighvnc instead but have been getting fetch errors. Not sure whether I need to add repositories or tightvnc may not be supported on the ARM. We’ll see…