Windows VM on Ubuntu

I’ve been slowly converting to Ubuntu over the years. Neal Stephenson’s In The Beginning Was the Command Line made Linux seem like such a rage when I read it years ago, but I had always been slave to the GUI. Things started to change a bit when Microsoft started pushing Powershell. My manager at the time said that it would “separate the men from the boys” and I’ve been making a push to start building out a library of PS scripts to use to during Windows Server deployments and migrations. 

I’ve been exposed to *nix plenty over the years. My first job after high school was at an ISP, and I remember watching in awe as the sysops guy would bash his way through things to disconnect hung modems or do this or that. I forget exactly when I started getting into actually using it, but I remember setting up LAMP stacks back in the day to setup PHP apps like WordPress or Wikimedia when I was working at the Fortune 500 firm. Cryptoassets led me further down that world, compiling wallets from source, deploying mining pools on AWS instances. Computer science courses opened me up to the world of sed and regex. I still haven’t gotten into emacs or vim — I’m not a sadist. 

As someone who’s been supporting Windows operating systems pretty much for the past 20 years, one of the realities that one often lives with is the reality of having to reinstall the operating system. I did so many during the time that I operated my service center that it was as natural as turning it off and back on again. Luckily I’ve managed to keep a few boxes up and running for several years now –knock on wood– but my primary work laptop hasn’t been so lucky. It’s five+ years old now and has probably been redone 3 times. The last time I went ahead and took the plunge and installed Ubuntu. I still run Windows in a VM since my job relies so much on it, but I’m becoming more and more comfortable in it that it’s becoming my preferred OS. 

One issue that I’ve been struggling with on this setup is that from time to time my system will halt. I might be in the VM, working on something, or browsing Chrome on the host and it will just lock. Sometimes it seems to be when I open a resource-heavy tab. I don’t know if it’s a resource issue between host and guest, but it’s been annoying while not bad enough that I can’t just reboot and keep going.

Today has been a different story. 

Earlier I noticed that the system was starting to become unstable. Fans were whirring, Chrome was starting to hang up intermittently, so I went ahead and restarted the guest OS. Only this time it wouldn’t come back up. Stuck in a automated system repair. I downloaded a boot disk and tried to mount the system. Wouldn’t even get that far. Finally I said ‘screw it’, unmounted the disk and started creating a new one. That’s when I started getting into raw vs. vpc vs. qcow2, ide vs. virtio, pouring over CPU and RAM allocations. I spent hours trying to get the disk to come back up. I think it had something to do with the format I used when I originally set up the disk. It might have been a swap issue or something, but since I’m running it off of virtio now it seems more stable. Time will tell. 

As for the original vhd, I eventually copied the data file off of the local file system on to an external, and was able to fire it up attached to another Win10 no problem. I deleted the original on my laptop and copied the copy back and was able to get it to spin back up. I think it  may be something to do with the fixed allocation of the vpc file vs. the dynamic sizing of the qcow format. 

Today has been a reminder to check backups on all of my systems. Thankfully Crashplan has Linux support now, so I’m going to get that deployed ASAP. 

 

Programming as a discipline

I’ve really gotten into programming lately. Like really started delving into in a way I haven’t done. I’ve been messing around with scripts and basic programming for some time, but I’ve never been able to complete a large project. I usually put some bits an pieces together to cobble for a function or small library, but my skills were never such that I could really put the larger pieces together. I’ve spent time looking at various libraries on GitHub or wherever, and just been floored by not only the size of the projects, but just the sheer complexity. 

One thing I’ve learned over the years — not just with programming, but skills in general — is that the things that got me here aren’t necessarily the things that will get me too the next level. I’ve learned this most painfully at my current job, where the skills that enabled us to be a fairly decent small IT service shop weren’t the skills that were going to be able to scale and get us to the next level of excellence. It’s one of the main reasons that I finally decided to go back to school to finish my degree. I’ve always been self-taught, and been able to get along with whatever needs getting along, but that same self-directedness has resulted in a bit of lack of discipline in several regards.

One of the main reasons I felt like I needed to go back to school was because my projects would always get to a certain point where I wouldn’t be able to figure out how the various components should fit together. I remember thinking that I needed to learn ‘design patterns’ and that I needed the tutelage of someone who could help me understand how to put the various components together. I was always good at being able to understand the syntax and structure of a language well enough to be able to do some calculation or basic function, but being able to take that same logic and put it into the larger set of data structures and external libraries and inputs, outputs that I needed to make something work — that’s always been where I’ve hit a wall and walked away from a project for the next starting point. 

I can’t say I learned a lot about design patterns per se during my college career, but what it has done is forced a lot of other things that I hadn’t considered, like test-driven development, for example. But one thing has happened in the intervening months and years that I’ve been finishing my degree — I’ve kept programming. It has become a habit — a practice — and I feel the changes in my brain, affecting how I think about problems. And things have begun falling together. I recall specifically looking at a piece of code on someone’s blog and seeing a class’s create function declared as a class function. It clicked. I’d understood the difference between class and instance-based methods for some time, but I never really understood why to use them. Same with a class passing self as a parameter to another class function. These were just two solutions to problems that I had been struggling to figure out for some time. Things are just starting to click in that way. 

I’ve made a habit out of programming, and I recently found myself coming back to one of these aforementioned abandoned projects. Looking at it now with the benefit of a year and a half of additional skills, I’m not so overwhelmed, and I’m thinking I know enough to take it a little further to the point where it will actually work. 

 

Escrow services for new PoW cryptoassets

One of the ideas I keep returning to is an automated cryptoasset escrow service. When new PoW coins are launched they usually go through a period where the miners are accumulating them while the devs work out the wallets and other functionality. There’s a period before the coins are listed on an exchange where the only way to trade them is ‘over the counter’ (OTC). This usually happens in Discord or via some sort of chat, between the miners and whoever wants to get in on the action. About 18 months ago I was one of the ‘approved’ escrow IDs for this project I was helping out on, and saw a little bit about how lucrative it could be. Escrow agents can make a couple percent on the trade. 

Usually escrow between two assets involves the escrow agent holding one of the party’s assets, then delivering to the second party after the first has confirmed delivery of the trade asset. There’s too much room for fraud in this scenario for my taste, so the way I functioned was to receive assets from both parties, so that I can cut out any BS and eliminate the likelihood that anybody gets ripped off. Especially me. The other benefit to this protocol is that I can split the fee between assets. 

 The whole process is rather cumbersome, initiating and confirming details with both parties, generating fresh addresses — and sometimes wallets — for each trade, then monitoring and disbursing funds. Not to mention calculating fees…. it’s all a mess. I kept to tracking things in a spreadsheet, but even then I still wound up with around a dozen columns and formulas. 

I started building out helper functions in a python notebook to help me generate the wallet and transaction management commands, and started working on ways to initiate and complete the whole process automatically via Discord. I even engaged some professional software development firms to quote out a spec, but we didn’t have the tens of thousands of dollars — nor time — to finish up such a project. 

After a few weeks the token was listed on an exchange and the whole idea was moot. However here I am again involved with another freshly-minted token project and have been revisiting the code. I spent most of today trying to get the json_rpc calls to work so that I can start building the wrapper functions that will generate unique addresses, monitor transactions, and send funds. I’ve learned so much over the past 18 months that I think I may be able to throw a proof of concept together that can generate escrow details in a web form. There will still be a lot of manual steps needed, but it still beats copy and pasting addresses and commands between cli and spreadsheet windows. 

The Overstory

So I first heard about Richard Power’s The Overstory last week through a tweet by Naomi Klein. A review in the replies called it “the decade’s most important novel”, and my local library had a copy of it, so I picked it up. I barely put it down over the next 24 hours, and plowed through all 500-pages while ignoring my family. 

It’s basically a story about trees, but ultimately a story about humankind’s relationship with nature. It’s about expanding our concept of time, and understanding our puny lifespans in comparison to the lives of the kings of the plant kingdom. It’s about activism, environmental destruction, tech and artificial intelligence, and so much more. Powers draws on science that shows that trees are not solitary organisms, but that are able to communicate through their root networks and via the release of chemicals in the air that affect not just their neighbors but perhaps us as well. 

The plot is interesting, the characters as well, and Power’s prose is quite amazing. There’s so much science and literature quoted in here that it feels quite educational. The breadth of the story, mainly the multi-generational setup and ensemble casts reminds me both of Cloud Atlas and Neil Stephenson (Anathem, The Baroque Cycle, &c…)

I’m waiting for my wife to read it next, to see what she thinks of it, but it has already affected my thinking in some ways already. I’ve decided to let part of my backyard go wild, and I’m no longer looking at the weeds in my lawn with quite the same vindictive rage. 

The book also makes me recall Paul Stamets 2008 TED talk about mushrooms. Paul was first brought to my attention through Michael Pollan’s book How to Change Your Mind. These sub-surface networks of mycelium are perhaps the largest organisms on earth, transporting minerals between trees and may form the basis of some sort of nervous system for the forest. 

As one who is very distraught about the state of the world when it comes to climate change, the urgency of this book is very critical. What is perhaps the most telling or affirming part of the book is that no matter what happens — even if we lose — that what comes next will prevail, even if it is beyond the span of a human lifetime, or event the lifetime of the human species. So even while 400+ pages of the book seem to be ultimately fatalistic about our heroes being on the losing side of battle after battle, even after the majestic chestnut and redwoods are felled by disease or loggers, there is still the sense that nature will survive, and renew itself after human society has ceased to be. 

 

Learning is the only constant

Spent the day working on several projects. I’m taking over management of several websites for a client, and have been migrating WordPress sites over to my new host and getting SSL certificates updated. Had some issues with that, mainly due to the lack of a trailing ‘.’ at the end of a CNAME record, which messed with my ability to validate the domain via DNS entries. I’ve been looking at ways to manage large numbers of WP sites, and standardize plugins across them. I’m not sure I’m happy with the solution that I’ve chosen thus far, but I’ll save judgement and a post on that for another day.

Figuring out a baseline for templates, to ensure performance, security and monitoring is proving important. Keeping a dozen sites up to date and standardized is a bit more difficult when I don’t want to commit to a paid solution right off the bat.

I’ve been using Google Analytics for a while just to monitor basic traffic to sites, but I’ve started messing around with goals a bit more. One of the sites is a listing directory, and so it’s important to know not just how many people are coming to the site, but how many of them are actually completing a site, and most importantly, what they are looking for.

I’ve also been working on a lot of cryptoasset projects. I’m not sure if I want to talk too much about that on this blog since I maintain another site for that specifically, but I have been learning so much about Ubuntu and AWS instances as a result of that.

I’ve also been learning a lot of Python for programming, it’s my favorite to work with right now, and I’ve really fallen down the rabbit hole with Pandas and Jupyter notebooks for my finance work. Been spending a lot of time focusing on the equities market in addition to the crypto markets. I love it.

Thoughts on completing a three day fast.

So there’s been a lot of talk about the benefits of fasting. I’ve been doing time-restricted fasting for serveral months now just as part of my regular diet. I usually don’t eat until after 11AM, except on Sundays when family comes over for breakfast. I’ve been wanting to do a longer, 3-day water fast for some time, and after a 24-hour water fast a week ago, I decided to start a full 3-day one earlier this week.

My last meal on Wednesday was some chicken wings and mixed nuts for lunch around noon. Probably not the best meal, but to be honest my decision to go ahead with the 3-day was a bit unplanned. I had been thinking about it for some time, so I did manage to prepare. I picked up some magnesium supplements, and some melanin to go with the L-theanine. Since fasting can cause the autonomous nervous system to ramp up, I wanted some things to help calm me down so that I could sleep at night.

Day one wasn’t too bad, ignoring my stomach wasn’t too difficult to do. Day two was a bit more rough. I tried to stay active, and did some yard work, but I could tell I had real low energy. I needed lots of breaks. The bit of hedge trimming I did after noon into the third day was absolutely brutal. I was miserable.

The morning on day three wasn’t too bad, and before I broke fast I tried to do my standard 30-minutes of daily meditation, but it was hard. I knew it was the only thing standing between me and my lunch, and all I could manage was to lay on the floor prone for that time until the bell rang.

I broke with some tree nuts, pistachios, walnuts, and the like, as well as a deli chicken sandwich wrap. It was DELICIOUS. I’ve been pigging out all day today: huge Thai dinner; ice cream for desert; and a bag of popcorn earlier. I’ll have a big breakfast tomorrow and then it’s back to usual.

I plan on doing these 3-day water fasts at the 3 and 6 month mark. I heard that the long-term changes really go into effect after the third time, and I want to see if this has any impact on my chronic cholesterol issues.

 

Universal basic income-ing?

I’ve been following guaranteed income or universal income programs for the past year or two now, and with the recent news about both Corey Booker and Bernie Sanders coming out with job guarantee programs, I thought it was a good topic to revisit.

Universal basic income is the idea that the State should provide all citizens with an income guarantee. There are variations on the idea, but the general crux is that residents receive regular payments to make sure that everyone has housing, food to eat — basic needs. I’m not sure when I first heard about the idea, but my interest in it was no doubt spurred by the question of automation the modern era. Many futurists, Silicon Valley types and research groups are convinced that advancements in artificial intelligence will lead to the elimination of millions of jobs in existence today. The easiest extrapolation is the rise of the self-driving car, and its impact on transportation industry and support jobs. There will be further ramifications for municipalities that depend on income from parking and moving violation fees, but we’ll set that aside for now.

Jobs that are repetitive by nature are the most likely to be eliminated by automation, but there are signs that knowledge worker jobs are just a vulnerable to these systems as well. We will see a revolution in labor and the types of jobs available in the coming decades, the debate today is over what kind of jobs will follow. Past technological revolutions have eventually given way to new types of jobs for subsequent generations of workers, but there is a growing consensus that the number of new jobs created by robotics and automation will not be anywhere near the order of magnitude of those that are lost.

Things look even bleaker when one considers the growing income inequality and concentration of wealth that has been ongoing for the past four decades. Companies like Amazon continue to gobble up more and more businesses, forcing competitors to come on board their e-commerce platform or be driven into the dust. Meanwhile retail workers at Macy’s, KMart, JCPenny’s and so on get laid off, while Amazon workers get forced into slave-labor conditions, pissing in bottles on the warehouse floor instead of taking bathroom breaks in order to keep up metric. And Jeff Bezos becomes the world’s richest man.

Proponents of basic income such as myself feel that such programs are necessary to provide a new social safety net in the 21st century. As Virginia Senator Mark Warner noted at an event for the Center for Strategic & International Studies last week, the social contract of the last 70 years is dead. The idea that a worker today will finish a 40 year career at a company with a pension and a gold watch is as antiquated as the manual typewriter. Today it’s not even apparent that workers will receive a living wage, or health care, let alone retirement savings. Businesses continue to offload labor to their customers, as evidenced by the conversion to self-checkout line in most grocery stores today.

There are a number of Libertarians or right-leaning individuals that like the idea of UBI, but their approval stems from the simplicity and cost-savings of administering such programs, as opposed to the bureaucracy necessary to support the so-called welfare state, but it is not a universally accepted conclusion that UBI programs would negate the need for all other social safety net programs.

After I started writing this post, I found that Finland, which had started a UBI pilot a year ago, has decided to terminate the program, mainly, it seems, because of negative public opinion to the prospect of handing out money without any work requirements. It’s important to note at this point that the actual data from the experiment hasn’t been released, so it remains to be seen what effect a UBI has on recipients’ behavior. Opponents of UBI argue that doing so will encourage more ‘taker’ behavior and lead to more millennials playing video games, proponents such as myself believe that income programs will allow people to pursue new businesses or education opportunities, or enrich themselves in other ways.

As long as we have an economic system that requires low-income earners to spend more and more of their labor for a declining wages, while allowing the wealthy to take a larger and larger piece of the pie by virtue of their existing wealth, the need for redistribution programs such as UBI will become more and more necessary.

Virginia evictions and housing justice.

This NYT piece on eviction records follows some startling research by author and Princeton sociologist Matthew Desmond, who’s book “Evicted” showcased how the loss of housing makes the poor poorer. Desmond and his team did analysis of eviction records across the nation in 2016, and came up with rankings of cities across the United States. I was shocked when I saw this screenshot of the top 10 large cities:

4 large cities from Hampton Roads make the top 10; Richmond is #2. 

Virginia Beach is on there as well, down at #15. Portsmouth comes in at #5 on mid-sized cities, Suffolk down at 28. Now, to be fair, the data that the Princeton team collected is missing data from over a third of the states in the U.S.

This reminded me of an effort by the Democratic Socialists of America’s DC and NOVA chapters called Stomp Out Slumlords, which aims to slow down the evictions by sabotaging the courts system. The court system has turned into an eviction machine, and landlords and lawyers plan on tenants not showing up. I examined the docket in Newport News one day in mid-January of this year and found dozens upon dozens of cases listed. They are usually processed in batches, with summary judgements against the tenants. The DSA program provides tenant rights information, and encourages renters to show up to court.

Hampton, Newport News, and many other Virginia municipalities are currently days away from a May 1st election for city council and school board seats. I have not heard any candidates address the eviction issue directly yet, but I think it will be a huge issue moving forward.  The Pilot just published an article about it, and local NPR call-in show HearSay with Kathy Lewis interviewed the author on air today, along with organizers from Norfolk Housing Justice Network. 

Telling myself again…

I’ve decided that I’m getting the fuck off Facebook. While I’ve probably told myself that I’m going to start blogging again about a hundred times, I think that the social media behemoth has become to big for it’s own damn good and secondly, that I’ve got to force myself off of it if I’m going to be productive and achieve the level of success that I want to. I’ve already deleted the main app off of my phone, but escaping it completely will be impossible for the near term since managing a social media presence is an essential part of brand-management or whatever marketing term you want to use. I am going to ignore my status notifications for the time being and find ways to move my audiences off of the platform. Messenger and Pages apps are still sitting on my phone — along with Twitter, for now — but I’ve decided that I’m only going to go on FB when I need to post something to one of my client pages or groups, and will start using this blog as much as possible.

The other decision I’m grappling with is this pseudo-anonymous identity that this site is named after. I’m sure that anyone with the time or willingness could figure it out without too much trouble, as I’ve had multiple profiles on various sites linked out across the interwebs under this name that probably has enough personal information scattered within it for someone to make a case for it. I just did a Google search and found one profile that needed a name change, but it looks like things are getting a bit obfuscated now that this reggae dub producer has started using the name.

At some point I’ll need to focus more on what I hope to accomplish with this, but for now I guess I’ll just keep posting.