Mac Mini with External Disk (and GPU?)

My Mac Mini (Late 2014) server has seen better days. In summer, the hard drive finally died. After checking the Genius Bar-approved price for fixing/replacing the internal one ($290 bucks, GTFO), and after looking at the steps to replace the internal drive myself, I looked into alternative approaches. Should I buy a whole new computer?

Luckily, Macs support running the OS off of any drive, including an external one. I looked into my ports and tech, and sought out a reasonably priced external drive that didn’t require external power, and could operate over Thunderbolt 2. I found both in this LaCie Rugged External drive.

The best decision I made this year was setting my little server to create Time Machine backups. After purchasing the HHD and formatting it, I was able to attach it to my Mac Mini, boot into recovery mode, and set up the new disk with my most recent backup.

After that was done, I needed to tell my Mac about its new home. Research led me to this article, and with some light configuration in System Preferences, I was booting normally again.

The only thing I haven’t worked around yet is the automatic detection of the defective disk on boot. I’d prefer it if the thing never tried to mount, but without detaching it, I suppose the OS will see it and try to communicate in some way.

My next challenge to extend the life of this machine a bit longer is to look into setting up an eGPU. I was reading about this here, and it seems like a pretty painless process. I may look into this in 2019.

webpack & npm

If you are using webpack for your module bundling, you may want to take heed. There’s a small but very annoying problem you can run into if you’re testing npm modules in your project.

First off, a brief list of related commands to keep in mind:

  • Lots has been written about webpack (and how it compares to all it’s forebears and bretheren. I’m not gonna do that. Go here instead if you wanna dig into that more. I’m mostly talking about config here.
  • npm link is useful if you have a development version of some package, and you want to use that version in your project. It’s actually a two-step process, but I’m sure the doc.s were clear on that, right? :~) Anyway, I’m not going there either.

Let’s say you have your project set up MegaProject, and everything is npm install‘d and stuff. Great. Your project has dependencies set up, and you’re also using babel, and some plugins… all nicely configured in your webpack config. All is well.

Let’s further say that you have some library foo as a dependency that you also have control over, and you need to make a change there. Now, because you don’t want to just test foo standalone, you write your tests and code first (you … do have tests for everything, correct?).

Everything passes! You’re on the road to Success City. You’re ready to do the npm link dance and test things end-to-end with MegaProject.

And you try to build MegaProject, and you get cryptic errors about plugins missing. Why, man!?

You know, you should read that error message more closely. If you notice, it’s using the full path where your development copy of foo is. Not where MegaProject is! Why, man?!?

Let me introduce you to my friend symlinks. Because of how paths are parsed when finding dependencies, it won’t find any plugins or code that exists in MegaProject that aren’t in foo. To make it, you need to add symlinks as false to your config so that it will treat your linked project as if it actually is within MegaProject.

Headache resolved! Just remember to unlink before you go publishing anything.

What If

What if you picked up one piece of litter each day?

What if you answered that call?

What if you gave one meal to a homeless person?

What if you voted that one time?

What if you drank less just this once?

What if you told your mother that you love her today?

What if you helped build a house next year?

What if you took a chance on that small company for a Christmas gift?

What if you shopped locally tomorrow?

What if you donated a Give Back Box on Boxing Day?

What if you held the door for a stranger once more than normal?


Each change is just a small one by themselves. But if everyone did each of these, what would the country be like?

Alamo Plaza Hotel Courts

It’s been a minute, so I thought I’d make a quick post. I was doing some research on motels, and found out about one chain with a bit of related Chattanooga history. I’m a sucker for things that make it a noteworthy city!

A couple things to note:

  • Like most motels, this place lost a lot of luster during the 1970s and 1980s. It was closed in the 1990s and demolised in 1996.
  • I don’t recall seeing any of the buildings, tho I’m sure we went by there at times.
  • This land is currently occupied by two small buildings: an ice machine, and a coffee wagon. Sad.

In any case, Chattanooga hosted a very 60s revamp of the motel/hotel chain. The intent was to resurrect it as a valuable place for tired travelers. That didn’t happen, and the only remaining building is in Shreveport.

http://www.highwayhost.org/AlamoPlaza/alamoplaza3.htm

 

 

On loss

My uncle died Saturday, November 4, 2017. That morning, I woke up to a flurry of urgent messages from my brother and mother. At the time, I wished to do anything but reply. I didn’t know who was suffering, or what I was going to discover. My mind raced to find something else to distract me from the inevitable dialing and listening, and prepping myself for the uncomfortable information. My brother told me directly – he didn’t want to type or leave a voicemail with the details.

A day or two later, I had tickets booked and was ready to head back home for the funeral a week later.

Between the news, talking to family members, and making arrangements, I had a lot of mixed emotions. Parts of me initially drifted toward anger, and memories of his past faults. Other parts then drifted toward laughter over fun times we had as a family. Still others were sadder echoes of moments that can’t be retried. Those times where I declined his invitations, or didn’t respond to him in a timely way. The gremlins of regret stoking my tear ducts for a fresh flushing. All of these were there, intermingling with every other memory that came to me, and logistics about cross country travel on such short notice. I needed a distraction.

While cleaning, my eyes crossed the bookshelf where I keep a small photo album of graduation pictures. I had a flashback and my eyes warmed. In that album were two specific photos: one of me and my uncle at my high school graduation, and one of us when I graduated college. Two events significant to me, and now newly significant because of his passing. Because, outside my immediate family, he was the one that came to see these milestones of my life.

Small gestures like this often gain significance during our sad times. As a young man, I didn’t think about his presence those times. I didn’t think too long on what difficulties he may have faced coming to Chicago. I wasn’t worried about whether he wanted but couldn’t come to see me graduate from DePaul in 2015. I didn’t think to send an invitation — not out of malice, but mostly due to the timing and knowing he would have struggled to travel. It’s difficult to think about.

And thru this most recent passing in the family comes a final, and hopefully transformative, realization. Loss is not bound by the life of the loved one that was extinguished. For each of us, it is defined by the opportunities we will never have again. Those opportunities to make things right. Those chances to do something kind, or to share your feelings of approval or disapproval, to become more of a friend, or closer family. Those gremlins thrive on our regrets and every day is a dance to starve them or give them more fuel for your future grief.

We will all lose those close to us some day. But we don’t have to lose a chance to get closer. Take advantage of life, and reflect on what those who love you have done for you while you can.

OpenStreetMap

Here’s a map of Chattanooga, TN . Nothing really special about it, except that it’s on OpenStreetMap. Think of it as a Google Maps that you can edit (wikipedia maps?). I’m an editor (all those lines, squares, and tagged bits of information are manually inserted by someone, and a few of them are mine).

Why would I edit this in my spare time? The easy and obvious answer is that I find it therapeutic, so it’s fun and relaxing to me. I also love maps/cartography, and being able to do a bit of that makes me feel like I’m making the world a little bit more orderly.

I also think we all need to focus more on Human Intelligence tasks that are open for everyone. Apple Maps and Google Maps are wonderful products, but they are controlled by corporations who have motives for when and how edits occur. At least with this map, we all have the ability to make sure our own corners of the world get covered.

 

A blog for/about my games development

Those that know me have heard a little bit about the board game I started on this year. It’s going well! I’m a bit behind, but happy with this first effort. I recently realized that it would have been fun to write about the process, so I’ll write about the remaining bits, summarizing old decisions along the way.

But not here. I’ll create a separate blog for tracking that, and any other games that I make. The ideas are there – “there” being my head and loose sheets of paper – but it should be a nice exercise to help clarify the thoughts around the games, and get feedback from those who know better. Stay tuned.