Life with the MacBook Air M1 from a web developer

    Last week I received my MacBook Air (16 GB/1TB). It's the first brand new computer I've bought personally in 12 years, the latest being the 2008 Mac Pro. I've had a slew of work provided MacBook Pro 15 inchers, 2013/2015/2017 (current), and my main desktop is still a 12-Core 2010 Mac Pro with Radeon VII 3 SSDs and 96 GBs of RAM, so these are going to be my comparison points. I've seen many benchmarks but less about what it's like to be a developer with one.

    MacBook Air M1 while writing this post

    It's fast in very unconventional ways, resizing the resolution doesn't even flash, and it wakes instantly and unlocks fast in a way my work MacBook Pro 15 inch 2017 doesn't. It's also fanless, which is just outright incredible. It's, of course, dead silent. The last computer I had that didn't have a CPU fan was a G4.

    I have to mention the keyboard. It's really ridiculous that we should talk about keyboards at all on a luxury brand like Apple. For years Apple had the best laptop keyboards of any make, then from 2016-2019 changed to the dreaded butterfly keyboard (which caused horror stories of individual keys failing) and added the horrible touchbar as an additional insult. I would have paid extra not to have the Touchbar. The MacBook Pro has the Touchbar (along with slightly better mics and speakers, a fan, and larger). The MacBook Air does not. The typing experience is much better than my MacBook 2017 and reminds me of my 2013 and 2015 MacBooks.

    Development is a bit clunky. Homebrew requires prepending everything with arch -x86_64 to use the Intel binaries as Homebrew is barely alpha for Apple Silicon. NodeJS is Intel. NVM is Intel. Ruby via Homebrew is Intel (ruby comes preinstalled, but if you want to use pain-free global packages, you'll be using the homebrew version). Git is Intel. Webpack is Intel. Android Studio is Intel, but the emulator is ARM native. WebStorm is Intel. There are a few like BBedit and VSCode that have dual binaries. It feels fast, but due to the amount of Rosetta 2 binaries, not nearly as much so. Speedy but not so much more than my 2017. I've yet to try Docker as it was just released.

    Firefox on the m1 is as fast I've ever seen time-to-paint and JS execution. It's really fast. It didn't even blink when I loaded up a TweenMax animation I made with a complex SVG with thousands of polygons that kicked my 2017 into leaf blower. The M1 absolutely shines surfing the web as it's incredibly fast. It's the fastest I've experienced. I do not say this lightly as a significant part of my professional life has been coding web pages/web apps to render quickly.

    Apple Motion performance is a bit of a grab bag. It certainly does well for an ultra-light laptop, but if you're working with big ass PSDs, multi-video clips, and so on? The RAM and middling GPU performance show, whereas codec mashing is pretty impressive. The M1 with Pixelmator's ML functions smoke my MacBook Pro badly. 16 GB of RAM is still 16 GB of RAM. Rendering to RAM is still as constrained as my MacBook Pro.

    Unified Architecture

    The M1 isn't just a CPU as it includes the GPU, and the neural network cores, image signal processor (ISP), an NVMe storage controller, Thunderbolt 4 controllers, and a secure enclave coprocessor. The M1 is a SOC. The CPU itself has four high-performance Firestorm cores and four energy-efficient Icestorm cores. Rather than paraphrase, it's best to quote Wikipedia for the following:

    The high-performance cores have 192 KB of L1 instruction cache and 128 KB of L1 data cache and share a 12 MB L2 cache; the energy-efficient cores have a 128 KB L1 instruction cache, 64 KB L1 data cache, and a shared 4 MB L2 cache. The Icestorm "E cluster" has a frequency of 0.6–2.064 GHz and a maximum power consumption of 1.3 W. The Firestorm "P cluster" has a frequency of 0.6–3.204 GHz and a maximum power consumption of 13.8 W - Wikipedia: Apple M1

    We've come a long way in dynamic frequency scaling since the Pentium M (one of the first widely available CPUs with the ability to adjust its frequency). Dynamic frequency scaling allows a CPU to change its own clock speed based on how much stress the CPU is under in order to save power. Every Intel Mac made has this ability. The M1's CPU clock speed ranges from 600 MHz - 3.2 GHz in the high-performance cores and 600 MHz to 2.064 GHz in the low power cores. It's quite a range.

    The hype train about the M1 and RAM being different is being misrepresented. Unified memory means the GPU and CPU share the same memory, reducing the latency of caching data into the RAM to then be transferred to VRAM. Both the GPU and CPU have access to the same pool, thus speeding up the process. This comes at the cost of not having a separate VRAM buffer, which can be used independently for parallel processing/render buffers, as well as the more "typical" functions like caching textures. Unified memory architecture isn't new as game consoles for decades have used it to great benefit. It's one of the reasons why a seemingly underspeced console like Xbox 360 with only 512 MB of RAM was able to effortlessly produce HD graphics in 2005 below the cost of a single GeForce FX 5950 Ultra. I suspect a good deal of users over-estimate their RAM usage as memory pressure in modern macOS is far more indicative of RAM performance than memory usage. macOS since 10.9 Mavericks uses RAM compression, which the M1 architecture fully embraces. Also, modern OSes intelligently cache less accessed memory spaces to disk buffer. Combined the previous with the speed of NVMe SSDs, virtual memory isn't nearly the speed hit. While I'll routinely stress my MacBook Pro 2017 with its 16 GB of RAM, it usually does pretty well with a large suite of utilities (I'd like more, of course, as it'd speed things up. In the era of M1 Macs, RAM is just as important as it ever was regardless of what MacWorld says, as it's now doubling as your VRAM too.

    I can certainly see a future where none of the Macs feature upgradable RAM thanks to unified memory (unless engineering allows otherwise). This feels especially problematic at the pro level, a Mac Pro 2009 can use 128 GBs of RAM, and Apple has only produced a grand total of 4 computers since then that can use more than 64 GBs of RAM (the Mac Pro 2010, 2013, and 2019 and the iMac Pro). There's certainly going to be some resistance to paying upfront, especially when some edge cases users are thinking hundreds of gigabytes if not a terabyte of RAM. The benefits might be outweighed by the sticker-shock of a machine that's performance locked as there will be no RAM or GPU upgrades. Whereas on the PC side of things, you'll be able to offset the cost by waiting to upgrade. Sure, it might not be as fast out of the box, but in two years, you won't need to buy a new computer to achieve modern GPU performance. This alone is places Apple Silicon takes its speed advantage at an economic disadvantage.

    The question is, "How will this calculate?" The only way this math makes sense is when buying computers that already face this issue like laptops (where upgrade options are sparse if available at all), or you believe Apple will be so far ahead of the curve that the issue becomes moot. Apple already drove en mass the VFX and a large chunk of the video world away from Apple with it's double-fault of the tandem releases of the 2013 Mac Pro and Final Cut Pro X, and later a childish feud with NVidia. While I doubt it'll be near as a dramatic shift, I can see a future where Hollywood further pivots from Apple. Hopefully, Apple will allow discrete GPUs along with its own GPU cores as Nvidia and AMD wildly ahead of Apple and not slowing down for them to catch up.

    Back to the M1, the video output is pretty disappointing as it can only drive one external monitor. The GPU does what it needs to do and works well in video editing and codec mashing but less so elsewhere. I imagine that this is probably enough for most people, but I am not most users. I used two 4k monitors (32-inch + 43-inch) plus my 15-inch display on my MacBook Pro for work. Fortunately, I knew this limitation going in, but it is pretty pitiful considering the Intel MacBook Pro 13 can drive two 4k Monitors at 60 Hz, and the 2019 MacBook Pro can do four 4k displays at 60 Hz. The GPU is pretty weak sauce for gaming. It's better than the Intel integrated GPUs, which isn't exactly something to brag about.

    A few Mac publications gleefully posted that the M1's GPU's performance is that of an Nvidia GeForce GTX 1050 Ti, an ultra-budget GPU released in 2016 with an MSRP $109 at launch. They also compare it to the RX560 and mention that it requires 75w. That's true for the desktop version, but it has a mobile version that does not draw 75 watts. It is found in the MacBook Pro 2017s and can drive three external monitors, and incidentally will produce higher framerates in games in Windows than the M1 can in macOS. All that nerdage aside, the 13 inch Apple laptops have never had dedicated GPUs, so this is a welcome upgrade but not an eyebrow-raising one and strangely limited with external displays.

    Battery revolution?

    That 16-hour battery life? Ha, no. Not when doing development. It seems like I could make it more than the 2-3 hours my 2017 does but more like 4-5 hours. I imagine when we see more M1 binaries, this will improve, but the constant disk swapping for memory is always going to be a battery cost. Right now, a bulk of the toolchain is Intel. I assume this is a bigger battery hit. I also noticed when trying SourceTree, and my battery was being zapped. Perhaps this is a temporary state thanks to the x86 emulation, but ARM's supposed battery magic seems less exciting if your eyes have wandered to the PC market as of late. PC makes are routinely advertising 15-hour batteries at lower price points than the MacBook Air and surprisingly at similar weights. I cannot attest how accurate they are, but it is surprisingly combing Costco to see laptops serving up solid machines at $800 with 512 GB NVMe SSDs and 16 GB of RAM with late gen Intel or the newly minted AMD chipsets, all with the battery life associated with the M1, nearly half the price of the M1 with the same RAM/storage. ARM isn't going to be the extreme battery life extension that some had hoped, but the M1 firmly puts it at the top of the pack in laptops.

    Yes, you can still install whatever apps you like

    There's a lot of misinformation about the M1 and Apple lock boxing it. I can assure you it's not what you think it is. See the screenshot below.

    OpenEmu is able to run unsigned

    Left: the warning users will receive without right-clicking open. Right: warning message when right-clicking/option clicking bypass

    Not condoning it, but if you really fear the inability to run illicit software, yes, you can do that, even Apple binaries. I've also run unsigned x86 code. SourceTree and OpenEmu both gave me spooky warnings, but I was able to run them after right-clicking. The fear-mongering is just that.

    So how does it compare to my Mac Pro? Mostly faster with just a few asterisks. Even my 2017 MacBook Pro is often quicker in many tasks since a lot of web development (javascript) is so single core tied. Anything Node uses a single core per instance. The Mac Pro, though, still is my preferred box, but as my first new computer purchased for myself (I've had a flurry of work 15 inch MacBook Pros: 2013, 2015, 2017) since my 2008 Mac Pro, it's a damn fine computer.

    iOS Applications and macOS

    Running iOS apps is next to worthless. I thought it'd be nice to have a dedicated HBO Max app, but you cannot scale the app windows. When I tried to download Slack just to compare iOS vs. the shitty Electron app, I couldn't find it. It turns out it's listed as incompatible Same went for Gmail. You need to pull the IPA off your iPhone or iPad with a utility like iMazaing. Annoyingly, I do not have an iPad, so I cannot compare Slack's experience via Electron vs. native. The use cases seem pretty narrow, but perhaps with some hardware that that iOS only via Bluetooth, it'd work via the laptop. Apple's love and affection often seem too focused on the iPad Pro. It's a device that's not terribly compelling to most professionals as everything in its workflow is a compromise and functions as a spiffy niche device. However, the possibility of dual-booting to macOS or at least entering a "Finder" app when a keyboard with a trackpad is plugged means Apple could, in theory, make the iPad Pro a Mac. I'd be very surprised if Apple isn't playing with this idea. To date, I haven't seen this intuitive leap made by anyone other than me, but I cannot be the only one. I also can see the other side of the coin where Apple fears cannibalizing the near-non-existent pro app market on the iPad.

    What about Windows?

    Windows does have an ARM build, and with a Rosetta-like translation layer that currently only supports Win32 binaries (not 64-bit). That will certainly change as Microsoft has the technical chops. Apple's official policy has been "Really up to Microsoft." I highly recommend reading the linked article. Thus far, there isn't a way to run Windows natively but you virtually run Windows via Qemu. The performance is impressive.

    I can't say if Redmond will move to make Windows ARM run on the Apple Silicon, but Apple doesn't seem like it'll be adversarial. There's still a question if Windows will include proper drivers for the ML engine (or if Apple would be game to at least provide support) and GPU but it seems promising. Fingers crossed, we'll see a return to dual-booting Macs or at least ultra-high quality offerings from either VMware or Parallels.

    Final Thoughts

    For most people, this is the laptop you want unless you're a professional. I would not have bought this as my primary work computer due to the software hurdles of being an early adopter and some of the hardware limitations (lack of video out beyond a single display, and only 16 GB of RAM). I don't regret it as I was heavily considering buying a MacBook Air for travel last year when we could do such things, but we're gonna see some monstrous CPU performance when the M1X (or M2) hits the shelves in the MacBook 16 inch. That said, there's a bit of an asterisk. It's unclear if we'll see nearly the year-over-year gains once Apple ratchets up its core count. Right now, we see the whiplash of a new architecture. Apple's year-over-year performance on the iPhone has been breakneck so there's no reason to assume the Macs won't be the same. I expect Apple to be the leader in portable performance but desktops? Not really. AMD has Zen 3 due out in 2021 with bold claims of 50% improvement on processing power to watt efficiency and then early 2022, Zen 4, again boasting another 50% improvement on processing power to watt efficiency on a 5nm die with PCIe 5.0 bringing a 16x PCIe slot to 64 Gigabytes (512 Gbps). AMD already has today in 2020, 128- Core Epyc CPUs. Brute has its merits too.

    If I sound a bit negative, over the years, I've learned is my deep-seated skepticism generally doubles as the closest thing I have to intuition. The Apple MacBook Air M1 is impressive, especially in the class of laptops without dedicated discrete GPUs. Its single-core performance is so good (as is Rosetta 2) that running x86 is often faster than other Intel Macs, and native applications are even faster. macOS feels less pokey on an M1. Thanks to years of optimizations in the iOS arena for things like javascript, Apple Silicon is incredibly fast. In some ways, it's the fastest computer Apple makes, which is mind-boggling. In others? Not nearly as much so. Most pros probably should hold off as too many tools are x86 or using less-stable nightly builds or, worse, not working (audio apps are hit especially hard). Everyday users, though, will find the M1 incredibly zippy, especially if coming from several-year-old computers.

    Apple's willingness to through caution to the wind and continually kill long-term support is the gift and the curse. Windows X can run many Windows 98 applications in an emulation layer. Windows X finally stopped distributing a 32-bit version of it's OS. Apple won't even support 32-bit binaries. MS's support now ranges in the decades for a considerable amount of software and hardware. In some facets, MS makes Apple look silly. The supposed bloated Windows X is faster> than macOS in many tasks (macOS is usually the bottom rung when compared against Windows or Linux), but it's also marred by a maddening UI that has two control panels, an absurdity when it comes to *nix flows (but hey, it has Ubuntu that can run as a virtualized kernel). Meanwhile, Apple has going 68k -> PPC -> x86 -> ARM with the Mac platform, and two OSes (as Mac OS 7-9 and OSX/macOS are effectively two separate operating systems). Apple isn't above criticism, but betting against Apple is foolish.

    Due to the architecture of the current M1s, I think we'll see computers with real quirks. It's quite possible we'll see 27 inch 5k iMacs capable of editing 8k video but unable to play games maxed out even at 2560 x 1440 or connect to more than two external displays, let alone with the latest features like ray tracing. Typical GPU tasks like codec mashing and machine learning/tensor flow will fly on the Apple Silicon but leaving the happy path to perform tasks like digital noise reduction (DNR), gaming, and 3D rendering will be vastly behind AMD/Nvidia. ARM doesn't implicitly mean non-modular, SOC only, as we've already seen. For the portable class of computing, the Apple Silicon looks like it'll be unmatched (and expensive). Brute Force vs efficiency will be the story of x86 versus Apple Silicon versus ARM, and I suspect there won't always be a clear winner.

    Welcome to the next decade of computing.

    Blog Upgrade

    This is my first post from the first new computer, a MacBook Air M1, that I have bought personally since 2008, a Mac Pro. I've owned a flurry of work laptops MacBook Pro 15 inchers from 2013, 2015 and currently, a 2017, and I bought a 2010 Mac Pro a few years back. I haven't had my own personal laptop since 2013.

    I finally updated to Jekyll 4 which was annoying as I had to upgrade pagination. I think I've finally hit a place where I've outgrown Jekyll for blogging software. There's some new static site generators that look a bit nicer, as I still write my posts by hand in HTML as if it were 1994. I can write HTML in my sleep (and probably have) but it detracts from writing. If there's any general weirdness on the blog, its due to the upgrade even if I'm still content with my hyper minimalist presentation.

    Update: what a pain in the ass Jekyll is, the old parser for Markdown isn't supported, but the majority of my post are actually HTML. My previous parser literally spit out whatever was HTML content, whereas this one processes the HTML. This doesn't do anything besides actually cause a lot of problems if you have any HTML errors like a mission " or an improperly closed tag. Thus, a few pages were borked requiring me to go through and try and find the HTML misrenders. I think I got almost all of them but I think my days with Jekyll are coming to an end. I started this blog on Tumblr (mistake) and moved to something I could control in 2016 as it was clear not owning the platform I was on was a negative, and I completely misunderstood Tumblr by actually blogging on it. It in hindsight, it was absolutely the correct move as a closed platform meant I was subject to the whims of the owners, and even better, the hardened SEO has meant I've had much better SEO even if my SEO strategy is entirely anti-SEO beyond accessibility.

    I've never gotten my FTP process to automate so I still use FileZilla and I write in HTML. Newer frameworks exist. Right now I'm leaning towards a React based system that renders a static site long as it can be used even when JS is disabled, adds very little in payload (my blog is insanely light weight with a payload 11k of CSS, 90k of JS (mostly jQuery, time to move on there) and roughly 10k of HTML for many posts.

    iPhone 12 Pro & iOS 14 reactions

    In the past, I've recorded my thoughts when I've purchased a new phone with my iPhone XS & iOS 12 impressions and Initial Reactions to the iPhone 7 . It's interesting to see any predictions I make either come true (3rd camera lens) or burn in flames (force touch).

    Since there are far better reviews on the web of the iPhone than what you'll find here, I've instead opted to record just my initial reactions thoughts after 2+ weeks.

    • Getting my phone past first boot took roughly a halfhour, but getting all my applications and photo previews took pretty much the entire day. Ugh.
    • I still miss the headphone jack.
    • At first, MagSafe seemed cool, but seeing the real-world applications, I've yet to purchase a single accessory that uses it. I don't see myself doing that any time soon.
    • LThe lightning port needs to die in this USBc world. It served its purpose as a big upgrade over the other USB formats of its conception for usability, but USBc solves it and is widely used by everyone, including Apple. It feels more and more like a cash grab.
    • The iPhone 12 Pro needs a mini version. I'd love that. The iPhone 5 remains the greatest iPhone design for size/weight to screen.
    • The iPhone 12's hard edges are so much better. It's a return to the iPhone 4 and 5. I imagine we'd seesaw between round and hard edges in 5-year cycles until the iPhone's death as a way to shift the look and feel between generations.
    • Apple's premium phones feel fragile still. It's less so than the XS, but a case feels required.
    • There's a noticeable increase in sharpness that I didn't expect over the iPhone XS. Photos look as good as ever but still not as sharp as any DSLR with even mediocre glass. It's all about the physical surface area of the sensor to capture those photons.
    • The iPhone 12 Pro's cameras big improvements over the 11 seem to be software that feels a bit spiteful of the hardware.
    • II didn't expect to notice the speed increase over the XS, as even with my iPhone 7, the performance had hit "fast enough." A lot of it appears to be the 6 GB of RAM. Apps rarely reload. I wish they'd just ripped the bandaid off and gone with 8 GB for a bit more future proofing, but I suppose they need something to upgrade in 2 years. While I'll certainly be wrong, in the iPhone's constricted form factor, I doubt we'll be asking for 16 GB of RAM in 2022.
    • The CPU upgrade shows in exporting vids. It's noticeably faster over my XS.
    • The Wide-angle is pretty useful. I wish we'd finally get a quad lens setup with 0.5x/1x/2x/4x as that'd be 13mm, 26mm, 52mm, 78mm, or perhaps 0.5x/1x/2.5x/5x for 13mm, 26mm, 65mm, 130mm as that'd cover the bases for standard photography. Reviewers complaining about the lack of increase are missing the fact that a tiny phone with a huge optical zoom stretches the limits of handheld photography. A 2x is far more useful as 52mm is close to the stand by considered the "human" lens (although eyes are not cameras). A 78mm would be near the photojournalist 85mm "portrait" lens, which does wonders for outdoors with its compressed Z access.
    • Night mode works fairly well but doesn't work miracles. It's a massive improvement over my XS and bound to be improved upon each generation (mostly through software).

    iOS 14

    • iOS 14 was problematic for health data and required a reinstall on the phone to work properly with my XS. Stupid
    • Widgets are overhyped, but users love them apparently. I'm not big into customizing my phone. I run it in dark mode and reduced motion to conserve battery life, and I have the same lock screen as the iPhone 5 and the same background as my iPhone 7. Wigets far best used on the widgets screen. Polluting my home screen doesn't do much for me. There's not a lot of data I need every single time I look at my phone. On the widgets screen, I've added the battery life.
    • I wanted smart folders but this implimentation? It sucks.
    • App organization is still god awful. Folders are artificially small. They do not have custom icons, and they can't do folders in folders. Also, why can't we vertically scroll on-screen like Android? iOS 14 failed to deliver much meaningful change.
    • Am I alone that Memoji is tacky? I'm probably an island of one here.
    • Small Siri is nice, but I liked seeing what my phone interpreted my voice commands as real-time instead of waiting and seeing.
    • Picture-in-picture mode is probably great on an iPad, but it doesn't feel very meaningful on my phone.
    • Translate looks cool, but I can't travel now because, y'know...
    • Apple sign-on is great.

    Things I was wrong about

    • FaceID: It's overall an improvement over Touch ID and lateral than I thought it'd be.... but now we all wear masks.
    • I wasn't willing to ditch the larger phone format with dual cameras. Now I want three. If they add a forth, I'll want that too.
    • I regretted not getting 512 GB of storage.

    The day after

    I am not going to a caption this xenophobic facebook post

    Pictured: friendly debate with people from my home town. I hearted this post. This is gonna be a really awkward Thanksgiving for a lot of Americans and I'm thankful my immediate family is who they are.

    This made me chuckle, as my heart is filled mostly with irony but we have 70 million voters who potentially share this world view. Even thinking fractionally, that's a frighteningly large number of people who are "angry, spoiled, racially resentful, aggrieved, and willing to die rather than ever admit that they were wrong". I can't say I wasn't above gloating, just a little after repeated attacks on the democratic process from a failed real estate agent $1,000,000,000 in debt. My team won (better than it felt), but we have a lot of work to do.

    I don't hold any greater hope that we can fix everything or convert many to our egalitarian outlook; a worldview that places more value on assisting those in need, the environment, science and education. Just maybe we can deescalate a little, and dial down the tone over the next four years. Outside of hottest-take-wins Twitterati warriors of this world, I think the vast majority people, here and also abroad would appreciate a little more civility... and a little less conspiracy.

    All .dev URLs return Unknown Host Error in macOS (OS X)

    So... I discovered a strange problem, any website using a .dev suffix would give me an unknown host error. First I figured it was my DNS, swapping servers and clearing the DNS cache, trying my VPN etc which didn't work. Pinging any .dev URL would return pings absurdly low responses suggesting somewhere something was routing all requests to local/

    Checking my etc/hosts was a bust as well as Apache's vhosts. After about a half hour of reading I found the following thread, Pinging after Laravel Valet install returns "Unknown Host" .

    Posters mentioned dnsmasq utility. To fix the problem, users used brew (OS X package manager) reinstall/restart it. Being semi-familiar with brew, I used Brew's list command. I found that I indeed had it installed. I tried the perscribed method which didn't work but I felt like I was on the right path.

    Not giving up, I dug up the dnsmasq.conf file located in usr/local/etc and noticed a single entry, address=/.dev/ I deleted it and after a reboot, every thing was back to normal.

    Cme Xkey 37 Le Review

    layout: post
    title: "CME Xkey 37 LE Review"
    date: 2020-12-15
    categories: front end development
    tags: [front end development]

    Earlier this year my old reliable first edition Korg MicroKey 37 died, after 7 years of service. I've bought multiple midi keyboards including a 88 key hammer action weighed keyboard which I quickly discovered was far too big for my use case. Since then, I've favored the 37 key for my sometimes music production mostly for the size and for the selection as there happens to be a bit more options at the 37 size over the more practical 49 keys.

    With 2020 being what it is, I've revisited my audio studio setup and decided to buckle down and actually learn to play the keyboard. I had bought the current microKey only to discover... I hate slim-width keys while trying to actually play anything.

    The search for the ideal 37 key

    Searching for high end small keyboards is a bit of an oxymoron. Here's my observations:

    • The most expensive keyboards in the 49 and below form factor generally pack in "gee-wiz" features, pads, knobs and sliders. These are nice but drastically get away from my "small-as-possible" ideal. I also have an Ableton Push 2 and a NI Maschine MK II which are far more capable in the pad/knob department.
    • Weighed/Hammer Action Weighted keyboards simply do not exist sub 61 key. There's a few 49 semi-weighed keybaords like the Akai MPK249, which falls into the "gee-wiz" style, and certainly isn't small. 37 semi-weighed keyboards are pretty much nonexistent.
    • Most of the keyboards designed for travel use slim keys.

    This meant I had to reset my expectations, once I did I zeroed in on the CME Xkey 37.

    Low Travel / High quality


    The Xkey is its own beast in a number of ways. First off, it's an aluminum chasis, which immediately sets it apart. After years of cheap midi keyboards, it doesn't feel frail but rather substantial. Next up is the lack of a standard pitch-bend/mod wheel. Instead, they're replaced with touch sensitive pads. Also, it's absent of a sustain pedal, instead featuring a sustain button, which is a mild disappointment but not a fail like the original Korg Microkey 37 which did not feature a sustain pedal at all. All of these choices are in the name of space saving as mod wheels and pitch bends take up space, as well as the 1/4 inch cable requirement for a sustain pedal.

    Lastly, there's the keys... The big pivot is the Xkey's keys are low travel, akin to a laptop. Pressing them hard results in the "clack" more associated with a alphanumeric keyboard than a musical keyboard, they're still velocity sensitive, and surprisingly features polyphonic aftertouch. Keyboards that feature after-touch continue to record the pressure of a keyboard press, but usually as a global. Polyphonic records the aftertouch per-key.

    timing chain / cam sprockets

    Drupal 8 Upgrade Fails with Fatal error: ClassFinderInterface not found

    Upgrades for Drupal 8 can sometimes go south rather badly and result in an error such as this:

    Fatal error: Interface 'Doctrine\Common\Reflection\ClassFinderInterface' not found in /var/www/html/core/lib/Drupal/Component/Annotation/Reflection/MockFileFinder.php on line 14

    I'm not PHP guy it took a while for me to unearth as the documents are thin and solutions vague. Googling it will suggest that the composer version is to, be blamed but adding to composer.json "doctrine/common":">2.8" probably won't work, it didn't for me. I went on a wild multi-day adventure to solve this and the fix is actually pretty simple as it has to do with composer, the dependency manager for PHP. Rather than recount my frustrations with updater composer in my docker setup, I'll skip to the goods.

    So here's the fix:

    Note: If using docker, you'll need to docker exec bash into the container running PHP.

    1. Merge in the drupal updates from the Drupal repository
    2. Delete the /vendor directory and the composer.lock file
    3. Run composer self-update
    4. optional add "doctrine/common":">2.8" to your composer.json. This may/may not be required
    5. Run composer update to update all of Drupal's dependencies.



    Running composer update results in the long error message: [ErrorException] "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? or [ErrorException] "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? or it results in Fatal error: Uncaught Error: Class ‘Drupal\Composer\Plugin\Scaffold\Operations\AbstractOperation’ not found in /var/www/html/vendor/drupal/core-composer-scaffold/Operations/ReplaceOp.php:15


    Delete the /vendor and composer.lock

    Resolving 'Sorry, you are not allowed to access this page' WordPress error on Pantheon

    If you ware here, you are probably experiencing the following issue:

    • A WordPress feature or plugin keeps returning the following error "Sorry, you are not allowed to access this page" when you try to access it.
    • This only occurs on your test and live environment but does not occur on dev or a multidev environment or local development space.
    • Cloning your live database/files from your live site to your other environments has no effect, it always works on your dev/multidev/local dev environments.
    • You may have checked to see if your PHP versions in all the environments match (spoiler: they do). PHP error logs, enabled WP Error logs and so forth and still are very stumped
    • Tech support doesn't know the answer.

    This issue happened to me with the plugin "Related Posts for WordPress" on my company's website.

    This boils down a pretty easy fix but does have some asterisks that need to be attached to it. By default, Pantheon configures the wp-config.php with a lot of preloaded things, most of which are required. You can read about it here.

    In your wp-config.php, locate the following

        // FS writes aren't permitted in test or live, so we should let WordPress know to disable relevant UI
        if ( in_array( $_ENV['PANTHEON_ENVIRONMENT'], array( 'test', 'live' ) ) && ! defined( 'DISALLOW_FILE_MODS' ) ) :
          define( 'DISALLOW_FILE_MODS', true );

    So for a quick breakdown, Pantheon provides a $_ENV superglobal variable that allows for Pantheon specific configuration to be passed into WordPress so no server credentials are commited into your codebase.

    One of the things that you can access from the $_ENV variable is PANTHEON_ENVIRONMENT. The above nugget of code checks to see if the environment is test or live, to disallow file modification. Simply removing this if statement or commenting it out will fix your issues but it comes with some caveats.

    The DISALLOW_FILE_MODS stops the ability to install WordPress updates, plugin updates, and plugins from being installed in WordPress on both the test and live environments. This is desirable because of Pantheon's git flow. Any changes performed to test or live will be overwritten when a lower environment is promoted upwards. Example: If I promote dev to test, any added plugins or plugin updates on test that are not commited to my code base will be lost.

    So, in short, this isn't a recommended fix for websites that are not managed by developers or very savvy users. I elected to comment out the code on our site as the only users of our website for content entry are all people working in a digital agency.

    // FS writes aren't permitted in test or live, so we should let WordPress know to disable relevant UI
    if ( in_array( $_ENV['PANTHEON_ENVIRONMENT'], array( 'test', 'live' ) ) && ! defined( 'DISALLOW_FILE_MODS' ) ) :
        // define( 'DISALLOW_FILE_MODS', true );

    That's it, one line of code fix. Hopefully this sames someone else hours of reading.

    A Threat to Democracy

    Even as Trump tries to back pedal, his remarks still remain that he wants to block funding for United States Postal Service limit voter access.

    This is what a slow moving kakocracic coup looks like.

    Negative Partisans and Portland

    Portland is not a warzone.

    I've meant to write something about Portland and the protests as I've written several items about life in Portland and Covid-19 (also here and here and here), but in reality, the expression of Portland is best summed up by two conversations I had in my home town on the southern coast. A cashier noticing my Portland address asked how nuts Portland was. I think she expected harrowing tales of fearing for my personal property and safety as crazed Antifa bands roved the streets in masks and body bags lined the street with deceased COVID-19 patients. My reply was a massive letdown. I mentioned lockdown was boring, people took it seriously, and I saw protesters marching past my apartment routinely as I live in southeast Portland. The most egregious behavior I saw was protestors j-walking across Powell Blvd at roughly 21st street.

    Then another person who knew my family, older than me, mentioned they understood why I wanted to split time between my hometown and Portland with its problems. Again, the perception of Portland was vastly different than the reality. When I'm in Portland, life is as normalized as it can be with the pandemic. Today, I'll be picking up Black is Beautiful from Cascade Brewing after lunch, and checking out Beer Mongers for any other beer releases, stopping at Stumptown to pickup some coldbrew concentrate, going to the Hawthorne Fred Meyer, and going out to dinner with my girlfriend. Under no point will I feel threatened or unsafe as the protests are limited to a 12 block zone in downtown Portland and at night, where few people live and I'd hazard few Portlanders go when not at work or shopping. I will drive through that area on my way to Prana to buy jeans.

    Like every major city, it's vibrant, but the lights are flickering under the stresses of Covid-19 but also being made brighter as they try to find the path forward for racial justice.

    The support for the fascist motions by Donald J Trump seems to be negative partisanship, as opposers care less about winning rather than making the other side lose regardless if it hurts them in the process. It's unnerving as somehow people like me, a guy who grew up in a town of 2500 people and three traffic lights, can drive a tractor, whose parents are 3rd generation farmers, is the enemy. The cities are filled with people who have rural bonafides like myself just as rural America has former metro residents. I don't have any answers. Best I can do is help change perceptions of Portland to illustrate how out-of-bounds federal secret policing is.

    Portland is not a warzone.

    More questions than answers: x86 -> ARM

    I'm not entirely optimistic.

    Apple finally announced what one of the worst kept secrets, a transition to ARM CPUs was. Apple is correct in its assessment that the performance-per-watt for the ARM platform has outstripped x86. Apple's A12Z is competitive with the MacBook Pro 2019 i9 in single-core benchmarks and produces a little more than half of the multicore scores with much much tighter thermal budget. It's damn impressive, but not entirely reassuring. Let's run over the facts, and Apple will be shipping new Intel Macs for the next two years. ARM Macs will not arrive until late 2020. Rosetta 2 will ship to assist running x86 binaries on Intel. iPad/iPhone Apps will run on the macOS hardware.

    I have many questions and not as much optimism. ARM is kickass at a performance to watt, but Apple has absolutely nothing on Ryzen or worse the Epyc chipsets in multicore scores. ARM is amazing on a tight thermal budget, so the fact an iPad Pro is somewhat viable against the latest Core i9 MacBook Pro 2019 is impressive (even if it's roughly half as fast in multicore). I'm actually somewhat optimistic Apple in 2 years can have something semi-competitive in raw CPU horsepower on the laptop end of things (MacRumors lists a 12-core CPU). Apple SOC ARM CPUs put up big numbers on passive cooling but less so when it comes to the rest of the package. There are no freebees like PCIe controllers for Thunderbolt or a full-blown bus as a chipset is a sum of its parts and not just the CPU. AMD prints PCIe controllers on the die, and Intel requires that as part of the PCH chipset (post-Northbridge/Southbridge). This means Apple now in charge of taking on a domain that it's happily outsourced to Intel and IBM. PCIe is hardly an expression of x86 as the G5 went from PCI, PCI-X to PCIe and there are examples of ARM deployments with PCIe.

    Apple’s best SOC GPU scores in Metal benchmarks 1/10th of that of AMD (currently Apple does not support a modern Nvidia chipset). Their GPUs are more than competitive against the Intel HD GPUs, but it's hardly a cause of celebration. Maybe we will see Apple shipping SOC GPU + Dedicated GPUs on laptops like they do with Intel + AMD. To make up for the shoddy Intel GPUs, on the 15-inch laptops, Apple ships with the Intel GPU for lower power and a high power dedicated GPU when watts aren't an issue. GPUs at this point are nearly as important as the CPU, considering that they end up codec mashing, machine learning, physics modeling, and so on. A great mobile GPU is not a great desktop GPU.

    To circle back to PCIe is the foundation of NVMe. One of the more exciting features is that the PS4 is it's using a PCIe 4.0 SSD, which means 3.5 GB/s (not gigabits) a second. If Apple chooses to eschew PCIe, it'll mean fewer vectors for cheap storage, and likely no user-upgradable storage as m.2 has effectively replaced SATA.

    Thus far, there's absolutely no information on dual booting. Thus far it is not dual bootable on the Dev kits but that's not suprirsing. Considering the amount of ARM distros and MS dipping its feet into the ARM world, it's possible but much less so, especially on Windows without standardized hardware unless Apple provides the drivers. I'm skeptical Apple really has much desire on this front.

    Lastly, my fear is ARM will usher in the planned obsolesce that Apple has always dreamed of on laptops/desktops. Even today, I saw that Martin L on MacProUpgrade had already gotten Big Sur up and running on a 2009 Mac Pro using OpenCore. x86 despite its shortcomings, is rather resilient since Apple didn't create the locks to the box. I don't know what Apple will do for modular computers? I hope they do not kill them. Thinking about that makes me sad.

    That said, we have probably five years until ARMeggedon, as Apple intends to sell Macs with x86 for two more years and promised "long term support" for x86, which says to me, three years of Apple support on the last x86 mac. Fingers crossed, I'm very wrong about much of this.


    Another night of curfew in Portland...

    There's something to be said when your home country's policing is so egregious that it's spawned a global movement around #BlackLivesMatter. The photos are profound. You can argue about the right way/wrong way to protest, but we're seeing a global response as even people far away are sick and tired of seeing the unjust treatment of minorities in America.

    I'm exceptionally moved and also saddened that this is happening. I'm happy that the rest of the world is both siding with the correct side. I'm sad that it's even necessary. I'd like to extend a thank you for every far away protester as for showing compassion for our struggles.

    Meanwhile, DJT's response is unforgivable. He is a man of zero-compassion, a despot dictator in waiting, a cheap con-man, and unworthy of his position. I still can't understand the strange "masculinity cult" around an pudgey, out-of-shape man who wears makeup and easily gets hurt feelings over "bad ratings", lashses out and sulks publically. Being a man would be owning responsiblity. Trump only knowns how to shift blame onto others.

    I've seen the hot take that the Republican party has become a death cult, but holy hell, A G.O.P. Lawmaker Had the Virus. Nobody Told Democrats Exposed to Him. Meanwhile, Trump is retrweeting"the only good Democrat is a dead Democrat". Also, let's not forget they're setting the tone to sow distrust in elections in coup like fashion.

    Yesterday, A homeless man outside of the Hawthorne Fred Meyer held his sign read "need help". That's it, succinctly summarizing how most people feel. I gave him $5.

    The pitiful state of 4k for macOS

    Despite Apple's boasting about 4k, HDR and Dolby Atmos support in Catalina, still is non-existent. In December, 2014 (yes, nearly 6 years ago), wrote the article, why you can't get 4k Netflix on a PC or Mac (Even though they're capable). Since then, Windows 10 has had some in-roads, but it's still not great. macOS has made virtually none.

    Service tvOS 4k macOS 4k Windows 10 4k
    iTunes Yes Yes* Yes
    Netflix Yes No Yes
    Hulu Yes No No
    HBOGo* No No No
    Amazon Prime Yes No Yes
    Disney Plus Yes No No***
    YouTube Premium Yes No No***
    ESPN Yes No Unclear

    • * - Requires Catalina for Dolby Atmos, 4k/HDR.
    • ** - HBOgo does not support 4k.
    • *** - May work with ChromeCast via Windows, YouTube. YouTube's regular service supports 4k Streaming for macOS.


    Bandon, May 06 2020

    Coquille Point, Oregon, May 06 2020

    It feels irresponsible not to talk politics even on my quasi-profesisonal blog.

    "If you can imagine the scenario this fall or winter, maybe even early next spring, when the vaccine becomes available, there's no one company that can produce enough for our country or for the world. It's going to be limited supplies," Bright said. "We need to have a strategy and plan in place now to make sure that we can not only fill that vaccine, make it, distribute it, but administer it in a fair and equitable plan.

    "We do not have that yet, and it is a significant concern," he said. - Ousted whistleblower Dr. Rick Bright unloads on Trump admin's coronavirus response

    This is followed up by Bright's quote, suggesting that the mismanagement will lead to the "darkest winter in modern history". That's a ringing endorsement of DJT if I've ever heard of one.

    It's impossible to disassociate from the absolute abject failure of Donald Trump. A common narrative is that Donald Trump opposes mass testing for fear it may hurt his re-election chances. If true, that means he's putting himself before the American people, yet again and again. He also opposes the United States Postal Service for fear of mail in voting when its the morally correct thing to do. I've had it almost the entirety of my adult life as an Oregon resident. This administration is getting people killed, and it should be referred to as Trump's Body Count. Now that I have that out of the way...

    New office is no office

    April 11, 2020 and April 25th, The Dalles, Oregon

    The Dalles, Oregon, April 11, 2020 and April 25th

    It's been a bit since I've done a status post, but Covid-19 is the new reality, and it isn't going anywhere. The company I work for was in the state of switching offices even before the outbreak with the lease ending in April, meaning I haven't had an office now for more than two weeks as it had to be cleared out before then. I was the last worker, working from our office as it was located across the street from McMenamins's Crystal Hotel, and Jake's Famous Crayfish. I didn't like the layout of our office, too noisy and too much glass but the location was desirable as Powell's was two blocks away. O Our company is now officeless and has been a blessing as we're now virtual, and there's no overhead. Dealing with the reality of Covid-19, our company likely will not get an office until 2021. The owners have zero reason to believe that we'll return to normalcy by then, and I don't blame them. I don't either.


    Table Rock, April 26th, 2020

    I've managed to get out of the house. Social distancing doesn't mean you have to stay indoors in a state as unpopulated as Oregon. While entertainment is at a standstill, I've discovered something. Some of Amazon Prime's TV shows are very good. I highly recommend Undone. I'm not into animation, but the rotoscoping is fantastic and compliments the uncanny reality of the show, blending a wonderfully human tale with elements of sci-fi. It also stars Bob Odenkirk. If that isn't a selling point, I'm not sure what is. Also, Fleabag was very good, Upload is fun and a little too real and the Jack Ryan series, is familiar but still entertaining.

    While Amazon has been at the original content game longer than Apple, I have to say among the streaming services, Apple remains one of the least compelling. I'm more interested in CBS's streaming service than Apple's and they're a second-tier player. As it stands, Apple's entry to TV is still a mystifying one. Unlike its other digital media services designed to sell other people's content (Apple Music, Apple News, whatever-they-call-their-movie-rentals/movies sales/TV show sales), the only original content comes from: Apple Arcade, Beats One Radio and Apple TV+. Apple Arcade is Apple doing what it's always done: sell software. Beats One is free, and more about showcasing Apple Music content. Apple TV+? It's just weird.

    How to use Zoom with external web cams, iPhones / Android Phone and/or Snap Camera on MacOS

    After the Zoom v4.6.10, Zoom broke support for external webcams, and apps like Snap camera (snap chat filters for your desktop computer). This is due to the recent versions more closely following security provisions pushed by Apple that libraries now must be validated and thus breaks the ability to use external camera sources.

    I personally use EpocCam Pro and my iPhone as a camera as its a much higher quality camera (I'll explain this below).

    The following is based on a reddit discussion.

    1. Update Zoom to the latest version
    2. Install Xcode via Terminal xcode-select --install
    3. Once installed make sure Zoom is closed and run this in Terminal
      codesign --remove-signature /Applications/

    Using a phone as a webcam with Zoom

    There's no reason to buy a dedicated webcam if you don't mind using your phone or have an old smartphone lying around. Your smartphone's camera is undoubtedly better than any dedicated webcam on the market, so you might as well use it.

    After enabling Zoom for external cameras, install Epoc Cam on your iPhone or Android phone, there's a free version (iOS, Android) and paid version (iOS and Android) that removes watermarking, and enables higher resolutions.

    1. Enable external cameras for Zoom using the above hack
    2. Install EpocCam or EpocCam Pro on your phone
    3. Install the drivers found EpocCam's website, (scroll to step 2)
    4. Launch Zoom
    5. Launch EpocCam (make sure your phone is connected via wifi to the same network your computer is on)
    6. Select EpocCam from Zoom, and it should connect.


    Portland, March 23rd and March 24th, 2020.

    Portland, March 23rd and March 24th, 2020

    I've meant to make another new reality post, and I've put off as it seems trite, as by now almost everyone is experiencing it globally.

    Biking to work is now a bit of a novelty. Usually, I'm one of the very few bikers to be found in downtown Portland these days, although I've seen a fair amount of leisure biking now that the weather has turned nice. Some bikers have an apocalyptic vibe, wearing sunglasses, gloves, and bandanas, taking the face mask recommendation to an absurd degree.

    I usually see a few other bikers, but on 03/25 on my bike ride into work, I saw one other biker. Just one. Headed the opposite direction, and that was on in the South East, but I did see a lot of people walking.

    Since then, with the nicer weather, I've seen more people on bikes, but mostly limited to the South Eastern neighborhoods that I frequent.

    Bad Policy

    Portland, 12th street, April 07.

    Portland, 12th street, April 07

    It's hard not to talk about the politics of Covid-19, as Donald Trump is wholely unqualified As he's either willfully ignorant or simply lacks the mental faculties to comprehend, let alone take action on such a multifaceted problem. There have been weeks of reporting that he and his staff ignored the health experts. The Guardian called his latest briefing presidential tantrum after tireless reporting that DJT ignored key advice. Meanwhile, Trump continues to make dictatorial edicts towards states who are acting responsible and using Covid-19 as a way to roll back regulation. NPR ran a line-by-line breakdown of his promises, A Month After Emergency Declaration, Trump's Promises Largely Unfulfilled. Trump gives himself a perfect 10. Meanwhile, he constantly plays with firing Fauci. Trump has a very delicate ego.

    Quite frankly, if you do not believe Trump botched his response to Covid-19, you are willfully ignorant of the facts. Hospitals lack safety supplies. Trump failed to follow the recommendations of Health experts. People have died because of his gross incompetence. He has not delivered his promises and continues to give poor advice to Americans. History will not be kind to DJT.

    Bad Reporting

    Mericado Food Carts, April 5th 2020

    Mericado Food Carts, April 5th 2020

    Also, I'm frustrated thus I'm going to direct it against something absurd I've seen posted a few times Big Brother during the coronavirus crisis: GPS data shows which Oregonians are following ‘social-distancing initiatives’ GPS Data Shows Eastern Oregon Isn’t Listening to Social Distancing Directives. You can see the "quality" journalism from WWweek and The Oregonian, itching to slander eastern Oregon. While I might have some political differences being a craft beer and single-origin cold brew drinking, bike commuting web developer in Portland, I'm from truly rural Oregon, my graduating HS class was 60 people. I could list a laundry list of things my home town does not have (Mall, McDonald's, Fred Meyer, Walmart, StarBucks, Movie theater, etc) but the point is to get to a Costco or Trader Joe's or Home Depot, it's 139 miles. It's 25ish miles to Fred Meyer (Kroger) or Walmart or Safeway. There are two grocery stores and two hardware stores, though.

    So I call bullshit. Straight up, 100%, USDA grass-fed bullshit as its using a flawed metric. Oregon is a rural state, it's population density would make it the #4th least populated European nation besting out Finland and Kazakistan, and we're fractionally larger than the United Kingdom by landmass. So for starters, anyone living in rural Oregon has large distances and considering roughly 3/4 of the state's population lives in the Portland Metro, Salem metro or Eugene metro, the density of the rest of the state is SPARSE. One look at the map shows the counties' "score" is a strike against population densities. Next up is the dubious methodology:

    "Unacast’s location data comes from games, shopping and utility apps that tens of millions of Americans have installed on their phones — information the company normally analyzes for retailers, real estate firms and marketers."

    This also seems like a test of modernity, job type, and technical affluence. I, for one, probably do not have unacast applications installed on my iPhone, and block location gathering for everything sans an exceptionally minor amount of applications and often use a VPN. All it shows is the movement has been MORE reduced in areas that have a lot more businesses that would be closed (service industries) or can be done remotely. Unacast is almost certainly isn't tracking devices at the tower level, so the data it's collecting is skewing towards likely Android users were until recently, it made it more difficult to block tracking, also meaning the more reduced users in rural areas might also not being accurately tracked.

    After that, there's no way to gauge if the people are socially distancing, or what kind of travel people are performing. It's one thing to drive to the coast, but it's entirely another to drive to your job on the a farm or factory to keep grocery shelves stocked. Nor does it show if the people are clustering in densely populated areas. It's much easier to come into contact with hundreds of people in Portland just by visiting one or two stores, but doing that La Grande would take a lot more effort.


    Windmills near Goldendale , March 28th and Pioneer Square, April 5th 2020

    Windmills near Goldendale , March 28th and Pioneer Square, April 5th 2020

    I've quietly taken to also hiking on BLM lands, which is a loaded thing to admit, but off by myself in the woods strikes me as a lot less dangerous than a trip to the local Target. Before someone lectures me like a parent, I get gas in PDX and bring my own food, and do not see other humans. I'm not part of the quarantine Olympics, or social media grandstanding. It's how I feel normal, just doing an activity that I'd normally do, but in some less common areas.

    Removing Adobe Geniune Software even after using CC Cleaner tool

    So recently, while using CS6, I was hit with a message from "Adobe Genuine Software Integrity Service" that looked like the following. I have a legit copy from my company but had installed CC demos to open up Illustrator files from CC in the past, and they're legal. I'm not sure what I did to trigger this, but I found others who had been somehow dragnetted as well.

    Adobe's Threatening nagware

    Being busy and also currently using Pixelmator Pro with some moderate success, I opted for the nuclear option and found the Adobe CC Cleaner Tool. Surely that should clear up the annoying pop-up? I removed all of the Adobe software on my computer and decided I'd reinstall Photoshop when I needed to again... and yet the pop up persisted after I had deleted all Adobe products off my computer. The popup didn't have a close button, and clicking "learn more" didn't remove it. I used the activity monitor and saw it was still running the Adobe Geniune task and force quit it. Hours later, it was back. This annoyed me.

    As a UX developer, nothing irks me more than dark UX. The pop-up software failed to recognize I had removed the software in question, and better yet, why the hell is it still there if I removed all of my Adobe software? That felt deeply dishonest. Fortunately, I know how to grep and use htop. I debated for posting this as I might be helping out some would-be pirates but I'm annoyed that someone like me was sideswiped by this.

    • Launch Activity Monitor from Applications -> Utilities on your Mac. View all the running processes and force quit any of the Adobe ones, especially the Adobe Genuine instances.
    • Go to ~/Library/LaunchAgents and look for the com.adobe.GC.Invoker-1.0.plist although the version may change after you have read this. Trash anything with the adobe.
    • Go to /Library/Application Support/Adobe and delete the AdobeGCClient directory

    I can't say the messaging will return if I try to re-install Photoshop but at least it's stopped the damn pop up. Buy software, support your developers, but also... I might recommend supporting someone other than Adobe, like Bohemian Coding (Sketch), Affinity, and Pixelmator. Please don't email me asking for help on this topic, as I'm not in the business of assisting software pirates.

    Getting Numark N7s, NS7 and NS7FX working on Mojave (10.14)

    But this isn't true, and it just requires downloading the v3.3.11 drivers, which can be found here (direct link to the drivers on or at theproduct pages.

    Apple really obfuscates drivers in Mojave in about the worst way possible. I'm unsure if this method works for Catalina as I've yet to upgrade, but my guess is probably not.

    I personally only have the NS7s, but this should work for the NS6, N7, NS7FX as well as they all share the same drivers.

    1. Install the drivers
    2. Reboot
    3. You should see a System Extension Blocked message
    4. Go to system preferences first thing, and then click Security and Privacy
    5. Click the Allow button. This will bring up a list of extensions, check the Serato drivers, and look for any drivers that end with GmbH (low latency drivers) and check those as well and click ok.
    6. The Numark drivers come with a utility that can detect if the NS7s are connected, they also should show up in your control panel as well.

    Congrats, that's it, now you can use your Numark N series in Mojave. Serato DJ Pro is free for as well.

    Things fall apart

    scenes from Downtown and Southeast Hosford-Abernathy, March 19th, 2020.

    Left to Right: Downtown construction, Hosford-Abernathy Hopscotch with 92 steps, and Graffiti, March 19th, 2020

    I really don't want to write about doom and gloom, but the word "husk" seems to be quietly reverberating across the city. Layoffs are happening, and they're happening fast, it hit one of Portland's star tech companies were one of my best friends works, with 50+% layoffs in a single day... and pay cuts for the remaining staff. He described it as a "bloodbath".

    My brother and sister-in-law meanwhile are trying to figure out the future for their company, Bandon Rain Unique Craft Ciders. They were planning a taproom this summer, but now like most breweries, they're looking at a delivery operation just to keep interest alive. They make a wonderful product, but they've yet to bottle, and their life-blood has been keg sales. Now every restaurant, bar, and taproom is either closed or offering to-go food in a desperate plea to survive. The OLCC seems to be a bit relax for once, and although we could take a cue from Kentucky.

    Protecting our culinary arts is going echo off the walls of every town and city. I just hope the shouts are heard. The PNW was a foodie paradise before foodie was a word. Oregon is a state that prided itself home to the best breweries on the planet, fantastic coffee, renowned vineyards, and home to the best damn cheese in the world. We've enjoyed these things for decades, and to lose them would be a travesty. This isn't though just for Oregon or the PNW, but goes for all the regions, everywhere. Food is sustenance, and sustenance is life. There's a reason why we cherish those who excel in it as it forms one of the bedrocks of culture. Humanity certainly will survive but at a cost. I'd much prefer this to be financial than cultural.

    Universal Basic Income has to be a new reality. Meanwhile, in a nihilistic fashion, the Whitehouse is asking to delay layoff figures, so the carnage might be hard to measure. Oregon seems to trail Washington and California. It's a dice roll, will we have a lockdown? Portland shoppers sure think so.

    On a more positive note, bike rides home have been uplifting. I had to dodge and weave people around the waterfront yesterday (dare I say crowds?) as people are still going for runs, walking the dog, and trying to find enjoyment.

    Wahkeena Trail, unkown solo hiker, March 20th, 2020

    Unknown solo hiker, Wahkeena Trail, March 20th, 2020

    I left work a bit early with Becky and hit the Columbia Gorge to visit Wahkeena Falls and Fairy Falls. There were quite a few people out, and Angel's Rest lot was packed in a way even for a Friday was beyond what I'm used to seeing. Unlike downtown, there was a bit of sterility among hikers, by avoiding acknowledging each other as if social sanitizing their behaviors. Usually, people are friendly and smiling. If I could think of a better word, I'd use "somber" to decribe the mood but it doesn't accurately describe the experience.

    It was another night of social distancing in a city park with beers among friends. I picked up Crowlers for $6 from Wayfinder. I hope their business makes it. I hope all of them do.

    Powell's Books, 'stay well & well read', March 19th, 2020

    Powell's Books 'stay well & well read', March 19th, 2020


    Social distancing in Portland, March 18th, 2020.

    Social distancing on the docks, Portland, March 18th, 2020

    Normal is the buzzword for Wednesday. News media has run amock with it, and the most on the nose being the local Willamette Weekly, "This is the new normal". The other buzzword is likely to be the "Shut-in Economy" as people demand at-home services. Amazon is hiring big in PDX, and sadly this might upend local shopping as we know it. In the book, The Warehouse a series of terrorist attacks, causes everyone to close in and fear going outdoors, work, and shop exclusively from the oligopsony, Amazon-like corporation. It turns out it's much more mundane.

    Work is work. Coworkers are still cool, and like everyone, we're scrambling to figure ways to stay connected, including a running group where we log our exercise as health is a concern for all of us. Hopefully we have work in the future.

    I decided to start an office wellness program: Since Target is down the street, I'll start a morning trek to score toilet paper, I don't intend to horde it, just get enough in case an office mate runs out and needs a few rolls, they can swing by and pick it up. There should be one community source than each one of us hoarding for the end times. It's all in the name of reducing stress.

    After work, biking home has a soulful serenity, as people in pairs of twos mill around and enjoy just being among each other and outside. Even behind the beauty is the melancholy backdrop, as the iconic Powell's announced it's response plans.

    10th street Portland, March 19th, 2020.

    10th Street at 10 am, Portland, March 19th, 2020

    I met two of my friends for beers in Laurelhurst park last night, sitting a few feet from each other, talking and drinking. This is the new normal.