The More Things Change…

It’s been well over a year since I switched back to Windows from mac. Still not regretting, but it’s a little disappointing to see all those old rough edges still there in Windows.

For example, when I close the screen on my laptop… who knows what will happen? Usually it will sleep. Sometimes it’ll shut down. Sometimes it’ll go into some sort of weird half-shut down where it doesn’t really boot up, but all my apps have crashed….

Dealing with printers is just as fun as ever. We have a nice new Epson, and when I tried to print… nothing. Restarting the print spooler service fixed it, so not a big deal – but there’s no way my parents would’ve thought to do that.

Skype is especially weird. Sometimes it’ll just not automatically scroll to show new messages. Whether I get notifications seems to be basically random. Yesterday for some reason every time I used ctrl+v to paste – it’d paste the contents of the clipboard twice… wtf? Restarting fixed it. Skype worked perfectly well back before MS took it over – why mess with it? Tpyical.

All in al I’m still pretty happy with it, especially considering the price/performance vs a new macbook. But c’mon Microsoft, you can do better.

I know this stuff is not easy… but I think there’s often pressure to develop new “features” that are just unnecessary – but that’s a post for another day.

Tech and Terminology and Political Correctness

I usually don’t post anything too political on my blog – that old saying about politics and religion is a very wise one – but I thought I’d weigh in on a debate going on in the tech world regarding some of the terms we use, and whether they should continue to be used.

In the aftermath of George Floyd’s death and associated protests and turmoil, a lot of attention has been put on many terms and symbols that are perceived as carrying racist overtones or baggage.

To be absolutely clear, I complete support black lives matter and think the vast majority of these protests are completely acceptable and necessary. This country has a lot of things to issues and racial problems are part and parcel of our history and the texture of this country. Segregation only ended in my parent’s lifetime – and we finally got gay marriage only very, very recently. And I’ve always wondered why we would have statues and military bases named after literal rebels and traitors.

In the tech world there’s a lot of discussion about changing some terms that we use – such as blacklist/whitelist and master/slave. For blacklist/whitelist I think changing it to something allow/block list or something along those lines makes a lot of sense. Think about it, I don’t think the term itself is overtly racist – however the negative/positive associated with black/white is problematic. More importantly, these are not clear terms! Allow/Block is far clearer, in my opinion.

Master/Slave is another pretty problematic term. It is descriptive of the relationship, however in most of the world the idea of a “master” will construe as white and “slave” as non-white. That’s just the reality of the world. Yes, I know there have been all kinds of slavery throughout history, some with racial overtones and much without. I was a history major! But that’s irrelevant – what matters is what makes sense to the majority of people alive now. I’d suggest something more like Source/Duplicate, or Original/Duplicate, etc. I think that still describes the relationship well, at least for a database setup…

But with Master Branch (i.e. in git) I’m not sure there’s the same racial overtones. For one thing, we don’t call other branches “slave” branches, and if we did it wouldn’t really capture the relationship well at all. A branch off master is not “controlled” or “dominated” by the master in any way, typically. Honestly, something like “trunk/branch” might make more sense, but a lot of this depends on how you use git. I just don’t see this as a problem as bad as say the “master/slave” terms!

Likewise, Master Repository has the same issues as above. What’s really being described is more like “original” versus “branch” or “derivative” etc. It doesn’t seem like that much of a problem – but it shouldn’t be hard to find a less controversial term that also accurately describes the relationship.

I guess I’m generally in favor or trying to change usage of these terms – as long as another term can be found that describes the relationship at least as well. But I also think that like most things they’re on a spectrum from more “racist” (black/white list) to less.

But, another aspect of this whole controversy should be kept in mind – arguably the organizations who are making these changes to their terminology could be helping things a lot more by becoming diverse and inclusive workplaces. I’m not saying that they’re not! But I am saying that we shouldn’t let this little debate over terms distract from more meaningful changes.

Happy Memorial Day?

It’s the time of year where we’re supposed to remember all the sacrifices made by our armed forces. But we’re also in the midst of a great debate about relaxing efforts to contain the pandemic.

I certainly do not want to downplay the losses and suffering of our veterans – but I’m also infuriated by efforts to downplay this pandemic.

So let’s look at some stats. Here is where I’m getting my numbers for the pandemic – 98,034 as of this writing. And I’ll be referring to the military death totals listed here.

So, all provisos about the pandemic numbers aside (I think they’re probably under-reported) – more Americans have died from COVID-19 than Vietnam (58,029). Think about that. Vietnam took place over a decade or so (depending on how you wan to track it). Think about the chaos and disruption that caused, and who knows what costs to our country for the veterans and their families. We’re about three months into the pandemic at this point… And I’ll bet you an N95 mask that a good number of our Vietnam vets have been taken by the coronavirus.

And, we’re approaching the number killed in the first World War. God forbid we surpass WWII or (horrors) the Civil War.

Here’s another interesting thing to think about. According to this site, almost 7,000 Americans have died in the war on terror, plus about 3000 who died in 9/11 – for a total of 10,000. That’s about 1/10th of the number who have died from COVID-19. Now, consider how much has been spent on our war on terror. Something on the order of 5 trillion dollars (source). I am not saying that we should have not spent that money, or fought those wars. That’s irrelevant to this. My point is, we really need to think about our priorities. I didn’t bother trying to track down what the US spends on research/prevention for pandemics, I’m sure it’ll be depressing.

So, the next time you hear someone try to downplay this pandemic – ask yourself, when’s the last time you lived through a couple Vietnam war’s worth of dead Americans? In three months.

Please stay at home! I don’t care what your state decides to do. Stay home. I think it’s only going to get worse.

May you live in interesting times.

Benefits of Remote Work

As I’ve written about previously, I have a little more experience working remotely than many others who have been thrown into remote work due to the pandemic. For me, working remote is the norm so having to work from home hasn’t been a big jarring challenge, but it’s totally understandable that this “new normal” is causing problems for workers and employers alike.

I do think, however, that this is a huge opportunity for organizations – this is their chance to realize the benefits of remote work – and to discover that the changes that have to be made for an organization to handle remote work efficiently are extremely beneficial even if things go back to “normal” at some point.

Flexibility

The first key benefit that organizations will realize with a remote-capable workforce and ability – it gives far great flexibility. If your employees can work remotely as efficiently as when in office, it opens up options. Running out of office space, or need to close the office for renovations, etc – it’s no big deal because your employees can all work capably from home. This is not flexibility that you’d have otherwise.

Resilience

Closely tied to flexibility – resilience means a remote-capable organization can roll with the punches way better than a traditional office-bound organization. We’re all seeing this right now because of the pandemic – but it could happen in much more mundane scenarios – fires, floods, power outages, etc. I once had to leave an office in a high-rise because of a fire alarm. By the time everyone filed down 18 floors and waited until 20+ floors of the building was clear – the day was lost. This would not happen with a remote-capable organization – either some of those employees would’ve been at home and unaffected, or we could’ve all just headed home (or to a coffee shop) and finished our work day productively.

Another way to look at this is that being remote-capable allows an organization to keep employees who may otherwise leave because they need to move to a new geographic location. This is an extremely common reason why employees leave – and everyone knows how expensive it is to train up a new employee. Keep them, let them work remote!

Expanding the Talent Pool

This should be a fairly obvious benefit – it’s simple supply and demand. By ignoring physical location, you are vastly expanding the pool of potential talent available to you. Even better, because of cost of living differences, your offer may be way more attractive to a potential remote employee than a local employee. The higher your area’s cost of living is in comparison, the more important this is. Silicon valley companies that don’t regularize remote work are at a huge disadvantage!

Enhancing Organization

This is probably worth a post all of itself, but the very act of making your organization ready for remote work will drastically enhance your organization, especially when it comes to project management. Remote workers need to be able to see everything necessary to work on a project – status, what is done already, requirements, deadlines, etc. The very act of pulling all this information together into one place, accessible to everyone, is also a huge boon to non-remote workers. It’s a win-win!

Cost Savings

Finally, what is probably the most obvious advantage of having remote workers – cost savings. By not having to pay for as much (or any) office space, a huge expense is removed from the balance sheet. Add in all the associated costs – insurance, power, internet access, cleaning, catering, etc – it makes a difference. Some of this should certainly be passed on to the employees in terms of salary increases or something else, but the fact remains that a remote organization is much leaner than a traditional brick and mortar office-based shop.

But… How Will I Know They’re Working?

I think the real reason behind much of the reluctance of organizations to embrace a remote office is the perceived lack of control. After all, how do you know your employees aren’t just playing video games and drinking their days away if you let them work from home and (gasp) set their own hours?

The real problem here is not a remote office issue – this is a management issue. Employees obviously need to be responsible and do their work. But this is not a factory floor – you can’t just measure how much time they spend staring at their screens and take that as measure of how “good” an employee is.

The issue is figure out the real KPIs (key performance indicators) that are appropriate for each role in an organization. This is not easy and never has been! But getting this right gives an organization an enormous advantage, both in terms of employee productivity, happiness and efficiency.

What you should not do is set up some sort of ridiculous surveillance system to make sure your employee is sitting in their seat and doing whatever you think they should bed doing. Employees should be rewarded for doing their jobs well, and you should be doing everything in your power to empower them to figure out how to do their jobs productively and efficiently.

If an employee slacks off and doesn’t get important work done, their KPIs should reflect that, and there should be consequences. And if they can get their job done right, their KPIs should also reflect that. Whether they’re sitting in their seat 8-5 is completely irrelevant and counterproductive. The point is to have empowered employees you can trust.

New Windows Terminal

Just updated windows so I could install the new windows terminal – and I’m quite impressed. It’s noticeably faster than what I was using before, and seems like it’s quite configurable. I spend so much time on the command line that I sometimes forget I’m even using windows.

You can install it via the windows store. I had to update windows to meet the requirements.

Next up, install WSL2 which I’ve heard many good things about. I might wait a bit on that one, because it seems much more likely to throw a wrench into my current dev setup and make me burn a lot of time to fix… but the benefits sound great.

Remote Work – My Take

Ironically, I’d been planning on writing some travel-related posts here – never quite got around to it and now as pretty much everyone must suddenly work remotely thanks to the pandemic, I decided instead to write up some tips for those companies and individuals working remote for the first time.

I have worked remote for the majority of my time since 2002 or so. Most of that time has been either working at home, or wherever I happened to be at the time. My experience includes working for myself, or for an organization that was mostly not made up of remote employees. Of those organizations, one handled it pretty well… the other not so much.

You do You
So, nearly every remote work article I’ve seen talks about building a separation between your “work mode” and “live mode.” That’s great, but if it’s not working for you – find out what does. Everyone’s needs and job requirements are different. What makes sense for one may not for others.

I’ve been working remote for most of two decades. I’ve never had an office where only job stuff happens. I’ve always tended to migrate around the house and yard as I work, I find that a change of location and scenery helps me focus. That’s what works for me. Experiment, and see what works for you.

Learn to work with basics
Because I travel so much, I’ve learned to work with just the laptop. I’ve tried using giant monitors, or multiple monitors and honestly it doesn’t work – for me. One advantage I have then is that I can work pretty much anywhere I can sit down relatively comfortably – couch, hotel bed, desk, etc. All I really need is internet access.

Getting online is a key requirement. Our home wifi is decent but can go down. Hotel wifi is notoriously bad. It pays to know how to use the mobile hotspot mode on your phone when you need it – hopefully your phone and provider makes that possible!

Set up your app and mute yourself!
Do yourself a favor and learn how to set up whatever app(s) you use so that it starts up with your camera off and your mic muted. You can always turn them on manually once your meeting starts. This can prevent embarrassing mistakes!

And please, please mute yourself when you’re not talking. Zoom likes to change view to whoever it thinks is speaking – so if you have a dog barking or other noises in your background, it can be quite annoying to everyone else.

Apps like Zoom are very bandwidth intensive – you may get some mileage out of turning off your video if your connection is struggling. I know the pundits like to tout the benefits of being able to see the other people in your meeting, but in my experience most meetings revolve around a screenshare and having all the other people transmitting video does seem to strain a poor connection unnecessarily. So, in my opinion, it may be better for organizations to ask their employees to not have their video on by default.

Trust your employees
This brings up another much discussed element of the our new remote work world -some companies and managers can’t seem to figure out how to handle workers who aren’t in the office.

If your organization can’t seem to figure out if an employee is contributing when their not sitting in an office… you have a larger problem than how to handle remote work! Figuring out the right way to measure this is not an easy task, especially for developers. This is not a new problem – and there’s tons of discussion out there about it – but a very important one for leaders to focus on and continually try to improve. This pandemic may be just the chance to figure this out and reap the other benefits that come with having remote workers!

Razer Stealth 13 – almost one year review

As always, I’m not updating my own site as often as I should. Something about cobblers and shoes? Anyways, it’s been a while since my last post about being back in the Windows world. Hard to believe it’s almost been a year – but seemed like as good a time as any for a new post.

This little guy keep soldiering along with very few problems – none that I can attribute to the hardware at least. Well, except for an annoying issue that the internal mic doesn’t seem to work -but I’m pretty sure that’s due to Windows, not the hardware – and I typically use a headset anyways on the few occasions I need it.

I have noticed the black paint coming off along some of the fairly sharp edges on the case. That’s about it in terms of it showing its age.

Windows on the other hand is… Windows. I can live with it, at least I haven’t been annoyed enough yet to try installing Linux. The WSL set up I’ve written about before has worked out well enough for the projects I work on. I haven’t gotten around to trying Docker out – after my previous experiences with Docker (on a mac) I’ve not been to inspired…

Having access to games has been nice in this new Coronaworld. I still manage to get online to shoot zombies in Left 4 Dead a few times a week, and I rewarded myself with a new game about a month ago after launching a new site. Space Engineers is definitely my kind of game. My latest creation is a ridiculously ugly mobile base cruising around the earth-like planet spoiling the landscape. Planning to try my first space launch soon!

Hope everyone is staying at home and keeping healthy.

Razer Stealth 13 – 1 month review

As I’ve mentioned in previous posts, I took the jump off of MacOS about a month ago now. I’d been researching different options ever since the Macbook Pros came out with the ridiculous touch bar, horrible keyboards, high price and pretty mediocre specs (for that price).

In the end I pulled the trigger on a Razer Stealth 13 Ultrabook that I picked up from Amazon on Prime Day for a pretty good deal. Spec wise, it compared very favorably against both my old laptop (5 year old Macbook Pro) and new Macbooks. I also strongly considered a thinkpad among other similar laptops.

I wanted something with pretty good specs as I often end up running “heavier” – i.e. running docker, virtualbox, etc. Good keyboad, reliability, power usage and weight were all important as well. I travel a lot, so it had to be a laptop I could use in many different scenarios, working on a bed/couch/tiny desk, etc – but usually without external monitor/mouse/keyboar.

All in all, I’m quit happy with this laptop after about a month of using it – most of the time on the road. Battery life is at least double my old macbook – depending on what I’m doing, I can get 8 hours out of it pretty easily. The keyboard and screen are great. My only real gripe is the touchpad “click” is too sensitive (even with settings turned all the way down) – I’m guessing I’ll get used to it.

Windows 10 is… well, Windows. I’d still prefer MacOS. But the additional of WSL means that I spend nearly all of my work day using linux. This means I haven’t (yet) decided to try booting and running entirely from Linux. Might still happen, but for now this setup is working pretty well.

I haven’t really tried much gaming so I can’t comment on performance there. I ran a couple very old FPS games that were in my Steam account which of course it could run fine with maxed out settings. I played a little bit of Total War Empire – which of course is also an older game at this point, and ran well.

So… so far so good! Of course it’s early days still and we’ll see what problems arise 🙂

WSL & LAMP part two

As mentioned before, I’m restarting my windows-based LAMP developer experience after a long sojourn in MacOS. This post is meant to look at where I am a few weeks in, and tips/tricks/problems I’ve encountered. I’ll probably post a review of the actual laptop I went for later.

All in all, the experience has been quite good. I have a full LAMP stack set up and running well, with very few hiccups. Right now I have it set up to run three different sites, two custom PHP and one that runs mostly off WordPress. All I have to do to change which site I want to just off of http://localhost is edit the relevant Apache configs and restart Apache.

I’m a vim user so I haven’t needed to install any big clunky IDEs. I do have sublime which I mostly use as a giant clipboard/notes app. Everything else lives in Trello or Google Sheets, or Slack.

I did have some odd issues initially running my linux terminal – until I got used to it. I just had to get used to opening new terminal windows from within the linux app. The only other niggling issues are that you can’t seem to split the screen (something I do very rarely anyways) – and sometimes when pasting a large amount of text within vim, there’s a slight delay. That’s all!

So, all in all I’ve made the transition quite seamlessly – maybe a day or so of lost productivity while getting everything set up and moved over from my old mac.