Post/Code

HomeAboutUsesNow

Rabbit Holes.

Late last year I resolved to unlearn and relearn my skills as a developer. While I have done this at various points in my career, what was important to me this time round was to write about it. To put what I learn and some of my thoughts around the topic on the internet. Regularly. And to learn a whole lot of new things along the way. For the past month or so, I have kept to it. Almost daily. However, since Thursday night last week, like Alice into Wonderland, I found myself heading down a rabbit hole into a collection of strange errors and poor choices. I am still not quite sure I am out of the rabbit hole, but at least I am putting a post out there! So where to begin?

This site, has been developed on a MacBook Pro Retina 13-inch late 2012 model, with a 2.5 GHz Intel Core i5 and 8GB of memory and 120GB of storage. Up until I bought this machine a few years back, I had only ever worked on Windows machines. The company I work for uses Windows exclusively, except for two iOS developers. As such, I am a Windows-user by day, and Mac user by night. Due to my travels and several relocations over the past few years, I have not had a continuous, fast internet connection, often relying on mobile data via mifi hotspots, wifi or whatever internet may be available where I am staying at any particular time. As such, on both my iPhone and MacBook Pro, I have never configured continous backups to iCloud or any other service like that. Hand in hand with these same travels and movements, my photo collection has expanded rapidly over the same time period and space has become a rare commidty on this machine. To the point that, actively managing the meagre space I have left over after Photos has become an almost daily chore. I am greeted with modals telling my memory is full or near to it, multiple times a night.

At the very same time, as this site may indicate, I have been learning Node.js, Express and Azure and eventually wound my way to MongoDB. Which, in turn, lead me to the crux of the matter. In order to install MongoDB on a Mac, you use Homebrew. When installing MongodDB via Homebrew, I was rather unceremoniously informed that my XCode was out of date. Considering I hardly ever use XCode, I decided to be done with it and removed it completely. Because:

  1. As mentioned, I do not use XCode.
  2. XCode takes a lot of space and removing it would free up a scarce resource.
  3. XCode Command Line Tools are available as a separate install, which, for the most part, means Homebrew can run smoothly

But... it was not to be. Despite cleaning up my brewery according to brew doctors helpful recommendations. Installing XCode Command Line Tools brought no respite. The brew install mongodb command informed me, no, I need the full XCode.

Damn. Enough was enough. After some grumblings to my own self along the lines of "Why the %^&$ would MongoDB REQUIRE a full XCode?", I took a breath and reflected on what I could learn from this experience?

  1. I need to free up space on my machine so I can continue working without losing my memory management mind.
  2. I really do need to backup my Photos and other files to the cloud (a single external HD is not enough!)
  3. The obstacle is the path.

Backup Blaze

My first thought was to backup all my Photos and videos to iCloud. Easier said than done.

After running into some strange iCloud username and password scenarios and it getting late after a long day, I decided to drop iCloud and find out whether all these good things I hear about Backblaze are true?

So I signed up for the Trial Period and started backing up. After following the link saying "How long will my backup take?" How long indeed I wondered? Answer: Twenty. Five. Days!

Now, this ADSL connection runs at more or less 7-9 Mbps download and hovers in the region of 1-2 Mbps upload. Not exactly Speedy Gonzalez. Helpfully, Backblaze said I can continue using my laptop as normal... Not quite. When your connection is not that fast to begin with (even slower during peak-evening times) and your laptop periodically loses wifi signal when it sleeps... Well, I am 7 days into my backup and to be honest, I have no idea if it is closer to being done or further way from being done. On Saturday Backblaze said there were only about 9000 files left, and today there are apparently over 18000 left. So what's a guy to do Backblaze?

Part of my resolution to learn new things, is, due to my limited time after hours, made up of watching and coding along with tutorial videos which I (usually) stream at around 1.5x speed. This helps me see other coders work, code along, struggle and learn in an accerlated environment. With my backup happening, this slowed to a crawl since streaming video was now more like a stuttering/buffering contest than anything. Listening to a continually buffering video is a sure way to lose your mind and patience.

At the same time, my past few work days have included less coding/problem solving than I usually do. We are busy onboarding a new tester and this highlighted the fact that our Confluence pages were woefully underpopulated and our Jira workflows needed some revisiting. Alongside this, I was mostly preparing, testing and revising some existing code and functionality for a release this week. As such, the "Today I Learned" side of things has been somewhat underpopulated in terms of pure code and tech the past week.

Granted, there is a lot more I can write about than just code snippets, commands and steps. I decided however, that since it was the weekend, and since my machine had a lot of backing up to do, I would take a break. Curiously, on Monday, after getting home quite late and performing my ritual "Backblaze Progress Check" I tried to open Chrome and get coding again. Chrome would not open. As in, click to open Chrome. Nothing happens. Maybe Backblaze is hogging up some resource Chrome uses. Onto Safari. It opens. Sweet! Type in a URL and... Safari closes. No crash. Just. Closes. Every. Time. Being Monday and being late I decided to leave it to another day. Come Tuesday, and we are gearing up for a release Wedneday, so work turns into a long day and I decide to just leave it one more day.

So that is how you lose your habits! The same way you build them. One day at a time.

Be vigilant with your breaks from habit! No matter how small, and for what reasons. This is how you go from daily, to weekly, to monthly, to your annual "New Year's Resolution". If you go down the rabbit hole. Take a moment to stop and reflect on how and why you ended up there before burrowing even further. If not, at least write about it!

The road to hell is paved with good intentions. As well as bad backup practices and not having enough space on your MacBook.