Subscribe: trenchant.org - daily
http://www.trenchant.org/daily/rss.xml
Added By: Feedage Forager Feedage Grade B rated
Language: English
Tags:
animal crossing  didn’t  don’t  game  games  good  great  it’s  log  people  rez  server  software  things  time  web   
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: trenchant.org - daily

trenchant.org daily



trenchant.org daily updates by adam mathes



 



Seventeen

Mon, 19 Feb 2018 00:00:00 PST

I have been continuously updating this site in variations of this format for seventeen years as of today.

🎂

Click the cake to send emoji to me, via Frog2Phone.

Each year that this site has continued is both a surprise and a delight.

Thanks for reading.

· · ·

If you’ve never had your own site on the web consider starting one. Or re-start yours if you’ve let it go dormant.

Don’t just give it all away to ad sponsored corporate communications. You’re better than that. Your words and thoughts and pictures and creativity deserve better.

The independent web still exists and is still worth being a part of.

And let me know so I can read it.




Frog To Phone: Instant Emoji Feedback for the Real Web

Tue, 6 Feb 2018 00:00:00 PST

When I was fixing referrer logs to be fun again I had low expectations – feedback via links is sort of a dying art. Who has time to read web sites and link to them? Seems hard. The genius of social media style “one click to send feedback” buttons is that it not only lowers the friction of sending feedback, but through smartphone push notifications makes that feedback instantaneous. The web doesn’t really work that way by default, but I decided I could fake it. The end result are the little frog, fire and other unicode emoji guys at the bottom of this post. Go ahead and tap/click the one below if you’re impatient – my phone and watch will light up. With a frog. 🐸 Architecture My first instinct was to write a little web server that would in response to some requests send a push notification to my phone. That might have been the right thing to do, but since I had just spent time crunching logs for referrers, I thought it might be faster to use a similar approach – have my web server log requests, and have a log analyzer that parses them and sends to my phone in some cases. Also this would allow me to use NGINX’s existing rate limiting and other bits directly, and not run a new externally available service. NGINX 🚂 Some relevant sections of the nginx.conf to create a new log format for easier parsing for this use case – http { ... log_format tiny '$remote_addr [$time_local] "$request" $status'; map $status $loggable { ~^[54] 0; default 1; } ... } Probably not needed but made things tidier and easier to debug. Then in my server section for this site – location ~* /rxn/ { access_log logs/rxn.log tiny if=$loggable; limit_req zone=rxns; if ( $request_method !~ ^(POST)$ ) { return 405; } try_files $uri =204; } What this does – Log access requests for /rxn/ URLs to the special rxn.log Return a 405 error for non-POST requests For POST requests return a 204 empty response (which should be all of the time, unless there’s a file there) It’s using POSTs instead of GETs to hopefully prevent search engine and bots from pinging me via automated means. I also added some rate limiting to (maybe) prevent some abuse. (Be nice, this does really ping me phone.) This ends up generating logs that look like this – EXAMPLE.IP.ADDRESS [02/Feb/2018:12:04:35 -0800] "POST /daily/2017/3/6/rxn/%F0%9F%94%A5 HTTP/2.0" 204 Web 🕸 You can view source to see what’s going on but the basics are a little plain vanilla Javascript – And the HTML for the emoji bits to call it – 🐸 It’s been a while since I wrote any Javascript or HTML and I know these are not best practices but, it’s Javascript and mostly works so that seems ok for this proof of concept. Log Parsing 📃 I had intended to just use UNIX shell commands to tail the log, parse it with awk and then send it to my phone with Pushover. Pushover is great – you set up an account, for a few dollars buy the app on your phone, and then you have an easy REST API to send push notifications to your phone. I got this to mostly work but awk didn’t play well with tail -f and figuring out how to flush the buffers and do Unicode decoding in awk and shell started to make me feel queasy and seem more trouble than it was worth. I gave up and just wrote a little Go program to parse the log lines as they came in from tail -fing the log and then did the API call to Pushover. (That code is boring but I guess I could post it somewhere if anybody cares.) User Experience That’s me tapping a frog, and having it sent to my phone. That would also include my IP address if I hadn’t blocked it out. Probably users that tap should get some sort of feedback other than “the icon gets bigger” which is a UX paradigm I made up out of thin air because I thought it was fun/funny. I did something sim[...]



Bringing Fun Back To Referrer Logs

Mon, 5 Feb 2018 00:00:00 PST

Referrer logs used to be one of the fun on the early web, but they have been ruined. I decided to fix them. The Old Ways Quitting Twitter and social media has made my life more pleasant overall, but there are tradeoffs. The feedback from an audience – which has been weaponized into an addictive feedback loop through an over-focus on “engagement” metrics – wasn’t always like this. Feedback used to come from log files created by your web server and then some analysis of the quiet footprints left by readers. (Sure, there were comments and discussion boards and email and AIM, but logs were the common denominator.) While IP addresses and number of accesses (“hits”) are interesting, you can also see referrers – the URLs that people clicked to arrive at your site. This helps you see if anyone was actually discussing what you wrote, which was the web pre-cursor to the at-mentions and similar things. · · · I had turned off logging on my web servers a while ago because I decided that I didn’t care to know how tiny my audience was. Part of that was referrer logs had become useless – instead of being filled with URLs of links to me, it was filled with spammers faking the referrer field. Why were people spamming referring logs? Some web servers and CMS’s are configured to generate lists of referrers and publish them on the web, and if these end up being publicly accessible and crawled by a search engine, then this is a way to generate “free” links back to a spammy site from a legitimate site, boosting their search engine placement potentially, or helping generate traffic in other ways. I decided to turn logging back on as I changed servers a couple weeks ago and the referrer log situation was ever worse than I remembered. Simple Text Filters vs. Complex Machine Learning Filtering Algorithms Looking at this log full of garbage, I felt incredible sadness that something that used to bring me and early web pals joy had been destroyed so thoroughly by unintended effects of search engines and advertising. I looked at some existing block lists and tried them out but they weren’t particularly effective as the spam URLs constantly change. I considered using some sort of self-hosted Javascript and log analysis to try and distinguish legitimate visits with a real referrer vs. spammy bots with fake referrers. And looking at the logs this probably would have worked sometimes but it’s an asymmetric thing – if people filter out “HEAD” requests, spammers just start doing “GET” requests. If you filter out requests that don’t fetch the CSS, they just fetch the CSS. It was clear from the logs that was already happening. It’s a losing game of whack-a-mole. So maybe train a machine learning algorithm on good vs. bad visits and distinguish spam IPs? Sounds needlessly complicated and also susceptible to the same issues. Thinking asymmetrically, of what the spammers can’t do, made the solution seem obvious in retrospect. Spammers can’t include actual links to the million sites they spam. So just fetch the HTML of the referrer on my server, and eliminate any that don’t include a link to me. This sounded like a job for simple UNIX tools pipelined together on top of my logs. A pointless job, probably, here’s how I did it. I use NGINX on OpenBSD but the basics here should probably work on a Linux/*BSD machine and other web servers with a little tweaking. check_ref I created a simple shell script to check if a referrer URL contains a link to me – #!/usr/bin/env ksh # # # USAGE: check_ref TARGET REFEFFER # # fetches HTML at REFERRER, checks that includes TARGET # # if it does, output the REF # if not, no output # # writes checked URLs to BAD_REFS and GOOD_REFS to avoid repeated downloads # TARGET=$1 REF=$2 BAD_REFS=/tmp/badrefs GOOD_REFS=/tmp/goodrefs if [[ -e $BAD_REFS ]]; then if [[ `grep -c $REF $BAD_REFS` != 0 ]]; then return 0 fi else touch $BAD_REFS fi if [[ -e $GOOD_REFS ]]; then if [[ `grep[...]



2018 Is So Absurd My Computer Doesn't Know What Day It Is

Fri, 2 Feb 2018 00:00:00 PST

On Saturday morning my server said it was Friday. Which isn’t that surprising – lots of things don’t make sense in 2018. So much so that we just have to sort of shrug off some of them. But my little server is supposed to be my tranquil Zen Garden of peace, tranquility, order, and coherence. It needed to be fixed. · · · Intel chips have a security flaw so large you could drive a truck through it, requiring changes in system software, infrastructure, and operational workarounds. Meltdown is probably the worse CPU bug ever found. I’ve always assumed the hardware guys know what they’re doing and bad software side is the real mess, because fuck-ups in hardware are rarer and costlier. I assumed wrong. The tech industry didn’t just shrug – we had to fix things and people were pissed – but normal people didn’t seem to worry, and most folks in tech didn’t either, really. They shrugged and move on. In an environment where the current US President had an affair with an adult film actress years ago and paid her hush money a month before the election, and people shrugged at that because it’s not even in the top 10 most absurd things going on, how could I expect a different reaction? (Allegedly had an affair, though despite denying the affair nobody seems to be disputing the payoff.) · · · People think of Siri or Alexa or other digital assistants as a magical digital helper. But having your own personal server has always felt to me more like the sci-fi robot butler. Fetching and processing mail and RSS feeds, running processes and jobs on your behalf while you sleep, serving web and other resources on your behalf, syncing and backing up your valuable data. But all of that requires a precise keeping of time. My server emails me every morning a number of things – so when that failed to arrive I knew something was wrong. My robot butler doesn’t know how to be late. My hosting provider (Linode) had informed me they would be doing upgrades and rebooting servers on Friday, so I naively thought maybe something just went wrong during that and rebooted my OpenBSD server/robot butler/barely used web distribution tool. It seemed like it worked – the clock reset itself properly. But it kept skewing away fast. And simple things like – sleep 1 – which one might think would take a second or so, took 10-12 seconds. So that was worrisome. · · · I run OpenBSD in a virtual machine on Linode, which is far from a supported configuration by Linode or OpenBSD. Some searching indicated QEMU+KVM made some changes that broke OpenBSD on it because, apparently only OpenBSD uses local APIC in “repeated mode.” I filed a support ticket to suggest some KVM kernel flag workarounds – which, given that the world of sysadmins and support people at hosting providers had been working non-stop to fix Meltdown – I didn’t expect a reasonable response on. · · · So I started to think about whether I should even be using a VM – sure the cost is lower, but hasn’t Meltdown shown us that we can’t trust the sharing of software or hardwre? Isn’t the right thing to overspend and colocate a real physical server in a data center, like in the Good Old Days of the internet? Laziness combined with impatience prevailed and I just switched VPS providers. · · · It was a lot faster to change hosting providers and rebuild my server than to try and get a response to a support ticket. Days later I got a not useful response on the support ticket – not unexpected given lack of support for OpenBSD and the craziness of Meltdown. I’ve automated most of the process except for DNS. Which was harder than it should have been because I decided to move name servers instead of just pointing existing ones elsewhere. But by lunch I had a new server up on Vultr, which supports my OS of choice. (Also by automated I mean I have a few shell scripts because I want to actually understand what’s going on, which should be not that[...]



Video Game Consumption Q4 2017

Fri, 5 Jan 2018 00:00:00 PST

I played a lot more games at the end of 2017. I even liked some of them! Shadowhand From the makers of Regency Solitaire, one of my favorites, I have been looking forward to this game for a while. It did not disappoint. I’m not sure how to explain the pure joy of an RPG-battle solitaire game set in 1800’s England. But it’s good. It’s very good. I love it. (It’s a little too hard by default but the developers listened and added an easier mode. I play on the hardest mode now.) ★★★★★ Valley This game is so beautiful, and the visceral feel of motion and fun in the gameplay and level design was so satisfying and fun. The plot and story mostly works as a way to propel things forward. I really liked this. I love contained, complete, well crafted 5 hour games like this. I want more of that. Most games don’t need more than 5 hours to tell their story and provide a compelling and memorable time. ★★★★ Wolfenstein II: The New Colossus It’s a weird world that we live in that a 2017 over-the-top FPS alt-history of Nazis winning WWII and Americans rebelling agains them in the US is unexpectedly politically poignant. The scariest parts of the game aren’t any of the action sequences, but the quiet bits of seeing Nazis and Klu Klux Klan members in charge on alt-history streets of the US. The New Order was amazing, and The New Colossus suffers for it by trying too hard to do different, crazier, more over the top stuff, while gameplay and level design overall doesn’t feel as solid. Enjoyable and memorable. ★★★★ Cuphead Cuphead looks great but is too hard. I didn’t really have fun with it. I got to the end but didn’t beat all the levels on the “hard” difficulty so don’t get to play the end boss? Lame. It’s a throwback in a lot of ways – it felt like it was substituting difficulty as a way to lengthen an experience (an aspect of 80’s games I’m happy to leave behind.) I’m glad Cuphead exists and is successful because I hope it encourages more games to experiment with visual styles but overall I was kind of like, meh. ★★★ A Golden Wake I pretty much always love Wadjet Eye games, which are basically new “classic” adventure games. Despite a really promising context (the roaring 20’s and the development of Florida!) But the art, story, and puzzles in this one just weren’t that interesting to me. Basically, I wanted this game to be Gold Rush! but it wasn’t. Although I’ve just now found out that the rights reverted to the original authors and Gold Rush was remade in 2014 and there’s a 2017 Gold Rush 2 so maybe if I wanted Gold Rush! I could have just played Gold Rush! (How did I miss that?) Uh, anyway, A Golden Wake – ok-ish. ★★ Tacoma From the creators of Gone Home, I was excited to play this. But where Gone Home enabled storytelling through setting, and exploring items, Tacoma is a sci-fi context where in addition to exploring and looking at items, you “replay” the actions of the inhabitants of a space station via an augmented reality mechanic and read their digital screens. This has the unfortunate effect of making it feel like you’re watching a play (with the actors portrayed as blobs) rather than being an active participant in solving anything. Gone Home evoked a ton of emotion in me as I played it – I felt nothing as I played Tacoma, sadly. Tacoma looks great but the writing, mechanics, and overall game just didn’t work for me. ★★ Obduction The thing is – I don’t like Myst so I should have known this was a mistake. But it looked so cool! Anyway, I don’t have the patience for this. Not just the puzzles, but at one point I got annoyed and looked at a walkthrough and saw how to solve it but literally the load times and constant back and forth through “worlds” to solve the puzzle made me quit the game. (Turns out I was pretty close to the end, so just watched a video [...]



2018

Wed, 3 Jan 2018 00:00:00 PST

For 2018 I quit Twitter. I guess so I could focus on my craft? Something like that. I mean, you’d understand if you were reading the mailing list. Maybe you wouldn’t understand. I don’t even know if I understand. Look, it’s 2018, and blogs are dead and uncool again so I’m all for them. Let’s do some links. Was that ever a thing I did? I don’t even remember. I think that was in the 90’s before I declared this a “web site” and not a “web log” but, I mean, whatever. It’s fine. Probably. Let’s just throw in links from my reading list every week and see if that’s a thing. Maybe that’s a thing I do now in 2018? We’ll see. · · · small scale tech manifesto But software doesn’t belong exclusively to corporations, and the success–or at least prevalence–of the free software movement means that we have ample building blocks to use for our own ends. We aren’t starting from scratch, and we can choose to build, and use, tools that support our needs and our values. We can’t magically will about the resources of a multi-billion dollar company, but we can make different decisions and choose different trade-offs. · · · Chris Rock’s 1996 SNL monologue transcript I was thinking about this (22 year old!) monologue recently because of how so much of it is both incredibly dated and timely simultaneously. Comedy is weird like that. · · · AI-Assisted Fake Porn Is Here and We’re All Fucked There’s a video of Gal Gadot having sex with her stepbrother on the internet. But it’s not really Gadot’s body, and it’s barely her own face. It’s an approximation, face-swapped to look like she’s performing in an existing incest-themed porn video. The video was created with a machine learning algorithm, using easily accessible materials and open-source code that anyone with a working knowledge of deep learning algorithms could put together. The massive semi-public databases of imagery and video of not just celebrity but normal human beings that is being created and stored now is going to be used in unanticipated ways. (How many years of publicly available photos/videos will be needed to create a believable enough 3D model that can then be manipulated programmatically in real time? Will it be ethical to create synthetic VR versions of celebrities to do as we please with? What about interacting with a programmatic version of a dead loved one?) · · · Some excerpts from recent Alan Kay emails It strikes me that many of the tech billionaires have already gotten their “upside” many times over from people like Engelbart and other researchers who were supported by ARPA, Parc, ONR, etc. Why would they insist on more upside, and that their money should be an “investment”? That isn’t how the great inventions and fundamental technologies were created that eventually gave rise to the wealth that they tapped into after the fact. · · · Why Trump’s War on the Deep State Is Failing—So Far This is banana-republic-type stuff. One year into Trump’s term in office, his character has not changed. The president of the United States—as John Bellinger warned as early as December 2015 and as I elaborated on in March of 2016—remains the principal threat in the world to the national security of the United States. His aspirations are as profoundly undemocratic and hostile to the institutions of democratic governance as they have ever been. He announces as much in interview after interview, in tweet after tweet. The president has not changed, and he will not change. Whether he has grown or will grow is not even an interesting question. The interesting question, one year in, is how the apparatus of democratic government is weathering his onslaught. The answer to this question is complicated but, I think, ultimately encouraging. [...]



Perpetual Volatility

Tue, 19 Dec 2017 00:00:00 PST

At this point in my adulthood I should probably have an advisor who distributes my assets across a basket of currencies, short term cash equivalents, high risk equities, low risk bonds, cryptocurrency I don’t understand, global real estate trusts, pretentious art, and 1980’s X-Men comics.

I don’t.

Also I don’t know if I believe in the economy because for my adult life it has either been “one step away from massive recession and or great depression” (2002~, 2008~) or “high as a kite via crazy asset bubbles” (199x-2001,2004-2007, 2015–?) and I studied enough history to know that the boom/bust cycle was actually the norm until the great depression brought in major financial reforms, but then the US government repealed Glass-Steagall, enabling further consolidation in the financial system and setting us up for perpetual volatility.

I was thinking about this as I watched the first episodes of Stranger Things with my wife, who does not quite share my appreciation for 1980’s pop culture. (Probably because she was busy doing smarter things as a child, like reading books, while I watched Spider-Man and His Amazing Friends re-runs for the 100th time.

I didn’t really appreciate the 80’s when I was living in them, but in retrospect, they were probably the apex of post-war Pax Americana and the last decade before the exponential growth in computer technology made us all feel perpetually unready for the future now, even though I’m probably as qualified to be a cyberpunk post-apocalyptic hacker hiding in a national library as anyone.

Anyway, my wife prefers 90’s culture over 80’s, which led to me monologuing –

“The 80’s were great. All the 90’s had was the repeal of Glass–Steagall and the commercialization of the internet, both of which are directly leading to the downfall of Western civilization.”

Anyway, I think that’s a good line and I hope everyone uses it in conversations.




Crossed Animals

Mon, 18 Dec 2017 00:00:00 PST

It’s been a tough couple of weeks. I guess it’s been a tough year.

· · ·

“Don’t try to write great stuff, just write actual stuff.”

At least that’s what I’ve been trying to tell myself, because I kept drafting and throwing out things for my mailing list and not posting anything on my site because.

Anyway, maybe some of it is salvageable.

Like that time I got upset about the new Animal Crossing.

· · ·

I tweeted about it but I delete things too quickly via software. Luckily there’s an archive.

An unorganized, text only archive, because, um, Unix philosophy? I don’t know.

$ grep -i "animal crossing" deleted_tweets.txt | less

i dream of doing my version of “the artist is present” where it’s me streaming animal crossing for 30 days non-stop

That’s not it, keep grepping.

animal crossing is esports

Hard to believe that one didn’t go viral. Also not it. Here we go –

Are we as a people spiritually ready to accept Animal Crossing for mobile into our lives?

i am watching this animal crossing pocket camp video and i’m super concerned

IN MY DAY FISHING IN ANIMAL CROSSING WAS MEDITATIVE AND WE LIKED IT

i should not care this much about animal crossing

animal crossing using real currency is some terrifying dystopian shit

couldn’t nintendo have made an animal crossing that wasn’t microtransaction addictionware

you guys think this is a joke but i’m actually pretty serious about microtransactions and real money destroying the feel of animal crossing

Many people then replied to say they know I am deadly serious about Animal Crossing.

If even Nintendo unable to stand against the forces of evil and is going to make microtransaction addictionware for smartphones is there any hope for this dimension.




Q3 2017 Video Game Consumption

Tue, 24 Oct 2017 00:00:00 PST

There was only one game for me the last few months. Rez Infinite Rez Infinite on Steam I originally played Rez on Dreamcast in college. I bootlegged it and burned it to compact disc because it had only been released in Japan or something and I was a college student with a less strict view of intellectual property in 2001. (Also, I had faster internet 16 years ago than today.) The bootleg version crashed when I beat the game. I never saw the ending or unlocked Beyond Mode. I played Rez enough to knew I loved it. But I didn’t really experience Rez. · · · I finally bought a PS2 way late, in 2004, and bought Rez (which was hard to find in the US.) I played it deeply since it didn’t like, crash at the end when you unlock all the new stuff. I experienced Rez. I loved Rez. · · · Rez is a rail shooter – which is a genre that barely even exists anymore. Enemies come at you, and your character moves “on rails” through a 3D environment. But you just focus on shooting things quickly. Rez is a rail shooter that takes place in a computer. You are a hacker trying to purge a system, but the story is, it doesn’t matter. (It does matter, but that’s… we don’t have time for that.) What matters is that unlike normal sound effects and music, Rez invokes a near synesthesia by tightly coupling the sound, electronic music, vibration, and gameplay. It’s the details and the multi sensory interactivity coming together that makes it… unique. · · · *Rez*HD for XBox 360 Live came out in 2008. I experienced Rez again. But I began to practice Rez. I would play Direct Assault mode (which takes about an hour) every day after work for days on end. I unlocked pretty much everything I never got to 100% on the Level 5 to get pink butterflies because I’m not insane or that good, but I did become a Morolian which is its own amazing form of a true happy ending. · · · Almost a decade later, in June of 2017 I decided I needed to play Rez again. I began with a Dreamcast emulator on my PC because I had no way to easily play XBLA games - and it’s funny because 16 years later a bootlegged copy running in a virtual Dreamcast doesn’t crash when I beat it, so I could continue on to Beyond mode. Life is very strange sometimes. Some people meditate when they want to find inner truth and peace in times of need but for me I reached for a game that was designed as a synesthesia art project and eventually shipped a vibrator accessory. But, earnestly, because it was my practice. And I beat it again, many times, because I needed to. · · · Then, out of nowhere, Rez Infinite (which was a PS4 exclusive, thus inaccessible to me) was announced and immediately released for PC, with VR support. There are so few genuine surprises in life anymore, and even fewer that fill me with pure joy. This was one of them. · · · Rez Infinite enables Rez to be played at higher resolutions and on PC, but most importantly, it enables VR support on HTC Vive (which I own.) I’ve written a little about VR but, in some ways, all my experiences with VR weren’t important before **RezInfinite. In VR, Rez isn’t a practice or a thing to even know or love. Rez Infinite is Rez. But I’m in it. It’s everywhere. All around me. I am Rez. You are Rez, when you’re there. We are a way for Rez to know itself. · · · The mechanics within VR made Rez– which at times had been a frustratingly difficult experience that I memorized and wrote into my brain and damaged my thumbs and made my eyes water – easier. Natural. At times almost trivial. By fully immersing myself – by becoming one with Rez – I could do almost anything in the game. (I saw the butterfly ending on my first playthrough.) And it was even more satisfying and amazing than the first time I played the bootleg 16 years ago. M[...]



Lost Time On Titlebars

Tue, 5 Sep 2017 00:00:00 PST

Let’s pretend during a weekend of record heat I decided the best use of my time is to create a MacOS desktop of terminals and editors with less chrome and a more consistent color scheme. Well, we don’t have to pretend. Window Management Amethyst is a tiling window manager. It’s great. Alternatives – kwm and its successor chunkwm but I’ve always found the setup and usage too complicated use XQuartz and i3 or dwm or something, but I want to be able to use MacOS apps, not just X stuff Minimal System Chrome Hide the menu and dock by default. System Preferences > Dock > Automatically hide and show the Dock System Preferences > General > Automatically hide and show the menu bar It’s pretty hard to get rid of MacOS system adornments like title bars, or change to square windows. So I just changed the background to a solid image color to fake it. Editor I rely on Aquamacs as my primary editor. I love it. To import and set the theme via .emacs – ; tomorrow night theme (load "~/emacs/color-theme-tomorrow.el") (color-theme-tomorrow-night-blue) Natural Title Bars I adapted the “natural title bars” from these patches – Natural-Title-Bars title-bar-patch – into my fork of the Aquamacs source tree. I didn’t integrate it into Aquamacs UI, because, uhh, I don’t know how to do that. So instead, we drop to a terminal for – defaults write org.gnu.Aquamacs TransparentTitleBar DARK Great! Now we have an Emacs for MacOS that has a transparent title bar, and all we had to do was create a 200mb binary from source code and set NSUserDefaults from the command line. Colored Tab Bar But the tab bar doesn’t match the title bar and it’s like, why even bother if we’re not going to finish this. Luckily it’s customizable, because everything in emacs is. Added to .emacs to change the colors of the tabs to match my theme – (require 'tabbar) ;; Tabbar settings (set-face-attribute 'tabbar-default nil :background "#002451" :foreground "#ffffff" :box '(:line-width 1 :color "#002451" :style nil)) (set-face-attribute 'tabbar-unselected nil :background "#002451" :foreground "#ffffff" :box '(:line-width 5 :color "#002451" :style nil)) (set-face-attribute 'tabbar-selected nil :background "#003f8e" :foreground "#ffffff" :box '(:line-width 5 :color "#002451" :style nil)) (set-face-attribute 'tabbar-highlight nil :background "#002451" :foreground "#ffffff" :underline nil :box '(:line-width 5 :color "#002451" :style nil)) (set-face-attribute 'tabbar-button nil :box '(:line-width 1 :color "#002451" :style nil)) (set-face-attribute 'tabbar-separator nil :background "#ff9da4" :height 0.6) (tabbar-mode 1) A Brief Diversion into iTerm2 I normally use the stock Terminal.app but you can change color of iTerm2 title bars with proprietary escape codes! Like this – #!/bin/sh echo -e "\033]6;1;bg;red;brightness;0\a" echo -e "\033]6;1;bg;green;brightness;36\a" echo -e "\033]6;1;bg;blue;brightness;81\a" clear The problem is iTerm2 is slow. Turns out iTerm2 feels significantly laggier than good old Terminal.app. This is actually not my imagination, you can benchmark it. In fact, pretty much all of the “cool” terminals like Hyper.sh are insanely slow. I don’t know how any of you guys use Hyper. Or any of these weird electron/javascript/frankenstein native/web apps, really. Back to Emacs Anyway those results made me think I should try to embrace eshell in my emacs of choice. Eshell Emacs (and thus Aquamacs) offers a number of terminal and terminal-alikes. Including but probably not limited to shell, eshell, term, and ansi[...]



OpenBSD – As Little Unix As Possible

Tue, 15 Aug 2017 00:00:00 PST

Operating systems, like religion or politics, are a subject best not discussed in polite society. But why let that stop me. Anyway, sorry in advance. · · · After a few months of tinkering I finally switched the server that powers this web site and my various remaining projects from Ubuntu to OpenBSD and it’s great. I love it. Really, it’s great. I’d like to claim this was a serious decision and not merely bike shedding. (Which is a popular geek term to refer to Parkinson’s Law of Triviality, which was popularized by the more popular than OpenBSD FreeBSD community.) I’d also like to claim everything on my server is still working and not going to break. Those claims are not verifiable. Anyway. Linux used to feel like the contrarian alternative OS for discerning computer enthusiasts but now that Linux powers the Android phones that half the world keeps in their pocket it feels less like an act of rebellion to use it and more the OS of choice for corporate super states. So probably this like 80% fashion and 5% post-facto rationalization and 15% completely legitimate rationales. · · · Everything about modern operating systems is basically impossible and incomprehensible, as a general rule. That’s what makes OpenBSD so great. It really breaks that rule. The Incoherence of Modern Linux I run my own Unix server and web sites and programs and experiments for fun. Fun for me is taking things from idea to software, learning how stuff works, making computers do interesting things, and creating and sharing stuff. Depending on what I’m doing I want to get into the “guts” of things and be close to the machine. I’ve been using Linux in various ways on desktops and servers for 20 years. (I first used Red Hat linux the summer of 1997 during high school, after spending a weird summer getting a taste of overpriced Sun Workstations.) But the last few years of using Ubuntu on this server have felt off. Maybe it was the second time Ubuntu changed init systems and I had to learn yet another one. Or maybe when I looked at top and didn’t recognize a bunch of stuff. (Mostly systemd’s processes and dependencies and god knows what else Ubuntu has on by default.) Linux has always sort of seemed like a beautiful mess – and never particularly coherent, but it never bothered me that much, until recently. Recently, I’ve just been kind of annoyed with it. It feels – nonsensical. Minimal Viable Unix OpenBSD takes a different approach. It’s quiet. Things are off by default. You have to figure out how to turn them on, and in the process learn enough about them to run them responsibly. The initial set of “base” software is spartan by modern standards, but more than enough to do what I need. Installing software from ports and packages is straightforward. When I look at the process list, there are no surprises. It’s just enough operating system. Coherence Things don’t happen unexpectedly. The system follows the principle of least astonishment. Things are predictable, in a good way. The filesystem hierarchy makes sense. The installer is text based and runs in a few minutes. Releases happen regularly, every six months. It all comes together and feels solid and coherent, rather than just disparate unrelated pieces. Reading through Absolute OpenBSD: UNIX for the Practical Paranoid, I felt like I grokked what was going on.. Sane Documentation People mention the quality of OpenBSD documentation, but it was hard to realize how bad things were in Linux or MacOS or other places until I started to use a system with really good, well written, comprehensive man pages. Rather than futzing around on the web with varying sources of questionable quality, or reading manual pages that that too often are inconsistent with [...]



Canonical Books For Product Managers

Mon, 31 Jul 2017 00:00:00 PST

This is a first attempt at creating a canon of books for product managers in technology companies. This is not a value judgment that these are necessarily the “best” books or a comprehensive list – but a clear declaration that these are influential enough that being familiar with the ideas, concepts, and vocabulary represented is relevant to effective product management. It is a value judgment in the sense that I have read and recommend them. The Design of Everyday Things Pioneered or popularized concepts like “affordances” along with a highly useful framework for thinking about usability, design, and the evaluation of products. This is the one book above all others I recommend for those looking to understand and develop product, design, and usability insight. The Mythical Man-Month Why is software development hard? Why is nothing ever on time? Why doesn’t adding more engineers to a stalled project accelerate it? Will we ever get better at any of it? These essays by Brooks exploring these issues have turned out to be both prescient, timeless, and a fascinating time capsule as decades have gone by. Software is still fundamentally about conceptual integrity, managing complexity, and the nonlinear increase in communication that comes with large scale software. High Output Management Something of a cult classic in Silicon Valley now, this is a surprisingly practical guide to management. How should someone who has an infinitely large possible space of work prioritize? (Answer: understand what high leverage activities are, and do those.) There’s something oddly satisfying in the simplicity and clear guidance – I’ve found it tremendously useful as I take on more direct people management roles in my career. The C Programming Language If you want to understand the technological underpinnings of pretty much our entire modern computing infrastructure, you should understand UNIX and C. I firmly believe there is no better book about any programming language than K&R. The book in many ways mirrors the language it documents – simple but powerful, straightforward but opinionated, and concise. The Innovator’s Dilemma You’ve probably heard something called “disruptive” a billion times by now. A few of them actually reflect the distinction between sustaining and disruptive innovations as defined here, but after reading this, you’ll know the difference. Backed by extensive case studies and quantitative research, The Innovator’s Dilemma posits that the reasons great companies soar, plateau, and then decline is rarely due to bad management or incompetence. Instead, it is because highly qualified managers apply decision making criteria and processes that all but guarantee the next innovation will be more likely to thrive outside the current successful business. In many ways the follow-up “The Innovator’s Solution” encompasses the first book but has more practical advice on how to positively effect organizations to compensate for these issues. The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses Vanity metrics, learning milestones, pivots, growth engines – The Lean Startup began by applying the Toyota Way (lean manufacturing) concepts to technology products and software, but goes on to define and document a very coherent approach to rapid product and business model ideation, iteration, measurement, and growth. This is another one where you should probably read the source material since you’ve likely heard these things misapplied a dozen times in bad blog posts and offhand. [...]



Video Game Consumption Q2 2017

Wed, 5 Jul 2017 00:00:00 PST

I abandoned a lot more games and returned them these past few months than previously because apparently I hate video games right now, mostly. Thimbleweed Park Ron Gilbert set out to make a game that felt like a “lost” Lucasarts adventure and succeeded at that and beyond. It’s a great game. It may spend a bit too much time in self-aware nostalgia for some players, but the writing, puzzles, wit, and charm more than make up for it. And also you can turn the in-jokes off with a menu option, along with changing toilet paper orientation and fonts. Kickstarter nostalgia-fueled adventure game revivals tend to just be heartbreaking disappointments, this is the exception. ★★★★ Phoenix Wright Ace Attorney: Spirit of Justice The Apollo Justice: Ace Attorney sequel nobody asked for but turns out we all needed, and they had to brand as Phoenix Wright this time. A 3DS-digital-download only in the US until Capcom decides to sell this on iOS for a fraction of the price, this is probably the most difficult of the legally available in the US Ace Attorney games to play (you’ll need a 3DS, but really, if you never got a 3DS go now and get a New 2DS XL, you deserve it.) Anyway, as always, Ace Attorney games are the best things in the world and and I’m glad we exist in a piece of the multiverse with them. ★★★★★ Ace Attorney Investigations: Miles Edgeworth Previously, I meant “Phoenix Wright” games are the best. “Ace Attorney” games featuring Miles Edgeworth are actually just pretty good, not the best in the world. It’s clear they were hampered by trying to distinguish from the “main” entrants in the series, and so tried to add in some third-person adventure-game style gameplay in addition to the dialog but that doesn’t work that well. The “combining logic” and clues in Edgeworth’s head is a neat idea, but is somewhat convoluted in practice. But it’s still Ace Attorney – writing, wit, characters, and weirdness is all there. ★★★★ Star Trek: Bridge Crew It’s Star Trek VR! Finally. We as a people have accomplished that. It’s easy to get very in-character playing, as you’re talking to the crew in multiplayer. And to get loud and animated. Star Trek Bridge Crew actually has voice recognition even in single player so you can give verbal orders to the crew! Not just multiplayer. I mean, I wasn’t actually using that or playing multiplayer when my wife asked me what was going on with all the noise, but I could have been. Like all of our current “first gen” VR experience we will laugh at how awkward and ludicrous they are when the technology gets better, and this is as awkward as they come. You can forgive it because it’s star trek but it is sort of objectively meh to and use a simulated touchscreen in VR with HTC Vive controls, and it’s JJ Abtrams Trek, not real Next Gen or DS-trek. ★★★ Prey This is the spiritual successor to System Shock 2 that I thought I always wanted but the amount of jump scares from furniture and cups and inanimate objects turning into terrifying aliens in the first 2 hours made it impossible for me to continue. At some point I think I’ll figure out a way to play this – it seems like it would be good? ? Cave Story Seems weird that I never completed Cave Story (I remember getting annoyed with some part of many years ago and losing interest.) Anyway, despite buying and trying to play Cave Story+ it turns out playing the original pixelated version at 16x9 using nxengine-evo was much more pleasing. I get that it’s pretty good, and the art, sound, and design are great – it has character, but I don’t quite see why it has achieved such a cult following. ★★★ [...]



The Case for Freeing MacOS

Tue, 20 Jun 2017 00:00:00 PST

Professionals and power users have been upset with Apple’s high end computers for some time, but the last six months it’s come to a boiling point. I don’t think much in the last round of updates will change that. I’ve worked enough in big companies to understand the external perception and internal reality diverges a lot more than people know, so it’s hard to know how this happened. I’m not particularly interested in the explanations – for me the interesting point is one of strategic misalignment and the opportunity for Apple to do something really bold to address it. Why Pros Are Angry Basically, if you want the absolute fastest processing and graphical power, you are hampered if you want high power, high thermal, desktop computing. Apple isn’t just losing on a price/performance perspective – in some cases it’s not even competing anymore. The 2013 Mac Pro essentially being not updated for years is the most grievous offense, but the more recent MacBook Pro without decent GPUs or keyboards and instead idiotic touch UIs is just offensive to those of us who actually work on computers for a living. Exhibit 1 – The 2016 MacBook Pro Exhibit 2 – The 2013 Mac Pro is ancient Exhibit 3 – The 201x Mac Pro Announcement “coming next year-ish maybe!” Exhibit 4 – The Hackintosh Basically, people are unhappy, and often the best option is to make an illegal hacked up machine from parts that has better performance. Or just use a Windows/Linux PC with better components. What Is The Point Of The Mac Today Apple is, from a business perspective, an iPhone company. The iPhone is the most successful consumer product in the history of consumer products in just about any objective measure. It is unclear if or when we will ever see another consumer product as successful in my lifetime. Given what I understand of Apple’s functional internal structure (rather than business units) – one would expect all the other product lines to suffer as Apple puts more and more of their efforts into the business that makes all their other businesses seem small. Interesting is that in my experience this is true even if benevolant management recognizes this as a problem and tries to adjust staffing / compensation / priorities to invest in other things. Because the potential rewards and recognition from working on “winning” supported projects end up influencing individual’s project decisions, this can be challenging. The rich get richer in that successful projects attract better talent. See also: The Innovator’s Dilemma People like me look at the Mac as a general purpose computer with which to do interesting things (write, program, create art, type in terminal windows for a few decades). Historically the Mac has been Apple’s primary product that is created and sold at high margins. The problem is that isn’t the Mac’s purpose anymore from a macro business perspective – it’s to support the iPhone. The purpose of the Mac is to enable the creation of software and content experiences that make iPhones better. And since the current market scale between laptops, smartphones, and new devices and experiences is unlikely to change, this is likely the reality for the next decade. There will be more smartphone users than computer users, and they will have a faster upgrade cycle. It’s a market that makes others seem tiny. So it may be time to embrace that reality. (Note that this equation changes if iPhones/iPads become platforms to create iOS software, but there’s been little to indicate that is planned in the near term.) Apple Trucks When computer products are compared to automobiles, the trite analogy now is that desktop and laptop computers l[...]



Serious Changes

Tue, 2 May 2017 00:00:00 PST

Today I thought about how I wanted to change some things.

Then I opened .emacs

;; cursor
(setq blink-cursor-mode 0)
(setq default-cursor-type 'box)

Cursors should not blink. Cursors should be boxes, not lines.

Small victories, tiny bits of autonomy.