iN8sWoRLd Wed, 21 Mar 2018 19:17:33 -0700 Wed, 21 Mar 2018 19:17:33 -0700 Pico Playing a powerpoint on the conference room TV without a laptop <h1>Lugging a laptop down to the conference room</h1> <p>I thought I had solved our safety officer's problem a couple years ago. He had a bunch of videos he needed to show during his training classes but it was a pain to lug a machine in and set it up before each class. I set all his videos up as private videos under a youtube account, then set the TV to log into that youtube account and showed him how he could use the YouTube app on the TV to play them during his class. </p> <p>I noticed he had started dragging a laptop to the conference room again recently. He was connecting it up, booting it up, logging in to it, opening the MS Powerpoint application and running a Powerpoint which doesn't change very often and then shutting it all down again. Apparently requirements had changed and he needed to also show a powerpoint with additional information. He has to run lots of folks through the course so it takes multiple scheduled times over several weeks to complete. The conference room is shared and his time slots are broken up so he can't just leave his machine hooked up either. </p> <h1>Can't we just play the file from the &quot;Smart&quot; TV?</h1> <p>The TV in the conference room is a <a href="">Sharp LC-60N5100U</a> which is a 60&quot; 1080p LED Smart TV (2016 model) so I figured I'd look into ways that he could use whatever software is built into the TV to play the presentation.</p> <p>This TV won't play Powerpoint files directly and I'm not sure if any do. It has built in apps to show other types of common media (Pictures, Videos, Music) including JPEG images and since Powerpoint can export slides to JPEG that should work using the &quot;Pictures&quot; app.</p> <p>The Pictures app is simple enough to use, once it opens he can navigate to the USB drive with the arrow buttons and drill into whatever folders he needs to access the images.</p> <h1>Some problems</h1> <p>I soon found, however, that the default export (at least in Office 2013) is in standard HD quality (1280 x 720) which doesn't fill the entire screen on a full HD (1920 x 1080) screen. There's a trick you can use to export in full HD. It requires editing the registry - this is dangerous, you've been warned.</p> <h2>Fixing the output so that its true HD (1920 x 1080)</h2> <ul> <li>In regedit navigate to: HKCU | Software | Microsoft | Office | 15.0 | Powerpoint | Options</li> <li>Create New DWORD (32 bit) -&gt; <code>ExportBitmapResolution</code></li> <li>set as: <code>Decimal</code> value</li> <li>Set value to: <code>144</code> (default is <code>96</code> which is 1280 x 720 HD, 144 is full 1920 x 1080 HD)</li> </ul> <p>I exported the images from Powerpoint (2013) by choosing:</p> <ul> <li>File | Export | Change File Type | JPEG | Save As</li> <li>I chose a location and hit Save</li> <li>Then I chose &quot;All Slides&quot;</li> </ul> <h2>Exported file naming is just stupid</h2> <p>This worked great except that the file names were stupidly generated. The default mode of export file naming names the files in the format SlideX.jpg where X starts at 1 and increments from there. On the TV Slide1.jpg was followed by Slide10.jpg, etc. At first I thought (incorrectly) that since I had less than 100 slides that I'd be able to just manually rename 9 files: Slide01.jpg ... Slide09.jpg and the TV would play them in the right order. I was wrong because apparently most TVs play files (including music files if you're using a music player app) according to their location in the file allocation table (FAT) and not according to the file name at all! Before I learned this I had already gone down the rabbit hole of figuring out a way to export the files with proper naming. While this doesn't ensure they will play in the correct order, it makes the files easier to sort and find which is important so if I do this again it will be useful. </p> <h3>Fixing with a visual basic module</h3> <p>The <a href="">solution I used</a> was posted on by John SR Wilson on March 30, 2011</p> <p>Open Powerpoint ALT+F11 to open VB editor Insert a module paste in the code:</p> <pre><code>Sub savemejpg() Dim osld As Slide On Error Resume Next MkDir Environ("USERPROFILE") &amp; "\Desktop\jpgs\" For Each osld In ActivePresentation.Slides osld.Export Environ("USERPROFILE") &amp; _ "\Desktop\jpgs\Slide" &amp; Format(osld.SlideIndex, "000") &amp; ".jpg", "JPG" Next osld End Sub</code></pre> <p>and <strong>run</strong> that module which will dump the files out to the desktop into a folder called jpgs with a filename format with three positions which will work for huge powerpoints up to 999 pages. Even though the TV doesn't care about the naming I thought that the export to disk would put them in the right FAT order.</p> <h3>Saving the file naming module for future use</h3> <p>I exported the module I created to a file from the Visual Basic editor (with the module selected): File | Export File which saves a Basic file (.bas) to disk. In future I can easily import this module into other powerpoint files by opening the VB editor (ALT+F11) and choosing File | Import File and selecting my saved module. You could just create the file manually - create a file with .bas extension with the code from above and add this as the top line (name of the module is in quotes):</p> <pre><code>Attribute VB_Name = "SaveAsImages"</code></pre> <h2>Still didn't work!</h2> <p>I was convinced this would be enough but in my test the TV displayed these correctly named files starting with Slide39.jpg! Since I had copied these new files over to the USB into an already existing folder on the USB, for my next (and last) test I deleted that old folder on the USB, selected all (CTRL+A) the properly named files in my &quot;jpgs&quot; folder on my desktop (which I made sure were in the correctly sorted alphabetic order), copied them all (CTRL+C) and pasted them (CTRL+V) into a newly created folder on the USB. This did the trick and the files appeared on the TV in the right order.</p> <p>So its possible that I could have skipped the file renaming step above and just re-copied and pasted the improperly named (but correctly sorted in file explorer) files to a new folder on the USB and they might have played in correct order.</p> <h2>Play the files over the network</h2> <p>Leaving the USB in the TV and manually updating it as needed is easy enough, but if you share up a folder on your machine and your TV is on the same network you could use the built in Smart TV media apps to navigate to that share as well. </p> Fri, 16 Mar 2018 12:58:00 -0700 technology office Role-playing Related Web Series <p>Cheap digital video production and free (or very cheap) internet-based venues for them has resulted in a wave of niche-interest low budget web video series. Fan-made productions are certainly not new and someday I might catalog all of those fan films based in the Star Trek universe which I loved, but making more episodes of an already successful TV show with an established format seems somewhat obvious. For role-players, the idea of translating their fantasy role playing worlds onto the screen in live action film grows out of the LARP (live action role-playing) tradition where games are acted out IRL (in real life). This genre is not for everyone, and there are a lot of &quot;in jokes&quot; in most of these productions which only someone familiar with role playing will get, but the work and love that went into all of these productions is just awe inspiring.</p> <p>This post is intended as a list of videos and shorts about role players or where role players in-game stories have been translated into a video format.</p> <p>I don't intend to include video series of people actually role-playing like <a href="">Acquisitions Incorporated</a> (AI) or <a href="">Critical Role</a>, there are just too many and except for AI none of them really hold my interest very long. I'm also not going to include videos where actors are role-playing in one or two episodes of their regular show as in <a href="">Stranger Things</a>, <a href="">Freaks and Geeks</a>, or <a href="">Community</a>. </p> <p>I'll try to update this post with all the role-playing related fan flicks I find, please feel free to suggest more and I'll update the post.</p> <p><strong>Journey Quest</strong> (all three seasons) 2010, 2012, 2017</p> <img class="pull-right" src=""> <p>Created by Matt Vancil. imdb describes it as a series that follows a &quot;group of dysfunctional adventurers on a quest to discover and destroy the mythical Sword of Fighting ... a comedic adventure through the fantasy world of Fartherall.</p> <ul> <li><a href=";list=PLB600313D4723E21F">Full Playlist</a></li> </ul> <p><strong>Gamers: Humans and Households</strong> (3 episodes) 2013</p> <img class="pull-right" src=""> <p>Created by Matt Vancil. this very short series flips the genre where a group of actual fantasy heroes attempt to deal with the hazards of normal life in a roleplaying game set in the mundane (real) world.</p> <ul> <li><a href="">episode 1</a></li> <li><a href="">episode 2</a></li> <li><a href="">episode 3</a></li> </ul> <p><strong>Gamers: Dorkness Rising</strong> (full movie) 2008</p> <img class="pull-right" src=""> <p>Created by Matt Vancil. No, not &quot;Darkness Rising (2017)&quot; this is instead the tale of a gaming geek who is trying to write a serious module playtesting the game with his disruptive and immature friends. The action shifts between the game world (and their game personas) and the real world where they play the game in the back of a game store.</p> <ul> <li><a href="">full movie</a></li> </ul> <p><strong>Standard Action</strong> (three seasons over 6 years) 2010 - 2015</p> <img class="pull-right" src=""> <p>Created by Joanna Gaskell. gets panned on imdb and the writing is definitely pretty silly, but the characters are endearing and the in-jokes can be funny.</p> <ul> <li><a href="">season 1</a></li> <li><a href="">season 2</a></li> <li><a href="">season 3</a></li> </ul> <p><strong>One Hit Die</strong> (two seasons) 2013 - 2015</p> <img class="pull-right" src=""> <p>This fantasy genre web series uses a mock-u-mentary style comedy to tell the tale of a party of adventurers</p> <ul> <li><a href="">episode 1</a></li> </ul> <p><strong>The Guild</strong> (six seasons) 2007 - 2013</p> <img class="pull-right" src=""> <p>Created by Felicia Day. Not technically role-playing but had to include in the list because its just awesome. Now over 10 year old, The Guild tells the story of a group of friends who play a MMORPG (massively multiplayer on-line role-playing game).</p> <ul> <li><a href="">episode 1</a></li> </ul> <p><strong>Larp</strong> (2011)</p> <img class="pull-right" src=""> <p>Created by Sean Keller. This is a fantastic short film that follows a group of Larpers who have a run-in with some real-world crazy folks, romantic side quest.</p> <ul> <li><a href="">full 18 min movie</a></li> </ul> <p><strong>The Wizards of Aus</strong> (six part series) 2016</p> <img class="pull-right" src=""> <p>Created by Michael Shanks. Perhaps not technically role-playing related but uses so many gaming tropes that I think it counts. Australian comedy series about Jack the Wizard who has had enough of life in the Magical Realm and decides to migrate to the real world in an Australian suburb.</p> <ul> <li><a href="">full playlist 17 videos</a></li> </ul> <p><strong>Pagan - A Medieval Short Film</strong></p> <img class="pull-right" src=""> <p>Created by Optio Productions, an independent film company formed by a bunch of film students. This is also technically not role-playing, but is definitely in-genre based in medieval england but with magic.</p> <ul> <li><a href="">entire 1 hour short</a></li> </ul> <p><strong>Harmon Quest</strong> (two seasons?) 2016</p> <img class="pull-right" src=""> <p>From the producer of Rick and Morty, Dan Harmon. A suggested submission, this is an animated series (not live action) but is animation of people playing a role playing game so it gets a pass. note: the full series may not be available free.</p> <ul> <li><a href="">episode 1</a></li> </ul> Wed, 14 Mar 2018 20:11:00 -0700 gaming video Moving out of Wordpress and into picocms <p>This site has undergone a fair amount of change over the years. I've tried to keep a changelog of sorts every time I've moved the furniture around. See the <a href="">Site History</a> page for more details about the various software I've used. Most recently I was using a self-hosted <a href="">Wordpress</a> install. While some things became easier with Wordpress - from simple site search and tagging to widgets and full site statistics I found that over time I was actually writing less and less mainly because it put a slow, bloated website between me and the final product. Wordpress was simple to use - you don't really need to know anything about the technologies it employs to use it to publish to the web - but there's a certain amount of &quot;latency&quot; involved in its daily use.</p> <h3>Wordpress workflow didn't fit how I wanted to work</h3> <p>I found that most of the time when I wanted to write something I would open a text editor and save it somewhere on my local machine. I'd work on it for a while and when I thought it was ready I'd copy and paste it into the live Wordpress install. I would inevitably find something wrong with it, or there would be a comment that would make me re-think what I had written and I would need to update the post. The original file was now out of sync with the one in Wordpress. Wordpress had become the system of record.</p> <p>Yes, I'm aware of various other means that might be employed to publish to Wordpress and have tried a few of them but what I wanted was to be able to maintain my posts in plain text (preferably <a href="">markdown</a>) in a folder structure that made sense to me and control and publish those documents to the web using <a href="">git</a>. </p> <h3>Security</h3> <p>It was also a huge pain in the ass constantly worrying about updating Wordpress (to say nothing of the many plugins I used over time) and it slowly became much more of a hassle than I was interested in dealing with. I wanted to just write again. </p> <h3>To DB or not to DB that is the question</h3> <p>The 900 separate blog posts I had written since 2002 existed solely as data in a database. The things that having a database offers include search, grouping like posts or providing a means to offer similar posts to the reader through the use of keywords or tags associated with the post. These are things which make it easier for <em>readers</em> of the site - to find more things I've written that they might enjoy - but it doesn't help me <em>write</em> anything new. Also, all of my posts were locked up in a database running on a remote server. I had backup copies of the database of course and I could certainly set up a local webserver, install PHP and a mysql database, configure it all and import that database if I wanted to run a local copy of the site - but this was a far cry from having my posts in plain text files that I could open on any machine with or without a local web server. Between all the core functionalities and hundreds of available plugins for Wordpress my desire for a more minimalist web publishing workflow was going to be a big change. </p> <h3>Exporting my posts</h3> <p>The first step was to export my posts from the Wordpress database using the Wordpress XML export function (in Tools | Export). Thankfully Wordpress as an open source project values the rights you have to your own data. Try getting all of your images or posts out of facebook when you decide you want to use something else. I used the selection to not include media with the posts since I was just going to move my uploads folder manually. </p> <h3>Converting the XML to markdown</h3> <p>Right now at home I don't remember what I used exactly. I converted the file at work on a Windows 7 machine and I'm fairly sure I used the pre-compiled version of <a href="">wpXml2Jekyll</a>. I'll update the post later if I find I was wrong. The resulting .md files had a lot of different types of markup which would need to be reviewed and standardized no matter what I ultimately decided to do with them.</p> <h3>Choosing PicoCMS</h3> <p>Over the last year I had tested out a bunch of different approaches to flat file web publishing: <a href="">Jekyll</a> and Grav among them. <a href="">Grav</a> was closer to what I wanted and while I actually ran Grav in a subfolder of the site for a few months I found it a bit confusing. I was really looking for something very simple and more like Blosxsom which still runs my <a href="">notes</a> page. <a href="">PicoCMS</a> is a simple set of scripts that gets me very close to what I wanted.</p> <p>Setting up pico was very easy and the <a href="">docs</a> should be sufficient if you're interested in setting it up yourself. So far I've only needed one additional plugin - <a href="">Pagination</a> which provides some next and previous page functionality on long lists of posts.</p> <h3>The markdown header</h3> <p>The exported markdown posts now had a nice YAML header:</p> <pre><code>--- layout: post title: Firefox 55+ crashing on armv7 date: 2017-12-02 15:12 author: Nate comments: true categories: [chromebook, firefox, Technology] template: blog ---</code></pre> <p>The variables in that header can be accessed when processing a page. I currently don't have a plan for how or if I'll use the comments and categories variables but its nice to know there were comments on the post at one time and what the tags were I had assigned in wordpress at the very least. I decided not to bother with trying to preserve associated comments because I intended to integrate Disqus for commenting going forward. I prefer that commenters own their own comments and to not end up being the steward of another person's writing again. </p> <h3>Out on a limb with twig</h3> <p>Pico builds web pages with twig templates and I wasn't familiar with it. If you grasp the idea that web page content (the text you read) can be separate from formatting (how it looks), twig just provides a further abstraction for laying out a page when processing content. Twig is like a page skeleton to which CSS and content can be applied to generate the final HTML page you see in the browser. The <a href="">twig homepage</a> makes the case for itself, but I can only say that it was easy enough to get the site set up pretty quickly once I understood what was going on.</p> <h3>Is themeing a word?</h3> <p>Before I could really get to work I had to decide on a theme to use with pico. Since I already have some experience with <a href="">Bootstrap</a> that seemed a natural place to start. I selected the <a href="">clean_blog</a> theme which is bootstrap based although there were several bootstrap based themes available.</p> <p>I got rid of the minimized versions of the css provided for now. I made some minor cosmetic changes but its obviously still very similar to stock. As I worked on it I took bits and pieces of the various twig files out and created little snippets of text which could be shared across several pages and named them as <code>.thtml</code> (a practice I got from geeklog and still use). These are included as needed. For instance, the navigation bar along the top is something all the pages share so it made sense to have that as a single file. I include that in any twig file with:</p> <p><code>{% include 'nav.thtml' %}</code></p> <p>I wanted to have a drop down menu for all those pages which have no place being across the top of every page. To get that working I needed to include a couple javascript libraries (I used local versions and include them on all the pages using the same method as above): namely bootstrap.js and jquery.js. Some quick markup in my nav.thtml file and some tweaks to the clean_blog.css file makes a fairly serviceable menu. Here's a few lines from my nav.thtml file:</p> <pre><code>&lt;div class="navbar-header page-scroll"&gt; &lt;div class="dropdown"&gt; &lt;a href="#" data-toggle="dropdown" class="navbar-brand"&gt;Menu&lt;b class="caret"&gt;&lt;/b&gt;&lt;/a&gt; &lt;ul class="dropdown-menu"&gt; &lt;li&gt;&lt;a href="{{ base_url }}"&gt;Home&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="{{ base_url }}/about"&gt;About&lt;/a&gt;&lt;/li&gt;</code></pre> <h3>Marking up my markdown</h3> <p>Many of my newly-minted textfile posts referenced images found in the uploads directory inside the wordpress install which I was going to delete. I moved the uploads folder out to the web root, but I still needed to update the posts to point to this new location. Back on my linux machine I used sed to process all of the documents and replace the absolute path from wordpress with the variable twig uses <code>% base_url %</code> for the web root (without the spaces):</p> <p><code>sed -i 's/mydomain\/blog\/wp-content/% base_url %/g' *</code></p> <p>Also, most of the links to images in my posts weren't explicitly classed and the theme I was using in Wordpress was not Bootstrap. I ended up just classing every instance of <code>&lt;img src=</code> to add the class which sets the image on the right side of the page. </p> <p><code>sed -i 's/&lt;img\ src=/&lt;img\ class="pull-right"\ src=/g' *</code></p> <p>When I realized that not all images needed to be aligned right, but sometimes there was an image at the top of the post that I wanted to be the width of the page, I ended up manually going through and deleting that class from a lot of posts. However, I didn't consider responsive design and ended up having to run this to add the Bootstrap class which basically sets width to 100%.</p> <p><code>sed -i 's/&lt;img\ src=/&lt;img\ class="img-responsive"\ src=/g' *</code></p> <h4>Hey, you said this was a markdown parsing project but thats all HTML?</h4> <p>There is so much HTML in the original posts that I probably won't be re-writing them all in markdown unless the mood strikes me on certain posts. Luckily PicoCMS will also parse HTML so I can really just leave them as is. </p> <h3>More about images</h3> <p>Images are another open question at this point. Wordpress had a media manager which is basically a set of scripts that takes your uploaded image and processes it to make some number of resized versions which it stores away (by date) in various folders in that uploads folder. This is nice because you don't have to mess around with resizing images, but its not nice because you end up with a bunch of resized images you probably don't need. <a href=""><img class="pull-right" src=""></a> I've also got a nice piwigo installation which I quite like using that perhaps I should work into the workflow for blog posts. If its important enough to write about perhaps it belongs in that gallery? But at the same time it would be simpler to just have a script which resizes images and files them by date in my new unfettered-by-wordpress folder. That will require some thinking and coding so for now I'll probably just use Gimp to create appropriately sized images and dump them in the uploads folder by date (probably year and not year / month as wordpress did). Open question. I didn't even really have any screen shots I felt important enough to bother with for this whole story. </p> <h3>setting up git repos</h3> <p>I created two bare git repos on my server: one for my content directory and the other my custom theme. I cloned these repos out to my local machine and populated them and committed them back. Then I set up a post-receive hook in each to automatically refresh the two associated directories.</p> <p><code>#!/bin/sh</code> <code>GIT_WORK_TREE=/home/user/mydomain/content git checkout -f</code></p> <p>and </p> <p><code>#!/bin/sh</code> <code>GIT_WORK_TREE=/home/user/mydomain/themes/mytheme git checkout -f</code></p> <p>This way, while I'm not tracking the entire site the two folders I'm working in the most are under revision control and I have a repo for just my documents and just my theme. In case I decide to move the stuff again I won't have to bother with splitting up the repo at a later date.</p> <h3>Commenting and Contact Form</h3> <p>I have always allowed comments on my site but have used different methods over time. Folks have made comments on posts in the past and I'd like to preserve them (and I do have them all) but I stil have to think more about how best to do that. I could just append the comments to the posts so that they live as part of the post going forward or I could code up some kind of artificial comment block which sits at the bottom of the post. In any case I decided early on that I wanted to integrate <a href="">Disqus</a> again for commenting. I don't like having to deal with spam in comments (something Wordpress' Akismet is quite adept at blocking but a concern nonetheless) or being the steward of other people's comments on my own site. Here I am 16 years later worrying about whether and how to preserve something someone posted as a reply to something I said that long ago? Disqus provides a means for commenters to have some amount of control over what they write on other people's sites. To say nothing about having to be accountable for hosting random internet guy's comments on my personal domain. Luckily Disqus <a href="">announced last year</a> that advertising would remain optional for sites like mine so I'm willing to continue using them. The moment they force some click-bait-ey ads into my reader's faces they're gone.</p> <p>The Contact form is another entry point for spam. I don't want to hack together a comment form (as I've done many times before) which I then have to worry about being exploited and possibly ending up being used to send tons of spam hither and yon and getting my server blacklisted. There were plugins for pico to provide a comment form, but after reviewing them they seemed little better than what I could do myself. I settled on a quick and dirty solution and embedded a Google form on a contact page. I still have to work out the theme for it a bit so that its more responsive, but it works and I have Google's spam filtering which is probably even better than Akismet was.</p> <h3>The publishing workflow</h3> <p>So now writing stuff for the website works like this: I have a couple template markdown files with different versions of the YAML header for blog posts or general pages and I make a copy of one of these and modify the headers to start writing a new post. </p> <ul> <li>The /blog subdirectory is for &quot;posts&quot; (like this one) and is based on the date variable in the header (reverse chrono order). If I don't assign the Date: field the post won't show up on the Blog page which is handy when I'm working on something but am not ready to &quot;publish&quot; it. </li> <li>The template: field makes the post render in different ways by running it through different twig files. For example a normal blog post is assigned the value &quot;blog&quot; which uses the blog.twig file. If I use the value &quot;hidden&quot; it runs the post through the hidden.twig file which doesn't pass any of the content and instead just prints a sad line about the post having been removed. This is handy if I want to keep a post in the repo (I want to keep them all obviously) but I want to remove it from general viewing. As it is today the title and date still appear in the listing, just the content disappears.</li> <li>If I define the optional img: field I can override the header image. I may do this for a political posts for example because the default image of a bunch of SATA drives in a server doesn't make much sense for a political rant.</li> </ul> <p>I generally write in a markdown aware editor like gedit or vim when I'm on my linux machines, or notepad++ if I'm on windows (though you do need to add markdown as a language as I've discussed <a href="">before</a>). I save the text file (and any associated images) in the appropriate place, add and commit them in git (usually command line though in windows I might use the GUI) and push them up to the server.</p> <p>While the markdown files are perfectly readable in the editor, its nice to be able to make sure that it will render as expected so when I can I do run a local apache web server (with PHP) to load the page before committing and pushing the files to &quot;live&quot;. pico and a text editor are both very fast so the &quot;latency&quot; I mentioned with Wordpress before is non-existant in this workflow. </p> <p>If I want to work on another machine I can just check out the repos as needed (assuming I have a git client on that machine) but I don't always have a local webserver (especially on Windows). I've tested checking out on android using <a href="">Termux</a> and it worked well (once git was installed and the built in script to set a symlink to the external SD card was run). I'm editing this post right now on a Chromebook in a Chrome app called MME (a markdown editor) and checking in and out under <a href="">crouton</a> though I think I could have used the normal chrome terminal with the right tools. </p> Sun, 04 Mar 2018 20:41:00 -0800 website Convert .GHO to .VDI for use in Virtualbox in Win7 <p>We created a Win7 ghost image in July last year which I was using to roll out to machines directly. Recently I wanted to have a Virtual copy of this image so I could snapshot it before installing some new software to test and quickly get back to my prior state from my workstation. While we use VMware ESXi for the servers I don't have a copy of VMware workstation and I've been using Virtualbox for years and am more familiar with that.</p> <p>I have a bunch of old Ghost images and I know someday someone is going to ask me to restore one for some reason or another so I wrote down what I did just in case.</p> <ul> <li>in diskmgmt.msc create a new VHD set to a suitable size saved at D:\tempdisk.vhd</li> <li>Initiate it (right click in Disk Management)</li> <li>Run the DOS version of ghost32.exe and create new disk from image</li> <li>Select the source of the GHO file and the destination of the VHD</li> <li>Convert the .vhd file to .vdi:</li> </ul> <p><code>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd "D:\tempdisk.vhd" D:\Sysprep-Win7-7-11-2017-final.vdi --format vdi</code></p> <p><a href="">from</a> <a href="">and</a></p> Thu, 01 Mar 2018 14:09:00 -0800 virtualization Firefox 55+ crashing on armv7 <p>Everyone loves the <a href="">Firefox 57 (Quantum)</a> update which made Firefox feel like a contender again, but on the hardware where that speed increase would really be a great benefit - low end arm devices like the raspberry pi or in crouton on arm based chromebooks - it won't run. In fact, Firefox version 55+ hasn't worked on this architecture since earlier this year (2017).</p> <img class="img-responsive" src=""> <p>Something changed after version 52 and Firefox will just instantly crash when launched. I only noticed in September when I got around to updating my Xenial (Ubuntu 16) based crouton install which is running on an ASUS C201 (Rockchip powered 11.6&quot; chromebook) and got Firefox 55. It had been awhile since I'd updated so I didn't realize there was a problem in August when 55 first came out. I ended up having to dig through the <a href="">available builds</a> on Canonical's Launchpad until I found one that would run. The last one that works for me is 52.0.2. I was able to install that manually (with <code>dpkg -i</code>) and then hold off future automatic upgrades (with <code>apt-mark hold firefox</code>).</p> <blockquote> <p>update: a new build for trusty seems to be working on xenial!</p> <p><a href=""></a></p> </blockquote> <p>I found the problem had already <a href="">been reported</a> on Launchpad but the bug appears to be somewhere upstream (Mozilla Firefox) and had already been <a href="">reported there</a> as well. I signed on to the Launchpad bug to offer my info (and be notified) but I was disheartened to learn that Mozilla apparently doesn't commit any resources to arm development at all. They classify arm as a <a href="">Tier 3</a> architecture which means they depend on the distributions to submit patches to them. That means we'll have to wait for Canonical to submit a patch for it to Mozilla, but Xenial is already old so unless they backport a fix from their <a href="">latest distribution</a> (which is Artful at this time) I'll just have to stay on 52. Another option might be to upgrade crouton to Artful when Firefox Quantum is fixed and running on arm under that distro but at this time for crouton Artful is still listed as &quot;unsupported, but may work with some effort&quot; and the most recent posts on the bug report suggest it still isn't fixed for Artful anyway. For various reasons I need Firefox to work in crouton so I'm glad I have a workaround, but Firefox Quantum would be really nice on this slow hardware.</p> <p>A last, and possibly more compelling fix might be to upgrade to a faster chromebook running on an Intel chip and so avoid the arm problem entirely. The <a href="">ASUS C202SA-YS-02</a> is a really nice and ruggedized version of the chromebook I currently use. Designed for educational use it can take a beating and its certified for use with the Google Play store out of the box so I wouldn't have to muck with the stupid script everytime there's a ChromeOS update to re-enable it.</p> <p><strong>update 180313</strong>: while I have removed all past comments, this story is still fresh enough that I thought it was worth including them.</p> <p>On on 2018-01-15 20:25:50 Chris Worsley wrote:</p> <blockquote> <p>see posts #37-40 on the thread you linked in your blog post. Looks like they now have something workable from Trusty onwards. Nice blog btw. I enjoyed reading about what you've done with your C201 - I hadn't realised Play could be enabled by Crosh command, so have been trying that out too on mine. I have Debian SID via crouton on mine &amp; have reverted to Firefox ESR, so now might try that solution in post #40.</p> </blockquote> <p>I replied on 2018-01-17 11:43:46</p> <blockquote> <p>I updated to the latest build: 57.0.4+build1-0ubuntu0.16.04.1 and made the manual change in prefs.js to add the line:</p> </blockquote> <pre><code>user_pref("", "");</code></pre> <blockquote> <p>but still crashed on startup so I've reverted back to 52.0.2 It does sound like they're getting close to a solution though. Also, I do see now that the last poster got it working with the version for 14.04.1 but I'm running my crouton with xenial (16)</p> </blockquote> <p>and I followed up again just a bit later 2018-01-17 12:01:52 with:</p> <blockquote> <p>Once I realized that the solution required the version built for trusty I went back and installed that. I skipped the user preference edit just to see what would happen and it started up fine! I'm using it to write this post. Thanks!</p> </blockquote> Sat, 02 Dec 2017 15:12:00 -0800 chromebook firefox Technology adding markdown syntax highlighting to notepad++ <p><a href="">Markdown</a> isn't one of the Languages supported by <a href="">notepad++</a> so if you find yourself reading those kinds of documents frequently you might want to know about <a href="">this project</a>. Just pick your theme of choice (I'm using default most of the time but the screenshot is from zenburn) and download the .xml file. In notepad++ just click Language in the menu and select &quot;Define your Language&quot;, then click the Import button and navigate to the .xml file. When viewing a markdown (.md) file you can now apply Markdown from the bottom of the Language menu drop down.</p> <img class="img-responsive" src=""> Wed, 22 Nov 2017 11:50:00 -0800 code Technology windows Malwarebytes flags Firefox as malicious for checking Certificates? <p>For many years I have been pushing out Firefox through Active Directory to 150+ Windows machines. Currently all the machines are running Firefox 55.03. One user who runs the Professional version of <a href="">Malwarebytes</a> for additional security noticed a strange detection appearing yesterday. Malwarebytes was identifying Firefox as making outbound connections to <code></code> which, <a href="">as it turns out</a> is a domain owned by Symantec. In Firefox, there is an option (under Advanced | Certificates) to &quot;Query OCSP responder servers to confirm the current validity of certificates&quot;.</p> <!--more--> <p>Certificates are issued and verified by Certificate Authorities. A certificate is a small data file can be used to identify websites, people, and devices. If a website's certificate is stolen it can be used to impersonate that website and a web browser would not be able to tell the difference between the real website and a fake one. A Certificate can thus be &quot;revoked&quot; so that a Certificate Authority can let web browsers know that there is a problem. Traditionally this was done through the publishing of a CRL (Certificate Revocation List) but Firefox switched to using OCSP in Firefox version 28. <a href="">OCSP</a> (Online Certificate Status Protocol) is an alternative method which transmits less information and so uses less bandwidth and puts less of a burden on client resources. However, since OCSP is not encrypted it is possible for an interested to party to intercept the communication and so, build a list of websites that a client visits. Google Chrome switched away from using OCSP in about 2012 and replaced it with their own proprietary method citing &quot;latency and privacy issues&quot;.</p> <img class="img-responsive" src=""> <p>This issue was <a href="">identified last December</a> although it resolved itself right away and remained a mystery to that poster. A similar issue with Malwarebytes was <a href="">reported in January</a> but against Digicert. A <a href="">very thorough writeup</a> from August, 2017 describes how someone else stumbled on the Firefox outbound communication. <a href="">Another post about OCSP</a> which really just verifies that the method works as advertised also happens to mention the Firefox checkbox.</p> <p>But perhaps the ultimate read on this topic is <a href="">Scott Helme's post on Ars Technica</a>. What's frightening about this post is that he demonstrates that Revocation appears to be broken and that the methods being used right now by all the browers are not adequate. I don't believe his test website is currently using a revoked certificate since he's using Let's Encrypt and those only last 90 days. Both Firefox and the latest Chrome showed green lock for SSL in my test today.</p> <p>The question remains open regarding Malwarebytes current false? positive on Firefox's connection to Symantec, but its happened before and its only the tip of the iceberg concerning how our browsers determine if the sites we visit are valid or not and how or even if they let us know when they're not.</p> Fri, 17 Nov 2017 11:56:00 -0800 browser security Technology web The myth that iOS is easier to use <p>Apple hardware used to be great. I had three Mac laptops (and still use my 2008 Macbook all these years later although <a href="">I run Linux on it</a> now) and we still have a bunch of iPods around the house. I have to support countless iPhones at work (though being a BYOD company, I had nothing to do with buying them). The hardware quality has definitely gone downhill over the years - one particularly egregious example was chargers (2011-2012) with wires separating leaving exposed bare wires and there was no way to use any other kind of charger you have to buy a new $80 Apple charger and they only have the one that breaks. I could go on about bending iPhones, and now in iPhone 8 batterys apparently exploding.</p> <p>But this rant is about iOS. There is a myth (much repeated) that iOS is &quot;easier&quot; which sets me off every time I hear someone repeat it. What they mean is -</p> <blockquote>iOS is more like the iOS that I'm used to than something which isn't iOS</blockquote> <p>Its not &quot;easier&quot; by any real measure. What is a real measure? Here's one: Try to use the operating system to get various tasks done and measure how long it takes to get them done, if you can get them done at all.</p> <!--more--> <p>A person making the &quot;iOS is easier&quot; claim, faced with this argument will dismiss my concerns suggesting that I am a &quot;techie&quot; and want to do things normal people do not need to do. This argument falls apart pretty quickly. Its true I want to be able to use the device to do more things than an average user but I also want to be able to do some basic computing on this massively powerful hand held computer and iOS makes even the simplest tasks difficult or impossible.</p> <p>My own experience with this started years ago with a simple request from my boss to put a custom ringtone on his iPhone. I still have to do this for him every time he gets a new iPhone and I suspect there will come a time when we will no longer be able to even get that job done at all. What's the hardship? All we're really wanting to do is move a file from somewhere (maybe your desktop computer) to the phone, then set that file to play instead of whatever file is playing by default for an event. Instead of recounting the BS involved in getting this simple task done in iOS, <a href="">read this</a> if you're interested in someone else's experience (which mirrored my own).</p> <p>But there are lots of tasks which are either super difficult or impossible to get done in iOS. As I mentioned above, many iOS users shrug and ignore me about this until they want to do that task themselves. Then they come and ask me how to do such and such and we waste a bunch of time only to discover that Apple has purposely made doing whatever it is impossible for a reason. Usually that reason is to keep their users inside their &quot;walled garden&quot;. This is the number one reason I left Apple and will no longer buy their products. Accepting these limitations of the iPhone and still being able to argue that iOS is easier to use is difficult for me to understand.</p> <p>Beyond the most basic computer use, iOS controls and restricts what files you can transfer to and from the device. Does that make it easier to use? If you want to transfer files to and from the device as you might expect to be able to do on any computing device and you find you cannot do so its certainly not &quot;easier&quot;. Try to copy a video clip from your desktop to your iOS device. Try to copy a music file from your desktop to iOS (the ringtone example above is basically just another expression of this problem). This one is particularly galling to me as I record my own music which I want to have available on my handheld device. You can't argue that its easier to move files around on your iOS device because you can't do it. My idea of easier is to plug the device into your desktop, have a folder open for a location on your phone, drag some files on your desktop over to it and have those files copied to your phone.</p> <p>When plugged in to your desktop, your smartphone is basically a big USB flash drive. It should be simple to just plug the phone into a desktop, copy files to some folder (even a segregated area inaccessible to the OS would be OK) and then plug the phone into another desktop to retrieve the files. Naturally, I'd like to be able to access those files from the device as I described in the previous paragraph, but even just transferring files to and from so you don't have to carry a separate USB flash drive would be useful (and easier). Not possible on iOS out of the box, and not reliable or simple with third party apps. You basically have to &quot;jail break&quot; your phone to do it. Not something typical iOS users are going to do.</p> <p>Settings on iOS are all in one place. Sounds easy. Except that seems to be the number one problem folks have - they expect that when they are in an application (lets say, Mail) that they will be able to get to the Mail Settings somehow easily from where they are (in the Mail program). They can't. You have to close that program, open up Settings, then navigate through a bunch of menus to get to the Mail settings. Contextual menus would be easier (think of it as a shortcut to those settings from the app you want to change).</p> <p>Dig around to find the wifi connection on iOS a couple times to realize that in almost every other OS its easier to find and change.</p> <p>Don't get me started on iTunes (how is this still a thing that is at all necessary and required for a device) or iCloud (huge number of users who don't understand this, how to get into it or change how its working and there are real privacy questions that users should understand here).</p> <p>The main issue here seems not to be &quot;ease of use&quot; but rather familiarity and consistency in the OS. iOS users like that the OS hasn't changed very much over time and that their new iPhone/iPad works pretty much like their last one. They know where everything is and that familiarity equals ease of use (for them). This is a valid argument especially if you compare iOS to android where the UI on two new android phones can appear to be vastly different. iOS users should buckle up though. <a href="">iOS 11</a> appears to be a whole new interface and will take some getting used to. None of the things I don't like about iOS (and Apple generally) are addressed by this update, but big UI changes might finally shatter the illusion of ease of use for some iOS users.</p> Sun, 01 Oct 2017 07:22:00 -0700 AppleMac ios Virtualbox in Win7 bridged network no adapter <p>I won't get into why, after 10+ years I've switched my work desktop from Linux to Windows 7, but suffice to say its been painful. I still need access to a local linux install for various reasons so where I used to run Windows in a VM under linux, I now need to run linux in a VM under Windows. I ran into a problem which Googling didn't immediately solve and since there were other folks with a similar problem out there I thought I'd write it up.</p> <ul><li>I have a Windows 7 64bit host, with Virtualbox 5.1.28 r117968 (Qt5.6.2) installed.</li> <li>I have a Broadcom NetXtreme 57xx network card on the host.</li> <li>I couldn't get the guest (an Ubuntu 16.04 VM) set up with a bridged network adapter.</li> <li>It would work with NAT, but I needed the guest to be on the same network as the host. I'm used to doing this the other way around (Linux host / Windows guest) and haven't had any problems.</li> <li>In the Virtualbox Settings for the VM, under Network, for Adapter 1 in Attached to: I selected "Bridged Adapter"</li> <li>The dropdown below that (Name:) was empty (it didn't see my host's Broadcom adapter)</li> <img class="pull-right" src="" alt=""><li>This is because there was no service "VirtualBox NDIS6 Bridged Networking Driver" listed on the "VirtualBox Host-Only Ethernet Adapter"</li> <li>I chose Install, Service, Add - and Windows knew that that service needed a driver, but the path under which it was searching for it was borked.</li> <li>I took note that it was trying to find vboxnetlwf.inf but the path was pointing to a Windows Temp folder which no longer existed after the install of Virtualbox. </li> <li> I navigated to that folder under: C:\Windows\System32\DriverStore\FileRepository\ instead, and it installed fine and bridging worked!</li> </ul> <p>Note: Win7 still reports that there is a problem with the network connection but it does work.</p> Wed, 27 Sep 2017 10:03:00 -0700 admin linux Technology virtualization One year with my ASUS C201 Chromebook <img class="img-responsive" src=""> <p>I've been using an <a href="">ASUS C201 Chromebook</a> for a <a href="">full year (see original post)</a> now as my daily driver personal machine. I got mine used off Amazon, there was a sale going on and I think I paid around $120 for it. This tiny laptop is powered by a quad-core ARM 1.8GHz Rockchip RK3288 processor which is plenty quick for daily email, web browsing, reading and writing or watching videos. The C201 is very light - 2.22 pounds according to the kitchen scale and I can just slap it closed when I run off to do something and its instantly on again when I come back to it.</p> <p>In this post I'll go over what I like about this tiny laptop, why its become my daily driver for most tasks, and how I use it with crouton.</p> <!--more--> <p><strong>Hardware</strong></p> <p>The chicklet style keyboard is very usable with good firm spring action and its sized about right for my comfort. Its not a touchscreen (something I think I would miss more if this model could run android apps from the Play store but it at least <del datetime="2017-11-16T11:45:58+00:00">currently cannot</del> <em>read how to enable the Play Store at the bottom of this post</em>) and at 11.6&quot; I consider it the absolute minimum usable screen size. The screen is crisp and bright at its default resolution (1366x768), though it can be switched into a 1536x864 mode in a pinch. Battery life has been very good providing many hours of run time on a charge (charges up pretty quickly), though there obviously isn't room for a big battery in this thing anywhere. I'm usually able to get several days of decent use out of between charges with normal use. The touchpad works well, though most often I'm using a <a href="">Logitech m325 wireless mouse</a> plugged into one of its two USB ports. The speakers are just OK, I wouldn't expect a great sound from something so small and light. Sometimes I'll use headphones if I want to watch a video with a lot of dialogue. I've never used the micro HDMI port since I didn't want to buy <a href="">yet another HDMI cable</a> (I already have standard and mini HDMI cables!) An interesting option on the device is the addition of a microSD slot. This makes it possible to easily bring a bunch of files over to the machine or back it up but I wanted to use it with crouton (see below) and unfortunately it won't play nicely with ChromeOS when the machine goes to sleep. I've ended up using my bootable USB Arch drive which I'm using regularly to boot Arch on various machines anyway.</p> <p><strong>Sharing files with my USB drive</strong></p> <p>One of the two USB ports holds my <a href="">Sandisk Cruzer Fit 64GB USB drive</a>, which is a bootable drive (note: this drive is <a href="">configured</a> to boot on 64bit Intel machines not on the Chromebook) loaded with Linux Arch. With the USB drive plugged in I can access the files on that as needed and save new files to it and in crouton I can use some of my dot files and configurations from that install to make the crouton environment more usable to me. The drive is partitioned with three partitions, a smallish (4GB) Fat32 partition so that when I need to transfer files to a Windows machine I can do that easily, a 15GB OS partition (64bit Arch) and a 40GB Home partition which I keep synced to my older, heavier, and now less used laptop on occassion with an rsync script. What I did here is constructed a folder tree which mirrors that on the laptop (though not a complete copy of the tree on the laptop) and I just run an rsync in one direction pulling the data off the Arch stick over to the laptop. The laptop is similarly backed up to a couple USB drives at odd intervals.</p> <p><strong>But this thing runs ChromeOS?</strong></p> <p>The elephant in the room here is that this is a Chromebook. It runs <a href="">ChromeOS</a>. The paradigm of Google's ChromeOS is that instead of a linux kernel and java virtual machine like in the android OS, they would use a linux kernel and their popular browser application Chrome instead. The idea of being able to do everything in a web browser seemed far fetched when ChromeOS debuted, but it has made a pretty good case for the choice over the years. Now, I'm not a complete Google fan-boy but I do tend to lean more toward Google than Microsoft or Apple and I have to say that after using it now for a year its definitely stable and useful enough for basic daily use. I can see it as a complete solution for students or older folks (I think I might be in that latter camp now myself).</p> <p>The old FUD about how a Chromebook ties you to the cloud for everything have proven less of an issue as more folks have gotten used to using smartphones which are almost entirely cloud-connected devices (few even offer an SD card option anymore), but you can still create files locally on ChromeOS if you want to. I'm typing this post in a program called <a href="">MME (Minimalist Markdown Editor)</a> and I'm saving the file into a folder on my USB drive. One pain in the ass which persists is the ChromeOS cloud printer requirement. I rarely need to print stuff so buying a new printer (which works fine from other machines) just so I can print easily from the Chromebook isn't high on my list. I've thought about <a href="">using a raspberry pi to turn my old printer into a cloud printer</a> but haven't been bothered enough yet to do so. Generally if I need to print I just fire up a &quot;real&quot; machine.</p> <p>I'm not a big gamer, which is good since the only games you're going to be playing on this device would likely be low end, but I would certainly miss the tools I've grown used to having on my grown-up Linux laptops. Thankfully, I can sort of have my cake and eat it too.</p> <p><strong>Using Crouton</strong></p> <p><a href="">Crouton</a> is a set of scripts which make it simple to create a chroot to set up a full linux environment under ChromeOS. The project was started by <a href="">David Schneider</a>, a Google hardware engineer who wanted to be able to run a full blown (Debian) Linux on a Chromebook and over time it has matured to the point that its very usable. It does require you to switch the Chromebook into developer mode which means that every time the Chromebook boots (this is actually rare since you're usually going to just shut the lid and not go through a full shutdown or reboot) you will see a Developer mode splash screen where you have to hit Ctrl-D and be careful to <em>not</em> hit the space bar (which resets the device and takes it out of Developer mode). Crouton isn't something a normal user is going to be messing around with, but its certainly easy enough for anyone to set up.</p> <p>I won't go into setting up crouton which is described exceedingly well in the <a href="">readme</a>, but instead I'll focus on how I've ended up using it. Depending on what I want to do I can end up using crouton as a linux shell only (command line with no graphical interface at all) or with an X server to run graphical programs.</p> <p>Originally I had planned to install crouton to a microSD card, but it turned out that at least with the version of crouton I was using originally (I haven't tested again recently) I wasn't able to suspend (close the lid) without crashing a running crouton instance. Obviously this made using the microSD for crouton out of the question. I just install it to the flash memory of the device now, which sucks less than you might think since I store files I download or generate on my USB drive described elsewhere here.</p> <img class="pull-right" src="" alt="" /> <p><strong>Using just a shell in a Chrome tab</strong></p> <p>Sometimes I don't need a graphical interface, I just need to use a command line utility. There are a ton of great linux programs available which will run without a graphical interface. Some of these I use most often in shell include:</p> <ul><li> <code>mc</code> - file manager</li> <li> <code>emacs</code> - text editor but mainly for docs I keep in orgmode</li> <li> <code>vim</code> - text editor for basically everything else</li> <li> <code>mocp</code> - music player</li> <li> <code>telnet</code> - to log into!</li> <li> <code>whois</code> - easier than hitting <a href=""></a> </li> <li> <code>alsamixer</code> - sound mixer if I can't map keys for these functions</li> <li> <code>ssh</code> - to access remote machines. This would also work from the stock crosh shell I think.</li> <li> <code>abcmidi</code> - a suite of programs to handle abc musical notation (includes abc2midi and yaps which produces sheet music)</li> </ul> <p>Since I updated my crouton install to xenial, programs that depend on ncurses seem to flash when I run in a Chrome tab (mc and mocp) which makes them almost unusable. They seem to run fine when I launch them in a terminal under a full graphical environment, and they always worked fine in trusty. Not sure whats going on, but haven't looked into it too deeply as yet.</p> <p>Launching my crouton installation is as easy as <code>CTRL + ALT + t</code> which opens a crosh shell in a tab, then typing <code>shell</code>, then <code>sudo enter-chroot</code>.</p> <p><strong>Using i3</strong></p> <p>There are a lot of linux programs which require a full graphical environment.</p> <ul><li> <code>gimp</code> (think photoshop)</li> <li> <code>libreoffice</code> (a full office suite)</li> <li> <code>evince</code> (.ps and .pdf reader)</li> <li> <code>firefox</code> (yes, Firefox is very slow on this machine under crouton - still useable, though without 3D acceleration you're not going to be watching videos in it.)</li> <li> <code>vlc</code> (to play my own music and not be beholden to cloud providers!) then install <code>vlc-plugin-fluidsynth</code> and navigate to Edit | Preferences | All | audio | audio codecs and point the sound font to: <code>/usr/share/sounds/sf2/FluidR3_GM.sf2</code> (or similar sound font) in order to play Midi files (created with abc2midi)</li> </ul> <p>I can start up a separate linux windowing environment (i3) with <code>sudo enter-chroot xinit</code> at the crosh shell. The utility of running gimp or libreoffice seems pretty obvious, but why Firefox on a Chromebook which runs Chrome? I have a bunch of add-ons I like to use in Firefox and Firefox sync is set up on so many of my machines. Chrome is fine and I use it all the time, but there are times I would rather be using Firefox - its nice to be able to do so.</p> <p>I decided early on that the suggested XFCE desktop wasn't for me. Usually I have a specific program I need to run and all I want to do is switch into linux and run that program. I might need to have another window for a file manager (usually <code>mc</code> is good enough here) to move some files around to act on, but I don't need an entire linux desktop. <a href="">I've been using the tiling window manager i3</a> in Arch for some time now and while it has some usability quirks (and a little bit of a learning curve), its a much better choice for slow hardware. Since I was hoping to be able to run some real programs on the device I wanted as little overhead as I could get. <a href="">Installing i3 in crouton</a> is documented in the crouton wiki so theres no need to rehash that here.</p> <p>Since I'm using i3 on my <a href="">bootable USB drive</a>, I just copied my <code>.i3</code> directory (where the i3 <code>config</code> file lives) over to my crouton home to get a jump start on my settings (I don't just symlink it over since I wanted to use some different settings on the C201 than I do on other machines. One important difference is that of a different Mod key since the Chromebook unsurprisingly has no Windows key). I also installed <code>feh</code> which I use to display a background image for i3 (and set a path to that in my i3 config). Then I installed <code>scrot</code> (to take screenshots when I'm in that mode) and <code>imagemagick</code> (for the <code>mogrify</code> command) which I use with <code>i3lock</code> so I can just hit <code>Mod key + l</code> to lock the screen if I want to leave the machine sitting around in that mode. I could also hit <code>CTRL + SHIFT + ALT + arrow</code> to go back to ChromeOS and lock the screen there with <code>Magnifier + l</code></p> <p><strong>making xterm usable</strong></p> <p>In graphical mode I usually still need to be able to run a terminal for shell commands (and the shell programs need to run in a terminal if I want to run those in the graphical environment) so having a nicely configured terminal is important. The default terminal I have configured in my i3 config file is xterm and its pretty uglyby default - the font is too small and I like to use light colors on a dark background.</p> <p>I copied over the <code>.Xresources</code> file from my USB drive which has settings I like.</p> <pre><code>xterm*faceName: Liberation Mono:size=11:antialias=true xterm*font: 7x13 ! terminal colors ------------------------------------------------------ ------ ! tangoesque scheme *background: #111111 *foreground: #babdb6 ! Black (not tango) + DarkGrey *color0: #000000 *color8: #555753 ! DarkRed + Red *color1: #ff6565 *color9: #ff8d8d ! DarkGreen + Green *color2: #93d44f *color10: #c8e7a8 ! DarkYellow + Yellow *color3: #eab93d *color11: #ffc123 ! DarkBlue + Blue *color4: #204a87 *color12: #3465a4 ! DarkMagenta + Magenta *color5: #ce5c00 *color13: #f57900 !DarkCyan + Cyan (both not tango) *color6: #89b6e2 *color14: #46a4ff ! LightGrey + White *color7: #cccccc *color15: #ffffff </code></pre> <p>You also have to tell X to use that file (I'm using the <code>xrdb</code> command to do that).</p> <p>My <code>.xinitrc</code> file has:</p> <pre><code>xrdb -load ~/.Xresources exec i3 </code></pre> <p>I occasionally use emacs (but mostly because of org-mode) which I like for its list management functionality. I keep a bunch of .org files on the USB drive for notes and I set up emacs in the linux environment on the Chromebook to look like it does in my Arch install. This is basically just copying my <code>.emacs.d</code> folder and .emacs init file over to my home directory (and installing <code>emacs</code> of course). The only change I need to make is my <code>initial-buffer-choice</code> path so that the file I want to load up when I start emacs can be found. I don't have a clue when it comes to lisp, so I'm not going to offer any advice here.</p> <p><strong>update 170922</strong>: one important thing I do is access work servers and since I could never get the VPN to work on the Chromebook to access our Sonicwall (turns out ChromeOS doesn't support XAUTH) I had about given up. Recently we enabled SSL access to the firewall so I can now use the official Sonicwall Mobile Connect application (the first time you connect remember to add the port :4433) which works fine. The bigger issue with this is that there isn't any free RDP client that works for me on ChromeOS (the Google Chrome RDP app requires Chrome to be installed on the server), but I just switch over to Crouton and run <code>rdesktop -f &lt;server&gt;</code>. I use tkabber to access my jabber server also under Crouton.</p> <p><strong>update 171116</strong>: It turns out that this model will run the Google Play Store! For whatever reason, while Google approved it I guess ASUS didn't so while Google announced that it would work, you can't enable it in the settings. BUT, you can manually enable it. From the crosh tab (CTRL + ALT + T) just type:</p> <p><code>shell sudo su mount --bind /usr/local/chrome_dev.conf /etc/chrome_dev.conf restart ui </code> The screen will go black and refresh and when it reappears you'll have a new icon in your applications for the Play Store. I've got all my favorite Android apps running now. Hearthstone works well, as does ES Explorer and many others. The only problem with this is that you need to run this every time you reboot since its only temporary. I rarely actually turn the chromebook off so thats not an issue but just remember when you do an update to Chrome that you'll have to re-issue these commands. ...and I suppose updates could potentially break this someday.</p> Tue, 04 Jul 2017 15:58:00 -0700 asus chromebook linux Technology