Coding In The Workplace: Why Everyone Should Do It

Code from an old Python game I use to work on

The Setting

You work in an office, you sit at a desk, looking at word documents, spreadsheets, *shutters* PDFs, and it’s TEDIOUS. This isn’t 2007 anymore, why are we doing this to ourselves? Sometimes it’s out of your control, but if you do have a level of control over whatever process is responsible for dropping a spreadsheet in your lap that you have to go manually edit, you can automate it!

If you’ve never coded before, you should pick it up. Plain and simple. Let’s talk about why and then I will provide some great training resources, and in future articles I will do my best to create generic, easily editable scripts that you can use in a day to day basis. 

Why should you learn to code?

Let me get this out of the way, I don’t expect anyone reading this to be able to develop Enterprise grade applications, or even have the desire to. What I mean when I say ‘learn to code’ is to simply be able to automate the boring stuff, ironically this is one of the training courses I recommend. 

Let’s look at it this way, if there is some task at work that you do multiple times a day, week, month, whatever that you do the same way each time (or close to the same way). Then you should look into automating it. Here is a great example that I encountered a few years ago:

I use to work at a smaller company, maybe a few hundred computers: laptops, desktops, servers, some network gear, and switches. We needed to keep a running inventory each month of the active machines on our network. I was responsible for updating that spreadsheet I inherited from the previous person. It looked something like this:

IP Address Hostname OS Last Active Decommissioned?
192.168.1.56 example1.domain.net Windows 7 11/12/16 no
192.168.1.57 example2.domain.net Windows 7 11/12/16 no
192.168.1.58 example3.domain.net Windows XP 10/1/14 yes
192.168.1.59 example4.domain.net RHEL 6 11/12/16 no

You get the idea. 

I would have to go through all of the rows, ping the IP from a specific server that had access to everything on the network, and record the data. Since we were a smaller company, we didn’t have the luxury of a true inventory system and the patch manager software (No idea what that was), didn’t give us everything we needed to maintain the inventory through that alone. I spent some time trying to figure out what my options were. I finally stumbled on bash. Since we were using a linux machine to ping all of the devices, I figured bash would work well. I did some basic training courses and began working towards my goal. 

The goal

I had a rough idea of what I wanted this script to do:

  • Ping the devices from a spreadsheet
  • If a response was received, record that in a spreadsheet
  • Update the Last Active column
  • Update a few other columns I didn’t add here because I forgot all of them.. it’s been a few years
  • Email me the output and save a copy to a NAS device

Simple right? Kind of. I ran into some issues, mostly from lack of knowledge, but after some tinkering around I got a working script. 

It was able to take a list of IPs, ping them, grab any additional details it could, like the hostname, and email me those results. I could then take those and update the spreadsheet manually. It was faster, though I felt like I should be able to do more. I wasn’t getting good answers from the bash side of things. That could be from lack of knowledge overall on what to search, or I just suck at Googling. 

I eventually found myself looking at Python scripts from an old StackOverflow post. I picked up Python much quicker and also noted that the linux server had Python installed natively. I wrote a quick ping script to recreate what I made in bash, into Python. It did okay, I still had to create a mail script in bash and call that in the Python script, but within a few days, I had it back to working order. The next step was to create a spreadsheet within Python that was an exact replica of the original, without having to open Excel on my own. 

I found a few Python modules to help with this and got to work tinkering and testing the script. After a few more days of working in my spare time I finally had a completely working script. I even learned about cron jobs in the process. After all that, I was able to set my script to run each month on the same day, perform the task, and email me the results. I took a look at one of the spreadsheets and compared it to an old, manual copy. I noticed something interesting; the original spreadsheet had about 400 rows or so, and the new one had over 500! Oh no, it’s broken again. 

To make a long story short, I actually discovered that my automated script was actually right. Over time, we had somehow lost track of some of the newer devices on the network, and some hosts that were decommissioned were actually still online, the ping had just failed one month and it was removed from the spreadsheet. So, not only did my script save my some headache, it also got us better data!

Ok, So What? You’re A Nerd, That’s What You Do.

True, random header, I do consider myself a nerd. However, I knew nothing about programming a few weeks prior to this. I was a young, college dropout with a basic job and no direction. So with that, I believe that anyone could, and should, learn to code. I’ve been developing scripts and some random applications for a few years now. I am no expert but I have learned quite a bit. If you work in an office, whether you work with nerds or you do sales, there is most likely an automation solution you could do. Think about it, if you work on a computer all day, you’re working in different applications: Word, PowerPoint, Chrome, some super expensive product your company bought so you could do you job. All of those were developed by someone. 

You could easily learn to create a Python script that manipulates a spreadsheet in a programatic way to speed up your job and give you more time to surf Reddit… I mean, get more work done! 

I don’t think, especially with how easy programming languages are to understand versus 20 years ago, that it’s difficult to get started coding. I believe it all comes down to your level of commitment. If you have no interest in coding (then I assume you just like my articles: Hi by the way!), then you probably won’t go very far in learning to code. If you want to but don’t know how to get started, allow me to give you some guidance.

The Decision

You first need to decide what language makes the most sense to work in for your setting. If you work with Web applications all day (you go to a website and work in there most of the day) then you might want to look into JavaScript. If you work on a large number of platforms, Windows, Mac, Linux, Web apps, Excel, whatever, Python might make more sense for you. 

I know enough about JavaScript to be dangerous, but Python is where I live most of the time, so I am going to focus on that for now. Maybe if I get better at JS then I can write some posts to help you get started there. I will try to come back and link anything I post to this article so I can help future readers really get started. 

There are more options than just Python or JavaScript. PowerShell is a good choice for interacting with Microsoft products. Java is good for… something I’m sure. Bash is good if you live in Linux (though I have friends who would argue that Python is better and can do the same functions). At the end of the day you pick what you want. I personally, highly recommend Python. It’s super easy to understand and a great first language for most people. 

Side note: Make sure you use Python 3, Python 2 is still around but it’s not going to be supported much longer. 

Training Courses

I already linked Automate the Boring Stuff above, but here it is again. Al Sweigart knows what he is talking about.

Code Academy is a great place to start and get familiar with the syntax, but overall it doesn’t go too in depth with the language. I recommend doing the first few chapters and then moving on to something else. 

Youtube has a large number of python tutorials. A quirky, but effective one that I found recently and I really love is Socratica. They have lots of stuff on the channel, but check out their python playlist. They broke everything down into short, easy to digest bites with examples you can follow along with and they explain things really well. I highly recommend visiting them at some point. They also give good use cases as to when and why you would want to use these different functions and techniques in your job. 

If any of this was helpful, feel free to leave a comment, subscribe. Let me know what you think and if you’re interested in seeing some examples, let me know and I will dust off my old scripts, update them and post them when explanations. 

The Actual Why

Since I haven’t explained the benefits other than it might make your life easier at work, I should add, you will also look like a rockstar. If you work in an office setting where you’re not surrounded by nerds, being able to code, even at a basic level, will help you stand out from everyone else in the office.

If you’re not interested in that, then why are you reading this article? Go somewhere else. If you are interested in looking like a genius, then I highly recommend learning to code, doing a few projects at home or for your office, then show off your skills to the world! Or, at least the people you work with and your boss.

Ecoker USB C mouse review

I recently picked up a USB C mouse from amazon. I wasn’t sure what to expect but, since it’s $29.99 and I was really tired of Apple’s magic mouse, I figured it couldn’t hurt. Once I got the package I noticed an interesting box, it looks like something similar to my drill bit set I bought a while back. I was confused at first as to what this was. Once I opened it, it was a nice looking mouse. I was surprised because I expected some cheap mouse from China with a USB C connector instead of standard USB. Spoiler: That’s what this is.

In the box was a USB C to standard USB Adapter, a basic manual, and the mouse itself. I initially plugged this into my mid-2010 MacBook and nothing worked. I guess the adapter doesn’t work for macs. Which is fine because I actually bought this for my MacBook pro with the 4 USB C ports. I plugged it into the correct computer and it instantly light up. It rotates through “X” colors: Red, Purple, blue, green, and yellow. It’s a slow fade through each color change but it looks nice. The last “gaming” mouse I bought was a Logitech G500 mouse and I still use that to this day on my gaming computer. 

The DPI on this mouse is acceptable, I am using it on my MacBook so if you’re looking to use this for a Windows computer, I imagine it would feel different. Sadly I don’t use Windows on my laptops, just Linux and OS X. I plan on buying a Windows laptop in the future so I can do reviews on that as well.

This mouse feels nice in my hands and it works really well with my MacBook pro. The ergonomics took a little getting use to, it just wasn’t my typical style of mouse. However, while this is advertised as a MacBook mouse, there are no drivers I could find online to configure the side buttons. That’s disappointing. Overall, it’s a mouse, it works and I don’t have to pay for batteries anymore. If you ever wanted to use this for a desktop, I highly recommend against this. The cable is really short. I feel like that’s the only “Apple” design thought they put into this mouse.

I will update this if the mouse dies anytime soon or if I find some weird issues with the mouse. 

Ditch Windows, Go Open Source

Note: If you’re just here for Linux install instructions and some cool things to do in Linux, scroll way down to the Installing section of this article.

It’s 2019, Windows 10 has been out for a few years now and people everywhere are getting tired of nagging updates. Sure, security updates and patches are really important, but why are there so many of them? I could bore you with some of the details as to why Windows is such a terrible Operating System *cough registry cough*, but that’s not the point of this article. I could also go into a diatribe as to why Microsoft is a terrible company because their Operating System is basically an ad with lots of spyware built into it, but I wont, yet. 

So what can you do? Macs are too expensive for your budget, or you don’t like being stuck in Apple’s “ecosystem” [see: gated community you can never leave]. Chromebooks can’t do everything you want them to, yet. What other option do you have? 

Well, if you haven’t been living under a rock for the past few years, you’ve probably heard of a little thing called Linux. Linux may not seem very accessible to the average person, but I would argue that it is. There is a small learning curve for most people who just use their computers as intended (hi grandma!), but overall it’s fairly easy to pick up. There are tons of online communities out there to help people get questions answered, and google is your friend. The following sections of this article are going to talk about getting linux setup on your own computer, learning the operating system’s quirks and differences between Linux and Windows, and how you can take your own skills to the next level. At the end i’ll add a few fun things you can do to really enjoy your new linux computer. 

What is Linux?

There are a thousand articles that talk about ‘what linux is’. The long and short of that answer is: It’s an operating system, like Windows or OS X that lets you do things.

The Difference is, while Windows and OS X are run by large companies, Linux is run by more of a community. There is the head guy Linus Torvalds and he approves all the code that goes into the kernel, then other groups use the kernels and create their own distro of linux. Then people download those distros and install them on their computers, use them as consumers or try to create new code to add to the kernel. Linux is not a company, there are companies that are centered around linux and promoting open source software, but it’s not a mega corporation like Microsoft or Apple.

Okay, i said a lot of words there. Let’s break this down a little bit. 

Parts of Linux

See this page for more details:

The first things that executes is the boot loader. It picks, or lets you pick if you have more than one OS on a computer, which kernel to boot into when you turn your computer on.

At the core of Linux is what’s called a Kernel. The kernel is responsible for talking to the hardware. The kernel also allocates the memory and other system resources to software running. 

Above the kernel, you have the daemons, (not demons), these are a lot of background running processes, network connection configuration, USB device response, file systems, etc. 

Then we have the shell, this is also the command line, or terminal. This is where a lot of work can be done, and before the visuals were created for a desktop environment, the shell was all you booted into. 

X Window Server is a graphical replacement for the command shell.

Window Managers (WMs)are what makes your linux distro look like it is. There are a number of window manager flavors like kWin, Metacity, Compiz. They are responsible for drawing the window borders, bringing a window to the front when you click it and moving it around the screen. 

Then we have some people’s favorite part – Desktop Environments(DEs). These can cause some really heated debated (because nerds) online due to personal preference and arguing over which is better. (GNOME 2 FTW) The desktop environment is responsible for your overall look and feel of the computer’s operating system. 

There are a number of flavors to pick from like: GNOME 2 or 3, KDE, Xfce, Unity and more. 

Examples of different Desktop Environments and Window Managers:

Image from Reddit: r/unixporn top of all time
Image from Reddit: r/unixporn top of all time
Image from Reddit: r/unixporn top of all time

Distros

What does someone mean when they say ‘Linux distro’? It’s basically the flavor of linux, package managers, and features. While Linux is the kernel (or core) of the operating system, there will be a distro slapped overtop of the kernel to give more functionality. Each distro has a default Window Manager and Desktop Environment (or lack thereof). 

For example, one of the most popular linux distros is Ubuntu. Today Ubuntu uses the GNOME Window Manager and the GNOME SHELL Desktop Environment. A few years back they used Unity and Compiz, there was a lot of online flack for doing this, but I won’t go into that now. 

Fedora also uses GNOME and GNOME SHELL

Kubuntu (a distro based on Ubuntu) uses the KWin Window manager and KDE Plasma Desktop Environment. 

There are many others using different WMs and DEs but honestly that’s not important because you can change it. I will explain that later. 

Another thing about distros is the package managers. To understand package managers, let’s look at smartphones. Apple uses the App Store to install applications, Android uses the Play Store to install applications. In the same vein, each linux distro has a preferred package manager they use. 

Ubuntu and ubuntu based distros use apt. Fedora uses dnf. See the links for details, I will go over some of the ways you can use apt later in the article. The long and short of package managers is how your distro gets new software. 

Picking a Linux Distro

At the end of the day for a new user, the decision you make on which Operating System you choose is up to you. I will make a few recommendations and explain why I recommend them for newer users, but I also know people who went against my recommendations and I’ll explain their success with ignoring me.

RedHat vs Debian

Most of the discussion I’ve been a part of online has been around these two flavors of linux. There is a pretty strong dividing line between these 2 distros. Redhat(Fedora for consumers) seems to be more on the cutting edge of features for linux. 

Debian on the other hand is notable behind here. However, their development strategy is to have 3 main release branches: Stable, Testing, and unstable. New features are used for a period of time, and if they do not exhibit bugs, are passed down to Testing. The same process repeats for Testing to Stable. Stable is most often used as a server distro, and as such stable software is preferred over the latest and greatest. 

If you’re a fan of having the latest and greatest, check out Fedora<LINK>. Fedora also uses the dnf package manager which I have found to be fairly robust and enjoyable to use (remember: package managers are how you get and update your software). 

However, I have been a long time Debian use, specifically Ubuntu based distros. I should mention, there are a number of distros that are built around other distros. A good example of this is: Debian > Ubuntu > kubuntu/lubuntu/linux mint. Ubuntu is based on Debian, and is a very popular and successful distro, so a few other groups built their own flavors based on the popular Ubuntu distro. They all do generally the same thing, it all comes down to personal preference at that level. 

Back to the review, Debian, while it’s not on the cutting edge, has been my personal favorite and seems to have more software compatibility with the programs I care about over Fedora. More on that later. Debian’s platform also just made more sense to me because it’s what I used first I guess. I do not intrinsically have any problems with Fedora or SUSE linux(yet another flavor), i just don’t use them. 

There are tons of reviews regarding Fedora and SUSE/OPEN SUSE linux that you can look up. For the rest of this article I’m going to focus on Debian and probably more closely Ubuntu. 

If you decide not to go with another distro, you should still be able to follow the majority of this article.

Setting up media to install Linux

Once you have your distro picked, it’s time to prep some form of media to install it onto your computer. This could be a flash drive or a DVD. I am going to focus on the flash drive (USB Drive) option. Download this software https://www.balena.io/etcher/ onto your computer and install it. Once Etcher is installed, we need to get our hands on a .iso file for the distro you want. 

Think of an ISO file as a complete copy of everything stores on a DVD. If you’ve ever installed Windows on a computer, you usually do that through a DVD copy of Windows. An ISO is just a digital copy of the contents of that DVD. In this instance, we’re going to get an ISO or Linux. I am going to go through an Ubuntu install with you in this article. 

Go to Ubuntu and select the Ubuntu Desktop 18.04LTS download. Should be a green button that looks like:

Ubuntu download button

That may take a little while to download depending on your internet speed. While it’s downloading, let me tell you why I had you get 18.04 versus 19.04. 18.04 is LTS support. This means “Long Term Support”. Ubuntu has decided this was a very stable version of ubuntu and has made the decision to support this version for a few years longer than other versions. You can read more about this here.

After the ISO has downloaded, let’s launch Etcher. With Etcher open, you need to plug in your flash drive, and select the ISO file. I found the iso file in my downloads folder, yours should also be in that folder, or wherever you saved it to if you selected a different location. Once Etcher shows the option to “flash”, click it and wait. What this is doing is extracting the ISO file to the flash drive, and making it Bootable. This means that when you plug it into a computer that is powered off, and you power the computer on, you will be able to select the flash drive to boot from, instead of your hard drive. 

Booting from USB

Once Etcher has finished, close the program and remove the flash drive from your computer. This next part is going to require a bit of figuring it out but I can guide you on most common processes for booting your computer from a USB. 

WARNING: Actions from this point forward have a high risk or wiping your hard drive on the computer you want to put Linux on. BACK YOUR STUFF UP NOW. GO NO FURTHER. DO NOT PASS GO, DO NOT COLLECT $200!

On most recent computers, (unless UEFI is turned on which I will get to in a minute) you can just plug in the flash drive and tap F12 or F10 a few times to get to the boot menu. If you attempt this and you get to the boot menu, which will have a selection of devices your computer can boot from, great! Just use the arrow keys to select the flash drive, tap Enter, and move onto the installing section below. 

If this did not work for you, we need to figure out why. I will start with Non-UEFI troubleshooting first. Power off your computer and power it back on. Start tapping F2 this time. On some computers in the lower left or upper right corner, you may see some boot options:

Dell Splash screen – boot options upper right

If you have something like this, find the one that says Boot menu and tap that corresponding Function key. 

*Side note, if you have a laptop, you may have to hold down the foot note“Fn” button at the lower part of the keyboard to use the F1-F12 keys. 

If you do not have these options and you’re tapping F2, you will hopefully have been brought into the BIOS of the computer. It may look like a screen with a blue background and some words all over the place and menus at the top.

BIOS Example: see top of image for the menu tab examples

Almost every BIOS is different, so I will do my best to guide you here. We’re looking for a BOOT tab somewhere on the screen. If you have an older computer, you will navigate with your arrow keys. Some newer BIOS let you use the mouse. Once you’re in the boot menu, we need to figure out what’s going on here. A few things to look for

Make sure that the USB ports are bootable. You can figure this out by checking the boot order. Once you found that, go ahead and set the USB drive to the first boot option. Each bios will have instructions somewhere on the screen to do this. 

Let’s turn UEFI off as well. If you have a relatively new computer, UEFI might be enabled by default. Turn this off. (If you’re reading this and aren’t even able to get into the BIOS, don’t worry i’ll address that annoying issue in a moment. 

Once you have changed those settings, go to the exit section of the BIOS, save and restart. Then try the instructions above to see if you can boot from a flash drive. If you can, move onto the Installing section.

UEFI – One of Microsoft’s most annoying ‘features’

Depending on the age of the machine, you might have the old UEFI enabled, especially if you have a computer that ran windows 8 originally and even some of the less up to date windows 10 machines. To get into the BIOS on these, you need to ‘fail boot’ a few times. Here is what you do:

  • Power on the computer
  • Wait for it to START loading windows
  • Hold the power button until the computer powers off
  • Repeat a few times, anywhere from 3-5 times. 

Then you will be taken to a screen that gives you some advanced options. Select whichever option mentions going to the BIOS, then follow the instructions above. When you go to turn off UEFI, it should say legacy boot. Then you will be able to boot from a flash drive.

Oh, and I’m completely serious about this. This was the instructions our Microsoft contact sent us when Windows 8 came out and we had to do any troubleshooting at a previous job.

Installing

Once you have been able to boot from USB, you should be brought to the ubuntu (or whatever OS you picked) installer. The first few menus are fairly simple. You will go through selecting the keyboard region, usernames, passwords, computer names, all standard stuff. Just follow the prompts there. 

NOW before you go too far, keep an eye out for the Hard drive section. This is where you will install Linux onto. If you plan on using the whole computer as a linux computer, then just select the whole drive and continue installing. The menus should prompt you forward with ease. 

If you only want to use a small section of the hard drive(Partition), then you will need to split the drive. If you’re using Ubuntu, this is relatively easy to do. Just select the hard drive you’re installing Linux onto, and create a new partition. There is a tool within the installer to drag the partition size to the size you want, and put Ubuntu on the smaller partition so your main partition isn’t touched. This isn’t a perfect tool, I have heard of issues with it, but never experienced them myself when I did use Windows. There are also multiple Youtube videos out there to guide you on partitioning your specific Linux distro. 

Once you’ve done that and selected a username and everything else, the installer will run. This can take anywhere from 10-30 minutes depending on your computer and hard drive speed.  

Now what?

Once you get to the desktop of your Linux box, you are probably thinking *now what?*. Good news is, Linux today at base lets you do the things a new Windows computer will. Browse reddit, read all of my other posts, setup your email, etc. What if you want to do more? I assume you would. If you decided to install Ubuntu then you can simply open the software Center and browse for software. This is Ubuntu’s app store, it’s a GUI for apt (the ubuntu package manager i mentioned above). 

If a piece of  software isn’t in the store, there are a few ways to get it. You can google something like “How to install {SOFTWARE NAME} on ubuntu terminal” typically this will return results that will show something like:

Open a terminal and type in “sudo apt-get install neofetch” 

If you’re unfamiliar with what this means, let’s break it down. 

The terminal is the command prompt for Linux. It’s basically a program that lets you interact with the computer without the need for a GUI. 

Example screenshot – my macbook’s terminal

The command they are having you type in has a few parts:

sudo – makes any command you run, run as administrator

apt-get – apt is the package manager, get is the argument you’re giving to the command

install – …install

neofetch – the package name. not all are as simple as this, but this is a good first example. 

Let’s run this in a terminal now. On ubuntu to open a terminal, click Ctrl + Shift + T

then type in the command above

enter your password, and watch the confusing wall of text roll. Don’t worry about any of that right now. Just know the terminal is telling you what it’s currently doing, which is going to a server, grabbing the package, and installing it onto your computer. 

Once that’s done, let’s run the new package and see what it does. in the same terminal window, type ‘neofetch’. You should see some cool stats about your computer and a fun design. It’s nothing substantial, or even necessary, but it is cool and a good example of how to download and use packages on linux. Some packages have different instructions to run, and there are a few ways to learn about them. 

Let’s say you want to learn more about apt (your package manager on debian distros), how would you learn how to use it? Well, you could read articles about it, like this one, or you can use the ‘man’ command. The man command shows you the manual for a package basically. So, if you type ‘man apt’ in the terminal, you will be taken to a page that has a bunch of words on it. Read through it, you should see a bunch of additional arguments, like apt update, apt upgrade, apt list, as well as a brief description of what they do. The man command is a good tool to have on linux, aside from google. 

Not all packages are going to be run in the terminal, if you prefer a GUI, there are plenty of tools out there that can be installed outside of apt that will let you use your linux computer more like a windows computer. Though I personally think this is less fun and I like to feel like a hacker (which is my main reason for using the terminal at all), there is a large amount of software that has a GUI for linux. The software center is a great starting point. You can also google software and see if it runs natively on ubuntu or has an open source port.

Now, let’s get onto some more fun stuff, I will also be talking about some more software you can get on Linux in a future section of this article, so stay with me.

Personalizing

If you’re like me, you don’t like to leave your stuff as it came in the box. This goes for computers, cars, furniture, etc, for me. So how can you customize Linux so it feels more like yours? The 2 easiest ways (aside from changing the wallpaper), are to setup a new WM and DE (Window Manager, and Desktop Environment). If you remember above, I explained that a Window Manager is what draws the windows and their movement on the screen, and the Desktop Environment is the overall look and feel of the desktop. You can see some of the cool rigs people have in the screenshots above.

Some of these are just amazing. I’ve tried to emulate them with varying degrees of success (there are really smart people out there and I hope to one day know 1/10th of what they’ve forgotten). For now, let’s try something more basic that you can build upon later. 

Say you’ve installed Ubuntu and have been following along thus far, but you don’t like the GNOME 3 interface that Ubuntu comes with. what can you do? Well, if this were a Windows computer, nothing; BUT we have Linux! So, you go look at a list of Window Managers and Desktop Environments that are available to you and pick the one you like the most. 

See these sites for a good list:

Desktop Environments and Window Managers

For this example, I am going to pick KDE Plasma for the Desktop Environment and for now I’ll use the default window manager. 

To install KDE Plasma, there are a few dependencies that you need to download and install first. I am going to list a few commands, if you’re interested in doing this, feel free to follow along. 

In the terminal type: “Sudo apt install taskel”

Type in your password when prompted. 

Once that’s done, we can install the kubuntu desktop environment (KDE Plasma).

sudo taskel install kubuntu-desktop

let this run, and follow any on screen prompts. Once you get to a display manager menu, you will need to select sddm. Once the install is done, restart your system and you should be able to login to the KDE Plasma environment. You will need to select the Desktop Environment before you sign in. This should be a gear icon somewhere on the screen, depending on the linux distro you went with. 

Then login as normal, and you should have a brand new look to your computer. Fun right? And just to be clear, before I wrote this, I didn’t just know this because I am a linux expert or anything. I google probably 50% of the time when I’m working on a project. There are some people who just know this stuff, I do not, and you don’t need to either. Any errors or issues you can you should be able to just google it and get your answer. The Linux community is amazing, and full of helpful geniuses. 

Why Linux? pt 2

Before we dive into some more fun stuff, I want to take a minute to talk about why you would want to use Linux a little more. Aside from just doing something different and not using Windows, why would you want to go to an operating system that is not the “standard” for consumers? A lot of games and other applications do not natively run on linux. That’s just the reality of the industry right now, it is changing, but it’s not there yet. So why would you want to seemingly make your life more difficult? 

Security:

Most viruses out there are written for Windows. They are batch files or executable files that are designed to run on Windows because that’s where most people are, and that’s where most non-tech savvy people live. If you’re going to write a virus that might make you money by locking a system down, you want the greatest chance of this being successful, so you’re going to target the majority of users, Windows is that platform for consumers. 

User experience:

Windows does not have a great user experience by any standard. Sure, out of the box, Windows 10 just “works” but it’s a siloed system. You don’t have good integration with any other device out there, Apple is way better at that. You also have to deal with ads, forced updates if you’re not running a professional or enterprise version of Window. I mean seriously, why would Microsoft want to constantly remind you to use Microsoft Edge and try to stop you from downloading Google Chrome or Firefox? This gets into my next point:

Tracking and Spyware:

Windows 10 is, by definition, spyware and adware. Windows 10 is less of a product and more of a platform for Microsoft to make more money. At the heart of it, I’m not against companies making money… that’s how the world works. What I do have a problem with is not owning the stuff I bought. Microsoft owns Windows, they make you do things their way and it’s very obvious that you are becoming more of the product than the customer. Look at it this way, if you still use FaceBook, how do you think FaceBook makes their money? The platform is free! You are the product. They collect and sell your data. Microsoft is double dipping now. They make you pay for a license to use Windows, and they advertise to you and collect your data. This is why they want you to use Edge and their own software. I don’t like that. 

I’m not one of those people who walks around with a tin foil hat on their head; because the tin foil actually amplifies the signal. I just don’t like being told what I can or can’t do, or have basic functions to get the thing I bought up and running my way made more difficult so someone can track my stuff and sell it without me seeing any benefit of letting them do so. 

Linux does none of that, well Ubuntu use to for a while but I can remove all the extra junk (and I’ve since moved on to other Operating systems within the linux world personally, but Ubuntu is always a great starting point for newbies). I also have free reign to edit literally anything in the OS that I want. I like that. 

Linux is also the standard server Operating system for a large number of jobs in the enterprise. Learning linux can really open doors for you in future careers. I have also always found it fun to learn new things, and Linux is one of those things that can take you years to master and I have found it has totally been worth it. Games are getting more support, applications have native linux support, and that’s just wonderful to see. 

If I haven’t convinced you yet, let’s get onto some more fun things you can do with Linux and see what that does for you.

Fun Stuff

If you’re a gamer, you probably use steam. Steam works on Linux natively. There is also a tool called Proton, that Valve has been working on that lets you play a large number of games on Linux. Check out this post I wrote for more details on that. You can install steam on ubuntu the same way you install steam on Windows. 

If you want to learn more about the terminal, and make it look cooler, you can edit your terminal profile, also known as your bashrc. The bashrc is a hidden file in your home directory that lets you modify the terminal. You can set useful aliases, add some fun packages to run when the terminal starts, and learn bash (a programming language). 

Let’s go over some of these real quick:

To find your bashrc, your best bet is to use the terminal. If you still have your terminal open from before, great! If not,  hit ctrl + shift + t and let’s get to it. I will guide you through this with a little more detail than before so you can get some cool stuff working today, allowing you to mess with it more later. 

Once your terminal is open, type ‘ls -lart’. You should see a bunch of file and folder names. If you don’t understand what you just did, you can type “man ls” into your terminal and read the manual page about it. If you check the appendix at the end, I will give a high level explanation on what each command I have you type in does.  

Once you have the directories listed, you should see a file labeled ‘.bashrc’. This is the file we will be modifying. There are a few ways to do this, you could open it in a text editor, or follow my instructions and we will use ‘vim’. If you decide to open it in a text editor, you will need to show hidden folders in your file manager software. To open the .bashrc in vim, we simply type ‘vim /.bashrc’. If you get an error and you typed the command in correctly, you might not have vim installed on your computer. To fix this, we’re going to have to install the vim package. Type in ‘sudo apt-get install vim’. Once that’s installed, type in ‘vim ./bashrc’ again and you should be taken to a new screen in your terminal. 

vim is a text editor software in the terminal, and is my personal favorite to use. I put it on every mac and linux machine I own. When you first get into vim, you’re entered into a read state. This lets you use the arrow keys to navigate the document without the risk of editing the contents. If you want to edit, you need to go into insert mode. to do this, simply click the letter ‘i’. You should see the word *INSERT* at the lower left corner of the screen. 

Bashrc example

Move your cursor to a blank area of the text document. If you have not done so, click ‘i’ and take yourself into insert mode. Then type in the following command:

alias bashrc = ‘vim ~/.bashrc’

All this does is gives you a shortcut (an alias) for opening this bashrc document in one word versus typing in multiple, and if you aren’t in your home directory when you decide you want to add something to the bashrc later, you can just type in ‘bashrc’ and it will search for the document and open it. 

The structure of setting an alias works like this:

alias {aliasName} = ‘{command you want to create the alias for}’

it’s quite simple. If you work on windows and have every used the DOSKEY command, it’s essentially the same thing. 

Let’s add something more fun, then we will save the document. Move your cursor back to the top if you aren’t there already, find an empty line and add the following lines:

neofetch

echo “Welcome to your Linux computer, master”

You can set the text after ‘echo’ to say whatever you want, I personally like reminding my computer who is boss, but you do whatever you want. The neofetch command was that package we installed earlier. If you did not do this, I will give you a chance here shortly, just add the line in for now. Once that’s done, we need to save the document, since there is no save button, vim has it’s own set of commands to save a document. hit the Escape (esc) key on your keyboard. This will take you out of insert mode. Then type ‘:wq!’ 

Anything after the ‘:’, vim will interpret as a command. ‘W’ is write, or write changes to the file we’re editing, ‘Q’ is to quit editing the current document, and ‘!’ is to bypass the confirmation. If you left off the ‘!’ then you would have to type ‘Y’ after it finished saving each time. This is just a shortcut but you don’t need the ‘!’. 

After you tap Enter, you should be brought back to the more familiar terminal screen. If you did not install neofetch, now is a great time to do so. Type ‘Sudo apt-get install neofetch’ type in your password, and wait a moment. Once that’s done, we need to run the file we just saved. 

I should mention what the file is that we just edited. the bashrc is your terminal profile file. When the terminal launches, it will read this file and then execute or stage any command and alias you have defined. There is a lot you can do in here. For now, let’s see our work in action. type the following: ‘source ~/.bashrc’. This just reloads the bashrc and executes it, so you don’t have to close out of the terminal (note: in some cases, depending on what you write, you will have to close out of the terminal and reopen it for the changes to take effect). You should see the output of neofetch and the message you wrote after the echo command. 

Neat huh?

There are also a lot of useful things you can do in the bashrc. If you use the same command over and over and you don’t want to have to type the whole thing each time, make an alias. You can write bash scripts within the bashrc to enhance your user experience. There are tons of bashrc examples out on the internet, check a few out.

Also, since we added the bashrc command, you can just type ‘bashrc’ to go right back into the vim editor. If you just did this and want to get out, just hit :q {enter} and you will close vim, since you hopefully made no changes. If you do make changes, don’t forget to write them with ‘w’ before the quit. There are some good youtube videos on vim, i recommend checking them out. 

Since we’re on the fun train (pre emptive pun intended), let’s do one more fun package. 

So we’ve used the ls command, what happens if you type in sl, say you fat-finger the command and accidentally type it out of order. You get an error. NOT ANYMORE, ‘do sudo apt-get install sl’

Once that installs, type sl again. 

Get the train pun now? sl = steam locomotive. it’s completely useless, but it’s funny. If you want to remove it, you can type ‘sudo apt-remove sl’.

If you have been able to follow this article without issue to this point, then 1. you have a perfect linux computer and 2. you have great typing skills. Most of the people i’ve taught linux to have had some issues getting familiar with the interface. Speaking of issues, let’s talk about some common ones. 

Common Issues I’ve Run Into

Video:

If you’re an Nvidia fan, you’re not going to like Linux. While some distros may have been able to get Nvidia cards working for it, Nvidia does not support Linux. AMD ATI cards on the other hand openly support Linux. You’re going to have a much better time using Intel onboard graphics or AMD video cards. 

Audio:

Sometimes sound doesn’t work. This isn’t just linked to Linux only, it just happens on computers sometimes. Reboots can help, if not, google your distro and audio issue and there will hopefully be workarounds. 

Drivers:

Not every card, chipset, and device will work on Linux. Sometimes the generic drivers will work out of the gate, and sometimes you may have to get the drivers from the vendor or within the OS. Ubuntu has a driver manager which you can select the driver for devices like GPU, wireless cards, and other things. This is not a guarantee, but it’s your best bet. 

FIN

At the end of the day, Linux is a fun OS to work with and if you have an old computer laying around doing nothing, why not put Linux on it and go learn some new skills?

Feel free to ask questions in the comment section and I will do my best to help you out! Don’t forget to subscribe, I’ve got lots of new stuff coming out soon! If you want to see a writeup about something specific please let me know, if I know anything about it, I will add it to the list!

Appendix

ls: List directory contents. type ‘man ls’ for a list of arguments you can give this command and what each argument does.

cd: change directory, this is the same on windows

apt: package manager

man: manual page, argument is the command you want to see the man page for.

Autism: Some Career Advise From A Fellow Autistic

I recently wrote an article talking about the misconceptions of some of the career advice for autistic people. This was mostly my opinion, but I feel it was fairly valid given some of the other articles out there. I don’t want to discredit any of those articles, they have valid points, but they got one main thing wrong; the reason why those jobs might be better for autistic people. A lot of them didn’t give accurate expectations about those jobs, mainly the social aspect. 

In this series of articles I am writing, I want to talk about some advice I have been given over the years and some things I’ve discovered that might help some of you out there in your current job, or better prepare you for your future career. I’m going to go over some tactics for handling anxiety, ways to approach different social encounters, and what you can do outside of work to help maintain a solid state of well-being. 

Social Activity!

Whether you work in an office, an assembly line, at McDonalds, or run your own company, chances are you’re going to be talking to people through your day. Even developers working in a corporate office have to do a lot more socializing than they probably want to. What can you do about it? In most cases, nothing. There is an expectation in corporate America that you’re going to have meetings. If you’re lucky, they won’t be a daily occurrence. Being on the spectrum brings a whole plethora of problems for those diagnosed with ASD; social anxiety, lack of social graces, and an inability to communicate effectively in different situations. Let’s talk about what we can do. I don’t want this article to be focused around what non-ASD people can do to help, because in most cases it’s a lack of understanding due to the lack of proper education and there are a lot of people with disabilities out there and realistically we can’t expect everyone to understand all of these and be able to help. 

Meetings can be stressful, presentations can be downright debilitating and being put on the spot in a meeting you weren’t prepared for can cause a full system shutdown, even if you know you know the answer. It’s frustrating, it’s draining, and it can cause your whole career to come to a grinding halt. 

For ASD people, we have the luck of being typically logical people. I say this is lucky because I personally prefer it that way. I don’t feel sorry for myself that I can’t emotionally connect with someone, probably because I don’t understand what that truly means, but also I have adapted to use other methods to develop relationships. Being logical people at our core does not mean we lack emotions, there are some studies out there that argue that autistic people have stronger emotions and can feel stronger empathetic connections to people. Though, being a spectrum disorder I would argue this is does not encompass everyone on the spectrum. So how can we use this to our advantage?

Preparation, Preparation, Preparation

“Those who fail to plan, plan to fail.” Benjamin Franklin (supposedly)

Let’s run through a quick scenario. You get into work and you find that you have been invited to a meeting at 1:00 today. It’s about a topic you’re very familiar with, so it makes sense that you would have been invited to talk about this. You get to the meeting, sit in the chair that allows you to see everyone but also allows you to hide if necessary. You pull out your laptop or pen and binder and start reading emails or finishing that thought from before the meeting. The meeting starts, conversation is taking place and you’re being asked a few questions here and there about the topic, you stumble through answers but aren’t able to communicate effectively to drive the results you want. What do you do? Talking is hard!

Prepare. If you know what the meeting is about because thankfully someone actually put an agenda in the meeting invite, then you can pull up notes, jot down some most common answers (save that document, you will use it again) and go through the conversation beforehand to come up with any questions that might be asked. If you know the person or team you’re meeting with then you can tailor the notes to what is relevant to them. If you don’t know what the team does, it’s time to find out. Email someone on the team, ask them for a rundown of what their scope is, if you have a few days before the meeting, setup some shadowing time and let them show you what they do (this is a good time to ask questions about pain points if you’re going to be helping them solve a problem later in the week). The more work you do to prepare for the meeting, the better chance you will have to not looking like a blubbering fool. This was something I had to learn. Honestly, I use to chalk my inability to communicate to my autism and then do nothing to fix it. In reality, I had the ability to fix it, but I didn’t believe I could. This is why I am writing this article. I truly hope this helps someone out there.

However, preparation isn’t the only thing you can do. 

Be Present, Be Ready

Have you ever been caught off guard by a question in a meeting? I’m sure literally anyone reading this has had that happen. I wonder how many of us will admit that this happened because we spaced out for a bit, checking emails, texting someone, Redditing in the meeting. Like before, I just assumed I thought differently enough that putting me on the spot would cause my brain to just not work because I was anxious. In reality I found that more often than not it was because I was not IN the meeting. I came in, sat down, and almost immediately went to something else. This one seems easy to solve when I write it out like this, but it was not obvious to me. 

When you go to a meeting, bring only what is necessary. If you don’t think you will need your computer, bring a notebook. If you take notes on your computer, close down other applications (If you use Windows 10 at work and can’t afford to close the applications, use another blank desktop<https://www.windowscentral.com/how-use-multiple-desktops-windows-10>). Give yourself the best chance at being distraction free in that meeting. You were brought to that meeting for a reason, that reason is your focus for the next hour or so. Have any prepared notes ready, and get your pen out (seriously I highly recommend not bring a computer to every meeting if you can avoid it). 

Ask questions, take notes, be ready for any questions you anticipated because you came prepared. It’s a lot of work, but you will see drastic improvements in your meeting performance by doing this. However, there is still the issue of being interrupted. I don’t personally get angry or upset when someone chimes in to make a point or ask a question, but it can really throw me off. How can we mitigate this?

Set Expectations

If you’re like me and need to finish a thought before someone else jumps in or you will struggle to get back to finish your thought, then you’re in luck (well, not really because it kind of sucks) but I have thoughts. Let’s run through another scenario:

You’re in a meeting, giving a presentation and someone asks you a question that you weren’t prepared for, doesn’t make sense, or they just interrupted your presentation, and you find yourself at a complete loss for words. You stumble out an answer that may, or may not be, completely accurate because you want to stop talking to that person as quickly as possible. You can’t get back into your groove of giving your talk or answering the previous question because you have been thrown off. Or let’s say you are in a meeting, discussing a topic and you’re asked a question or interrupted mid point. Or some other similar scenario. 

I honestly haven’t found a 100% successful solution for this yet – If you have some additional ideas here PLEASE LET ME KNOW. What I have found, and do, that helps is to set proper expectations at the start of a meeting. Honestly, after I started doing this I found that I preferred to be the person running the meetings. 

The way I set expectations is as follows:

When everyone arrives to the meeting, give a well planned introduction. This whole section kind of uses the skills from the other sections above. What does a good introduction look like? I took a class on meeting management a while back, I don’t remember the name, it was some internal training course for my company. Nonetheless, they gave some good and bad examples:

Bad Example:

“Hi everyone, we’re gonna talk about ‘x’, umm, okay take it away joe.”

Good Example:

“Good morning everyone, 

We’re here to solve ‘x’. I brought a, b, and c person to this meeting because you know about ‘x’ very well or have a stake in this process/topic. I want to explain what the problem is, and what we’re trying to solve. At the end of this meeting we should have made a decision on ‘y’. I have a quick presentation to show you, if you could give me your attention for 5 minutes and let me finish before questions come up, we can get to the meat of this meeting”

See the difference? This does a few things for you and for the meeting participants. 

It gives ownership and shows value of those involved. People like feeling important. Saying “I brought you in to this meeting because you’re an expert on this subject and I value your input” will go a long way. 

You also explain the meeting, if you have prepared a presentation, you can have the meeting agenda pulled up to have something to show while you’re talking about what the meeting is about. An agenda can look like:

  • Introductions
  • Why are we here?
  • Quick Presentation
  • Discussion
  • Solve: “X”
  • Assign Action Items
  • Summary

The main thing for you, is it sets the expectation that you just need them to sit quietly for 5 minutes (or however long you need) to go through the slides or whatever demonstration you have put together. I have found that this gives you the best chance to set the tone for the meeting and get the time you need to finish your thoughts and keep people on track. 

There are always people who don’t care, will interrupt, and will just do their own thing, but for the most part I have seen a huge improvement in my own meeting performance. Like I said, because I started doing this, I actually prefer to run meetings now. I get to own the meeting and direct people to coming to a solution with minimal input from me sometimes. 

Don’t forget to take notes through the meeting! 

Treat Yourself , Take Your Time

Work is tough. For everyone. It’s not something you want to do every day, but to survive in this society, it’s necessary. You spend roughly 40 hours at work, plus drive time, plug getting ready to go to work time, making sure you get some decent amount of sleep. You don’t get a lot of personal time. While, according to industry data, autistic people prefer routines, I don’t like this routine. There needs to be a way to balance things better. Unfortunately, until we have a complete overhaul of corporate America, we’re not going to see major changes. So we have to find a way to give ourselves the time we need to recover and function well. 

Time off is important. Depending on the company you work for, taking a day off here and there should not be a problem, especially if you have the vacation time to take off. I have about 1.5 months of vacation time a year I can take off, plus some additional “misc” time. I try to use all of it before the end of the year. I will give myself a few 3 or 4 day weekends to recover and relax, do projects I want to do and not worry about work. I highly recommend doing this. For some reason in America, we have this pissing contest of who takes the least time off. I can’t wrap my head around this. Unless you live to work, you should make it your goal to be at work as little as possible. I come in, do my job, go home the moment I am able to. Some days I leave at 2:00, some days I am here a bit later, sometimes I leave at 10:00 A.M. and take a half day because I just don’t want to work anymore. 

If you don’t work for a company that allows this, it might be time to start working towards a new job. I know that’s much easier said than done, and there are a ton of risks involved, but sometimes taking a risk is better for your health, both mentally and physically. 

If you’re reading this article and plan on trying to do some or all of the things I’ve mentioned, it’s going to take effort and the results won’t happen overnight. You’re learning a new skill, which is amazing! Developing skills take time. Don’t beat yourself up over not being perfect at it and give yourself a chance to revert back if you’re getting overwhelmed. What I wrote might not exactly work for you, but you can adapt it to fit what does work. 

General Social Interactions

I have worked jobs both in an office setting, and outside of the typical cube farm. Both require you to talk to people. Your ability to do this effectively can make your life easier. I am no expert on how to interact with everyone, and my mentor is still working with me to notice things that are seemingly unimportant or just went over my head. 

For example, I have a co worker who is very bubbly. They crave conversation and seem to care deeply about the person they talk to, even if they don’t know them. Basic casual conversation like “How is your day going so far” seem to make them light up. I’ve never understood that and have tried to avoid them or keep the conversation to strictly work based things. I never meant to offend or hurt them by doing this, but they expressed in a conversation with my mentor that they were under the impression that I hated them. 

When this was brought to my attention I was confused. I had done nothing malicious towards them, what could have made them think that? 

It was because I was not engaging them in the way that was important to them. They wanted to ask about my kids and they truly cared about the answer. They wanted to know how I was feeling and genuinely wanted to make sure I was okay. I have never seen that before in someone that wasn’t a long time friend, or my wife. I made it a goal from that point forward to take a few minutes and have a conversation with her. I don’t go out of my way to make that conversation happen, but if she passes me in the hall I will stop and talk to her. It’s exhausting, but over time I gained a new champion of my work. They go around telling people about me and that has helped my career tremendously. They are my peer, how could they have more influence than me? Since they like to talk to people and have such great empathy, they have the ear of some of my leaders. Therefore they have influence that can benefit me, and they do so willingly and without any persuasion on my part. It’s just who they are.

Why am I telling you this? People are important. Sure they can be completely exhausting and frustrating since you may not be able to fully read or understand them if they are driven by emotions and social stuff; but they are important. Some of this will require a mindset change, I know it was for me. Since I found that I was always exhausted after working or hanging out with certain types of people (bubbly = tired), I just settled on talking as little as possible. Once I learned this skill though, I had to change my mindset and learn to engage with people in better, more productive ways. It is definitely something worth while. I’m not going to lie to you, I am still worn out after I get home. I went to bed at the same time as my kids just last night before I wrote this article. 

I don’t know if this is true for everyone with ASD who are verbal yet, I still need to get some better data on this, but the mindset change to value relationships more has improved my overall mood and reduced my anxiety. I very rarely dread the next meeting or conversation. I look forward to seeing certain people and I have developed some great relationships at work. To be clear, I don’t emotionally care about these people more, but I see the value. I lack the words to explain what exactly I mean, that’s the best I can do. I don’t not care about them? I don’t know. It’s hard for me to properly express. I see their value in general more clearly.

This might not work for anyone else, we’re all unique in our struggles, but if anything here does help you, let me know! I would love to hear some success stories from you. 

What else?

If you work in a large company, odds are you have some kind of internal training program. These can be in class training sessions, or video courses. Take advantage of them as much as you can. I recently took a class for managers. I am not, and have no plans on being, a manager. The course was called Fierce Conversations. This class was centered around the book “Fierce Conversations” by Susan Scott. It goes into great detail about delivering and having effective conversations that don’t damage or hurt anyone but does get the point, even if it’s not a great topic. There is a lot more in that book than just that, but I found the book and course to be extremely helpful. 

This next one is a little controversial. I do not recommend taking my advice here and I am not responsible for what happens to you if you do this. Talking to your manager and letting them know you’re on the spectrum has the potential to be beneficial. I know I’ve had bosses in the past who I would never tell about my ASD. The boss I currently work for has a son with disabilities. He does a lot of work for people with disabilities and when I told him, he was excited. I think he kind of knew there was something different about me, but didn’t ask for good reasons I’m sure. When I told him, he was able to get me connected to people he knew that could help me in different areas. I was able to meet people that had great skill in communication, managing meetings, presentation anxiety preparation and prevention, and a bunch of other areas that helped me learn so much. If you think your leader(s) would be receptive to this, then talk with them.

I plan on doing some more articles around career advice and things we all can do to help each other and how you can help yourself. If you have anything you want to add to this, throw it in the comments!

A Few Additional Tips

Never feel embarrassed to ask someone to repeat themselves. If you’re taking notes and they are talking too fast for you to type, there is no reason you shouldn’t be able to ask them to repeat themselves because you are taking notes. Just be polite, wait for a good time (don’t wait too long) and ask them to repeat themselves because you were taking notes. 

If you need get the meeting back on track, there is a good trick I learned that you can use sometimes to bring people back on track, and it focuses on someone repeating themselves for you. 

“Hey Mark, I am trying to make sure I have this recorded correctly. I wrote down that you said X {insert something they said before that you wrote down}. Is that correct and can you elaborate on that for me?”

You can modify that a bit to fit the meeting you’re in, but this will steer them right back to the topic at hand and you can keep the meeting going. I don’t recommending doing that for every single meeting, but it’s a good arrow in the corporate quiver. Just make sure you’re taking notes so you can pull that out on occasion when needed.

Linux Gaming and Proton

Back in the 1990’s, there were a number of games that were released that actually had linux support. For example, Unreal, released in 1998 actually had a linux port. Doom had a port, Quake, and a few others. Then during the early 2000s to about 2010, linux gaming struggled. Sure you had WINE, but it wasn’t perfect, or even good in some cases. 

Then steam became a thing and Valve decided linux was something worth supporting. 

Most of my computers, aside from a powerbook(see this post for why i have this), a 2010 MacBook and a newer MacBook pro, all of my other computers run linux. I decided not using the Spyware that is Windows 10 was not worth being able to play every single game out there. 

Then a co worker mentioned proton. Proton is Valve’s solution to linux gaming. You can enable this setting in steam and play a large number of games on linux. So I tried it out. 

I booted up my Kubuntu machine (I like the native cube desktop support because it’s pretty, no other reason), and opened steam. To turn on proton, you need to open steam, click settings, click ‘Steam Play’, and check the box to “Enable Steam Play for all titles” then you get to pick a proton version. I just defaulted to the newest version. It seems like some games work better on older versions. Google is your friend here if you’re having issues with some titles. 

Steam will install some packages and restart. Once steam opens back up, just download your game, launch it, and hope for the best. 

I will admit I was skeptical at first. However, once I booted up a few games, I was surprised. It’s honestly wonderful! I was able to play almost every game in my library on my laptop. There were a few games that seemed to have some issues running but overall proton worked very well. I was able to play about 85% of my library (which isn’t that big compares to some of my friends), with little to no issue. Even Doom 2016 worked, though I imagine that is because id software had linux ports for their older versions of Doom, and John Carmack is a big proponent of open source software. 

side note: I can’t wait until I have a computer so powerful that Doom 2016 has the same relative system requirements that the original Doom from 1993 requires today. 

I can’t wait to see what Valve does with this and I’m looking forward to more developers supporting Linux natively. 

If you have tried proton and you like what it does for your linux computer, let me know in the comments! I will probably be posting more linux stuff in the future since it’s my main Operating system for development, writing, and now gaming! (aside from retro games, see my G4 PowerBook post for details on that.)

Autism and Careers

Disclaimer: I am not an expert, this is just a perspective piece that I wrote to allow me to vent some frustrations I have with the current state of Corporate America. This is not meant to be taken in any way other than some blogger posting an opinion piece. If you disagree with what I say, let me know! Give me your perspective and explain why. I may agree with you, my mind can be changed. 

Autism character traits in adults

What does autism look like in adults? Well, it’s hard to explain, sure I can list out some of the average traits you might see like:

  • Difficulty interpreting what others are feeling
  • Difficulty understanding facial expressions
  • Emotional regulation issues
  • Conversation skills are lacking/trouble keeping up a conversation (one sided conversations)
  • Preference to repetitive behavior
  • Deep knowledge of one particular topic 
  • lack of eye contact (due to the painful reaction they get when making eye contact, or just a general discomfort when doing this)

And many others. However, autism is a spectrum. What might be more accurate to me, might not be the same for someone else on the spectrum. 

There have been a few things I personally have noticed with others that are also on the spectrum that I work with. I have a number of co workers who can’t go against the rules, now these rules might be that of the institution or rules that they created early in their life that they can’t break away from. Whichever it is, they stay right in line with their opinion of “correct”. 

I also notice a general ‘stiffness’ in their behavior. They walk around like they have a brace on their back keeping them upright and stiff. They are robotic in their speech, and very monotone. 

On the bright side, they are all incredibly smart. I mean, nothing short of genius in their area/field. It’s something I admire about them that I wish I had. If i’m being honest, I am average at best, I was not blessed with the autism genius (at least not in an area that’s relevant to a career). 

Each one of us have some overlapping traits, and many others that do not match. 

I see articles all over the internet recommending jobs for people on the Autism spectrum. Here is my take on that.

Jobs “they” recommend for autistic people

The jobs I see come up most often (there are some outliers that I will also address before giving my input) are:

1. Animal-Related careers

  • pet groomer – $22,710
  • dog trainer – $22,800
  • veterinary technician – $29,000
  • pet sitter – $24,760

2. Technology

  • Developer – $50,000-$100,000+ (This is highly dependent on your program language and role)
  • Computer Technician – $23,200-$48,600 
  • Database Administrator – $81,710
  • Network Security (wide range of jobs) – $30,700-$154,000+ (highly dependent on specialization and role)

3. Science

  • scientist – $45,400 – $92,800
  • lab technician – $25,200 – $46,400
  • researcher – $56,100 – $95,700
  • research assistant – $18,200 – $37,000

There are a few others like manufacturing, assembly line jobs, and a lot of other jobs with very little or minimal interaction, or that’s what one would assume. 

Why this is misleading

When I saw these lists before I was actually working in these fields, I was excited that I could have a career dealing with computers and not actually have to do much peopling! I don’t think anything has disappointed me more in my life. 

The reality – these jobs aren’t designed for autistic people. They are designed for their respective focuses. A developer position was created for someone who can code. A pet groomer is made for someone who wants to take care of and make animals look beautiful. So why are these jobs being recommended as the places to go? Stereotypes. 

I don’t mean this in a bad or negative way. This is just how we as a society view these jobs, especially if we don’t work in them. It’s generalization, that might be a better word for this. If you work with computers, you get some 2019 image of the 1950’s typical nerd with the big glasses and the plaid shirts and the suspenders and pocket protectors. In reality, technology based jobs have a massive range of opportunities, and the overwhelming majority require a lot of social interaction. Let me give some examples from my own career path.

Jobs I’ve done

I started my technology journey working at a small tech shop hidden away in a shopping center in Columbus Ohio. It was one of those shops that got started back in the 1980s with the Amigas and the Apple II computers. They only needed to sell a few computers a week to pay rent and the 3 or 4 employees that worked there because of how expensive the computers were and how cheap it was to live back then by comparison today. I started working in the back fixing computers, calling customers, giving advice to people looking to buy computers, discussing warranty information, options regarding repairing the computer or buying a new one and letting us transfer their data to the new one. Wait, that’s a lot of time spent talking to customers. I thought technician jobs were just fixing computers all day? No, in roles like that you’re seen as the resident expert on computers. The sales guys knew a little bit, but if the customer’s questions were out of their scope of practice, they called us up front. Also if a sales guy called off, one of the techs would help run the front. So to be a computer technician in most places, you need a fair amount of people skills. 

After I graduated from technician I got a few jobs in a call center helping fix computers over the phone, that is obviously a lot of talking so i won’t go into the details there. 

Then I finally landed, what I consider to be, my first real job. I worked in a Security Operations Center. Our main function was the first line of defense against hackers. Hacking HAS to be a job that requires little to no peopling right? Nope. Sadly I was disappointed again in the amount of meetings I had to attend to do lessons learned for new emerging threats and indicators of compromise, meetings where I had to give presentations, and a lot of collaboration with different people in my department based on their area of focus. Also, because I was so distraught at the lack of ‘me’ time at work and the fact that I was honestly under-qualified, I did very poorly at that job. There were other issues like, the team was so new they didn’t have a proper on boarding program and training regimen so I didn’t get much help coming from a service desk. Nonetheless, I still failed. 

They eventually moved me to the basement (YES) working on a new, emerging capability called Vulnerability Management. This was a job where the bread and butter was ‘Scan the network for vulnerabilities’ and report them to a database for our other teams to patch. Sounds like a dream autism job. Nope, like everything else there were lots of meetings, discussions, and when I became the resident SME, i was pulled in multiple directions to give advice and handle complaints about the tool not doing a good enough job. 

There have been a few jobs after that, but I won’t go into every little detail. The point is, all of those seemingly nerd-friendly, anti-social, basement dweller jobs were anything but. I didn’t even mention the number of “Team engagement meetings” and “team outings” and other “rally the troops” type stuff that corporate America loves to do. Every day, i go into work and have to socialize for anywhere from 15-80% of my day. And that doesn’t include talking to the people I actually enjoy talking to because we’re all overloaded and each person is working for 2 now because companies want to have everyone do more with less, but i won’t get into that any further. 

So the point of that whole story is this: Working in America seems to require a large amount of social skills. At least on some level. But, do jobs exist that are truly autism friendly? I honestly don’t know. Sure there may be some options that seem like good ideas like those ‘work from home data entry jobs’. I just have no exposure in that field so i can’t really comment on it. 

The other main thing i have failed to mention here is, I am somewhere in the middle on the spectrum. What about those of us who are non-verbal, or can’t express themselves in a way that allows them to do those kinds of jobs outside of the house without the need for an aide? There isn’t much; I know there are a few programs that allow people in that group to work short hours on very specific jobs within a company, and while those are great, I don’t know enough to report on any of that. Sorry. I don’t like commenting on things I don’t have a good handle on in a medium like a blog. I never want to be responsible for steering a struggling family in the wrong direction on something as important as this. If i come across some resources during my research in the future, i’ll add them to this post or link to a future post that goes into more detail. 

What can corporate America do to help and why they should

One of the most common traits i’ve seen with autistic people in the workforce, and one that I experience almost daily, is a lack of a desire to socialize when it’s superficial at best in the corporate environment. I don’t want to go to “All associates meetings” with such passion that it can ruin me for the next few days if I have to go listen to someone dribble on about ‘Agile workspaces’, ‘Innovation and Automation’, ‘team engagement scores’ and other things like that. I can say that’s one of the few things in life that I actually hate. I have to go sit in a conference room, or a giant auditorium for one to three hours surrounded by people, and that makes me feel so uncomfortable. On my less stable days, it’s physically painful. It literally hurts me physically to sit there. Some of my leaders have been understanding, but i’ve noticed the older my boss is, the less they care about me. Maybe that’s agist, but it’s my observation, blunt as that may be. 

Here are some things companies can do that cost little to no money or effort that can help autism people. Note: This is not a complete list, if you have additional ideas PLEASE post them in the comments, i would love to hear some different perspectives on this.

– Make “all associates” meetings optional, or provide virtual options. 

I do like to hear about some topics at those meetings, I really do, but to wade through the stuff I can’t care about, in a place that is giving me bad anxiety takes away from the potential impact of those topics. If I could virtually attend, I would, every time. I would also not have to deal with the 3 day recovery from those meetings.

– Get rid of the stigma of needing a quiet place to work.

I have had many leaders who touted the “importance” of butts-in-seats, eyes-on-glass, during the work day. There should be no reason someone (even someone not on the spectrum) can’t go grab a conference room for an hour or two and get some serious work done. The number of times my CISO, or VP has walked into a conference room after walking by and noticing just me in there, checking my calendar and seeing that I was the only one booked for the room and questioned my intentions is insane. I am getting work done, my track record has proven that. Sometimes people just need a distraction free work place. This is especially important with those ‘Agile’ ‘open floor’ work spaces.

– Working from home should be allowed more often

The company I work for is trying to get fewer people to work from home. Luckily my current boss is understanding, but there are others who need the time to be alone and get work done. (there seems to be a trend here). It’s 2019, virtual meetings, chat systems, and phones exist. Let’s use them.

– Let nerds be nerds. 

This one is really more than just for those on the spectrum, but it still applies. You as a manager hired someone to be an expert in an area. Let them do that function. I get the importance of some meetings, and I will always go to meetings I’m invited to, but let’s let the nerds be nerds. Example: Say you hired someone to work as a security practitioner (or whatever your company may call it), their core function is to find better ways to protect your network and utilize the tools and resources available to them to do that. Don’t also make them go out and attend conferences every quarter to ‘learn new ways to do the job’, the internet exists, their own brain works, let them focus on doing the job they were hired to do. Don’t make them “break out of their comfort zone” to appease your methods of how “things should work” in the corporate world. There are reporting tools and metrics trackers that are completely digital, Tableau, Power BI, Splunk could even do that stuff! Someone could even make their own! They were hired to be the experts in that area, let them do that. 

– Don’t make “engagement” a year end requirement for raises

If you were to ask an autistic person what they care about least when it comes to their job, engagement would almost always be at or near the top. Exceptions exist for every rule but they are just that, exceptions. If the role requires a high level of engagement to actually be successful, then fine, that makes sense. A developer who gets his orders from a project manager does not need a high amount of engagement. They get their job, understand the requirements, and code it out. Remove the need for engagement to get raises or even keep their job. 

There are probably a thousand other things that could be done as well, the things I’ve listed above are mainly what I’ve noticed and what has impacted me and those around me all across the neurotypical to atypical spectrum. Feel free to post your ideas as well and I will add some of them in and give you credit to your idea!

What Job do I do today?

I currently work as an Information Risk Manager with a focus on the third-party space, mainly doing with with big data analytics, automation, and risk reduction efforts. I spend a lot of time in meetings coordination multiple people from dozens of departments across the company trying to improve our risk posture and have been very successful in doing so. 

But wait, that’s a lot of social interaction, how do you do it? Very carefully. I have a mentor who was originally diagnosed with Aspergers, and he is a very successful manager and leader. He has learned to use his condition, if you will, to do things a neurotypical manager cannot do as effectively. He taught me a number of skills that I have been developing to set proper expectations of my teams, approach meetings in a way that will reduce my stress levels, and help me be very successful in my role. It’s still draining, if I didn’t have kids I would go home from work every day and take a nap. I do have the benefit of enjoying what I do. I typically work with very analytical people, and very very nerdy people who also don’t like meetings. A lot of our correspondences is through email or our internal chat system. 

Why am I telling you this? If you’re reading this and you’re on the spectrum, I want you to know that you can also do a job like this. In a future post I will try to go into great detail on how I have been able to perform at this job and be regarded as an expert and someone everyone can rely on. It’s not a trade secret or anything, and I want everyone to have the chance to be successful! We, those of us on the spectrum, just get the opportunity to approach careers differently. I say it’s an opportunity because it is a chance for us to prove to ourselves that we’re not limited just because we can’t understand what your furrowed brow means in context. We can use other indicators to identify our current state, see our goals, and achieve them. 

If you have some ideas or thoughts about anything I wrote, please let me know. My scope is still limited, due to my own resources not being infinite. Let’s start a dialogue and see what we can come up with! 

PowerBook in 2019?

Why in the world would anyone want to use an old, single core MacBook from 2004?

My PowerBook G4 running 10.4 OS X

Science!

First a little background before I get into the meat of this.

The Apple PowerBook G4, first released in 1991 according to Wikipedia, eventually replaced by the MacBook Pro in 2006. The MacBook Pro switched from the PowerPC G series processors to Intel processors.

When this switch happened, a lot of software from the old machines stopped working due to incompatibility. Since the G series processors were not using the same architecture as Intel’s processors, the software would not work.

There are a number of sites and communities out there that still love these old machines. One of my all time favorite games, EverQuest, had a mac server until a few years back, however you had to use an old Apple PowerPC to even run the software. Sites like r/PowerPC on reddit and macos9lives are a couple examples.

I was typically a windows user as a kid and didn’t get into Apple until around the time the iPhone 4 came out. I switched back and forth many times until i finally bought my first Core2Duo MacBook white unibody in 2010. I still use this computer almost a decade later, though there have been a few upgrades to the hardware to keep it going.

So, I wanted to see what the fuss was all about.

The Journey:

I wanted to get a PowerBook. After shopping online I found a 2004 PowerBook g4 1.33GHz. It came with OS X 10.3.9 and System9 installed. This would allow me to play much older games, and some newer ones I thought.

The computer cost me about $45.00 ($60.00 ish with shipping) on Ebay. Once I got a minor password issue figured out, I went to work trying to find software.

Since the computer OS is so old, Safari would not let me browse any websites. I kept getting certificate errors, as expected. I fired up my 2010 MacBook and setup FileZilla so i could FTP files over to the dinosaur.

I got the following software pushed over and running:

– Classilla (A OS 9 web browser with enough modern features that I could go to some of the old software repositories and download stuff onto my mac without too many issues)

– Doom I and II (because, can it run Doom?) [spoiler: yes]

– Civilization III

– Halo 1

– Libre Office

– Unreal Tournament (original) 

– and other games and applications to see what this baby could do

There were a number of issues with getting some software installed, some of the games were just too old or required a wrapper/launcher to get the game to run on OS X but I was having fun playing some childhood games that I played on my windows 98 computer.

 The computer ran like a champ, and the battery still worked! But it was removable so maybe the previous owner replaced the battery recently. I get about 2 hours on battery before I need to plug in. It’s nowhere near my newer MacBooks, but it works!

Once I got everything setup, I wanted to see if I could update the OS. I bought a copy of 10.5.8 (the last compatible version of OS X for the PowerPC), and installed that. The install took about 2 hours and it still runs smoothly. Which makes since due the hardware requirements being:

– PowerPC G4 or G5: 867mhz

– 512MB ram (I have 2GB)

– roughly 6GB storage if you install everything

– cd Drive (lol)

I think the most amazing thing is how much I take for granted with today’s computers. The G4 is a single core processor! Multitasking is difficult. I can do one action very well but if i try to access a file while installing a game, the computer struggles. Granted this is also a platter drive versus a solid state drive, but it’s still funny to watch the computer scream at me when I try to do more than one action if the previous action wasn’t finished.

The Conclusion

Overall I enjoyed setting this system up. I learned a lot of things about older software and hardware and got to revisit some of the old games that I grew up playing.

If you’re looking to do something like this for yourself, let me know in the comments section and if you run into any issues, let me know, maybe I can make another post going into more detail about the setup process.

Note: Originally posted on my other site, Linuxelis

I Did A Thing

Welcome, I’m good at titles.

Be yourself; Everyone else is already taken.

— Oscar Wilde.

I use to run another site, that’s still active for now (linuxelis.com), but I didn’t like the hosting software to I switched over to WordPress. I use to post things like tech reviews, consumer guides, etc. I stopped that as my focus, and removed most of those posts because I didn’t enjoy it (and a hundred thousand other people post those things).I am not going to be focusing on one particular topic just yet. I want to see what people find interesting and go from there!

What is GuinTech? Guin is the first part of my online personae, Guindel. All of my online in-game character names are Guindel or some slight variation. If you played EverQuest and we grouped together, let me know! I would love to talk to you about the good ol’ days! Tech is short for… Technology.

Subscribe to get notified when I post new updates.

I. Me. Dad. Pack Mule.

Honey, can you carry those bags too?

  • wife

According to the default text here, I’m publishing a post today. I thought I was going to be in charge here?

Why do this?

  • Because apparently you told me to. I had other things planned today.
  • Second bullet point. Generic reason. Mild humor.

The post can be short or long, (gee thanks for giving me that freedom)a personal intro to your life or a bloggy mission statement(*insert bloggy mission statement*), a manifesto for the future or a simple outline of your the types of things you hope to publish(until I read this, i couldn’t spell manofesminifes… *copy paste* manifesto).

To help you get started, here are a few questions:

  • Why are you blogging publicly, rather than keeping a personal journal?
    • Serious answer, I spend a lot of time googling things but I constantly find that I’m going through 10 different sites to find a complete answer when I’m working on projects. When I do project posts I want to have a ton of information, organized with tl;drs and answers so people of all skill levels can understand. This is also a place for me to vent about the state of ‘things’
  • What topics do you think you’ll write about?
    • Technology stuff, retro hardware and software, security posts, dad topics, career advice I’ve gotten from people smarter than me, possibly more, who knows!
  • Who would you love to connect with via your blog?
    • People. Nerds. Adults with autism.
  • If you blog successfully throughout the next year, what would you hope to have accomplished?
    • I hope to write something that inspires someone, somewhere to do something they couldn’t have without something I wrote.

Disclaimer: I have autism. I have spent my life struggling to find where I can be happy and successful. I have also tried to find out the definition of success. I still am. I want to use this platform to voice my concerns and maybe reach a few parents that have autistic kids and see if anything I write could help them help their kids better. I don’t intend to be controversial, but I have a few posts in the works that will make you think, I hope.