Tim Apple's Stuff

My central repository for everything I write whether it only lives here or is cross posted elsewhere. "Where there is love, nothing is too much trouble and there is always time" - Abdu'l-Bahá

100 Days of Code Check Sheet

I wanted to have a check sheet to hang on my wall to keep me accountable for coding. I saw some themed ones for Python and Web but wanted something more generic. So I just made one myself. I thought I would share it for those who would like to print one themselves.

Hundred Days Of Code Check Sheet

Cheers!

The State of Operating Systems (Controversial I'm Sure)

Historically

So I've been around for awhile now, at least a few decades of adulthood. Most of that time I was a die hard Linux user. I had stints of using Windows, especially back in the "World of Warcraft" days. But most of my early years I was setting up PPP connections to my isp in Slackware. My opinions on operating systems has changed drastically now and I thought I would jot down what I am thinking about the topic at this time.

Linux

Linux my dear old friend. I used to defend you with all I had. No matter how difficult you were I would suggest you to everyone. Then as years went on the difficulty went away. I think most anyone can successfully get some version of Linux installed with very little effort. Not to mention it is fairly easy to find preinstalled on a machine if need be.

...But, I find most applications inadequate for me these days. All the best apps seem to be things created for other OS's ported over or they are just web apps anyway.

Linux is much more a toy to tinker with to me these days. Of course there is no denying it's versatility and performance on the server side, nothing compares to be honest. On the desktop though, it's to fragmented, the applications mostly to simple or to buggy. I just can't bring myself to use it consistently.

Now do not be angry with me. I do love it, it's just not for me anymore and I have become much less a freedom fighter in my old age.

Windows

The cursed enemy to all! Well not anymore. With close to a decade of new leadership this boat has changed course completely. Not that it's all rainbows and unicorns, but they are way more open, the OS is less buggy, and in general it's actually become a pleasant experience.

Now with WSL if I do need to scratch that itch I can. I mostly open it and sudo apt update && apt upgrade . Then I close it again. For development Python, Rust, Flutter/Dart, Node, and of course .Net all run native and well for that matter. Not to mention the new Windows Terminal really is an improvement. I like it much more than most of the Linux terminals I've used.

All in all, I gotta say I like them these days and will continue to use it as my daily driver.

ChromeOS ##

Isn't that Linux? Well technically it is, but it's pretty well hidden. This is my new love. I'm typing this on it now. It's fast, smooth, pretty much trouble free. The occasional time I do bugger it up I can literally reset it and be back to work in about 5 minutes.

On the Dev side, I can run GUI Linux apps on it. I actually run VSCode and Android studio on it for Flutter development. With the bonus of being able to run/test Android apps on it. I've also run Node, Deno and Rust on it no problem.

Needless to say, ChromeOS is slowly becoming my favorite and I spend just about as much time on it as I do on my main Windows machine. And again, if I feel the urge to see packages update I can run my sudo apt commands on it.

Android

This is my mobile operating system of choice, I really like the ecosystem, I develop for it, and a couple other reasons to be mentioned below. Besides the variety and price points I can get a real good phone at.

The Apple Ecosystem

So all the Apple stuff. Just because I share a name with them doesn't mean I have to like them. But I confess, I agree that they're hardware is amazing. I have used iOS in the past and it's damn good. But they are not necessarily the best. I find them more trendy than anything.

But the main reason I don't use them is elitism. I call myself a developer and I want everyone in the world, no matter where they are located or what their income is to have the opportunity to take advantage of whatever awful software I may create in the future. I really am not interested in using products that only the wealthier people in the world can take advantage of.

Mind you, I have nice things. And they are expensive. I use a high spec Surface Laptop. My Chromebook is a Pixelbook Go with real good specs. But I know anywhere in the world the hardware and OS are available to the general masses, maybe without the performance, but they can use the stuff.

Conclusion

So as you may have noticed, this was very opinionated. It's literally just where I am at with my computer use. I've used most operating systems and like and dislike things about all of them. I do think opensource and proprietary systems can coexist and that they both have their own unique places they fit in the world. No reason to hate either.

P.S. BSD people, don't feel bad. I've used your OS also. And an honorable mention for Haiku. Cheers!

Setup Javascript Dev on ChromeOS

I originally posted this on Dev

I recently bought myself a Pixelbook Go so I could play with ChromeOS and I was pleasantly surprised at how great it actually was. This made me want to do some development on it. The set up was pretty easy and I thought I would share it here.

The Chromebook is an actual Linux machine running Gentoo, but we still have to install a Linux VM to get access to Linux. Luckily they make this ridiculously simple on ChromeOS.

Go to your settings and look for Developers and you will see the toggle to install Linux.

Alt Text

It doesn't get much easier than that. You just wait a minute or two and let it do it's thing.

Next we can install Visual Studio Code from this link. Just click on the link to download the .deb file as seen below.

Alt Text

Once you have it downloaded it should show in your Downloads in the file manager. You just then double click it and it will install.

Alt Text
Alt Text

You will be able to find VSCode in your Chrome Menu or through desktop search. You can run it and pin it to the taskbar if you wish.

Alt Text

At this point you can install your favorite extensions and be productive. But let's customize a bit and get Node.js installed and running.

Your Terminal app should be easily accessible in the ChromeOS menu. You can see it circled below.

Alt Text

Once we open the terminal we will be doing some text file editing so we will need to install an editor, I prefer nano.

$ sudo apt install nano

Next we will install the .zsh shell. I do this because it makes it easier to manage node with plugins.

$ sudo apt install zsh

Let's install a couple tools to make sure you have them also.

$ sudo apt install wget git

Now we install Oh-My-Zsh
$ wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh

$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

$ source ~/.zshrc

We'll add the plugin 'zsh-autosuggestions' this is very handy by using past commands to help you auto fill future ones. The command for install is..

$ git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

And zsh-nvm will help us keep a current node install and even change versions if needed.

$ git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm

Once you have done all of the above commands we will edit our .zshrc. First make sure your in your /home directory by typing cd and pressing enter. Next run nano .zshrc.
we want to add the plugins we installed earlier. This is a little further down the config. Just enter them as I have in the picture below.

Alt Text

Once this is done you will press ctrl + o to write the file and ctrl + X to close nano.

Now type source .zshrc to load your plugins and theme.

And now we install the LTS version of node simply by typing nvm install --lts

Now you can create a directory in you Linux environment using the terminal or your file manager. Then just right click it to open in Visual Studio Code.

Alt Text

You should be more than on your way now. If there are any details I may have missed let me know and I'll edit this document. I hope it helps. ChromeOS is very nice and light with battery power lasting ages. Great for when your out and about.

Alt Text


9 April 21

I learned that syncing your VSCode is troublesome. The issue is no key-manager installed by default on the ChromeOS vm. This fixes the issue and seems to add the least amount of packages.

sudo apt install gnome-keyring

Privacy Balance

Throughout the years I have jumped back and forth between extreme privacy and going all in on being a product. I have used most surfaces out there and I am always attracted to new ones whether privacy focused or not. So, I have tried a lot of things.

The whys

Why privacy? Well Google, Facebook, Microsoft, or any of the other various companies that track our usage sometimes make me a tad uncomfortable. Maybe I can even say violated. I have used all these services for years and sometimes you see that headline in the news about some ethically questionable practice they may have been caught in. I do realize that due to some social and business pressure they have worked on these things also. But that news item never fails to show up every few weeks.

Why not Privacy? The biggest thing is convenience and fun toys. Especially on the Google side. Being full in on Google's ecosystem and having an android phone is quite the experience. Sometimes I would swear I do not need to think. It is so nice that the services know what I need or want. But the drawback is the fact that they are looking at every little thing I do.

Striking a balance

These days I am maintaining a sort of a hybrid mode. I have my toes in both waters.

I am using google services a lot still, but my Gmail and Google calendar are relegated to some newsletters, tech events, game services and experimental stuff. Google maps is well, google maps and I just use that constantly. Also, Google Photos is a spectacular service and until there is a better way for me to organize and backup photos straight from my phone, I will be using it for the foreseeable future. I also use Google Tasks for grocery lists and Google Keep for quick miscellaneous notes.

Protonmail, Protoncalendar, and pCloud are what I am using for my more private stuff. Emails and appointments with family and friends. My more personal docs like taxes, marriage certificates, the kids birth certificates, and the like are stored in the encrypted folder in pCloud. This may be replaced with Proton Drive when it is available. Keeping to main companies will help simplify things.

All my other notes are in Standard Notes. I also use it to publish this blog. It is one of the handiest services I have ever used. It is very secure and private also, a win win.

The Future

I do not know if I will ever strike the perfect balance with all these services. Someday I hope the privacy focused ones find a way to make life more fun and convenient, while ate the same time keeping me safe. On the other hand, if services like Gmail and Outlook.com could find a way to do what they do and maintain my privacy I could go for that.

Until the time comes though, I will be juggling apps and services, experimenting with new ones, and trying to strike a balance in my online life, which in these days is a big part of our lives. Only time will tell, I guess.