Sunday, November 11

initial notes on the intel nuc (NUC6i7KYK)

Previously: initial notes on the dell xps 13 developer edition (9360).

Rationale: I’ve been using laptops as my primary working machines since I quit my last in-office job in November of 2014, and wanting to go back to a robust desktop setup for almost as long. Laptop ergonomics are a disaster, and while low-level pain from typing too much has been part of my life since I was a teenager, it’s been quite a bit worse lately. I finally decided to do something about this last weekend.

My ideal here would be to take an old case I’ve had since the first time I did a custom PC build in 2001 and jam it full of stuff. I may still do that eventually, but this time around I spent a couple of evenings looking at workstation build lists and manufacturers before throwing up my hands and ordering an Intel NUC, the one with the stupid gamer-aesthetic-looking skull graphic on top of it, at around 3 in the morning while drunk and high.

I’m still mad at Intel for a wide range of pretty mind-boggling security fuckups over the last couple of years (or decades) and I really don’t like giving them money, but here we are.

What I bought:

  • Intel NUC Skull Canyon NUC6i7KYK Kit - Newegg, $528.00
  • Crucial 32GB Kit (16GBx2) DDR4 2133 MT/s (PC4-17000) DR x8 SODIMM 260-Pin Memory, CT2K16G4SFD8213 - Amazon, $289.00
  • Samsung 860 EVO 1TB M.2 SATA Internal SSD (MZ-N6E1T0BW) - Amazon, $162.99
  • The 250 gig version of the above, from Best Buy, after I realized that the 1 TB one wasn’t going to get here in time to do setup this weekend.

(Here’s a pro forma apology for giving Amazon money. The NUC was cheaper on Newegg, and I’d intended to get storage and RAM from them as well, but they were wildly more expensive there and, having reached the point of making an actual decision about what to buy, I knew that further hesitation might derail me for months, so I just pulled the trigger.)

The NUC is a “kit” in the sense that you have to open the case and plug in memory and storage. For those not familiar with these things, they pretty much read as laptop hardware in a little box, sans keyboard and display. They’re basically single-board computers with “real” specs. This one has 4 USB ports, a USB C port, and one each of HDMI and DisplayPort, SD card slot, and headphone/speaker jack. There’s also builtin ethernet and wifi, an optical port of some kind, and what I assume is an IR sensor. It’s not the plethora of legacy ports I really want, but neither is it nearly as lame as the typical modern laptop profile. I think it might be possible to break out some additional interfaces - there’re some connectors on the board under the lid.

Setup: This thing is rumored to run Debian pretty much ok, as long as you update to the latest BIOS first.

So far I’ve:

  • Installed the latest BIOS from Intel by downloading the “Recovery BIOS update” to a USB drive and pressing F7 at start. You then get a menu that lets you select the update to install.
  • Installed Debian Stretch 9.6.0 from the netinst copied to a different USB drive. (I used pv debian-9.6.0-amd64-netinst.iso | sudo dd of=/dev/sda to image the drive.)
  • Copied firmware-iwlwifi_20161130-4_all.deb onto the drive from step one and inserted it when prompted during the Debian install. I’ve had all sorts of trouble with installing proprietary drivers this way in the past, but this time it was fairly painless. I am, as usual, irritated that proprietary drivers are a thing. The computer hardware industry sucks.

Next I’ll spend some time figuring out how to share the vast majority of my home directory between this box and the laptop I still use when I leave the house, while keeping separate configuration for stuff that touches screen resolution and so forth. I’m planning to use relatively low-resolution monitors so that I don’t have to fight with how many of my tools are still terrible at high-DPI environments and how bad my eyes are at reading tiny, tiny fonts.

Sunday, October 28

It’s fall. I filled out a ballot today, which is basically the furthest extent of my political participation in recent memory, a few angry letters aside. I feel paralyzed.

In the world, things seem bad and getting worse. The last few days have featured a mass murder at a synagogue, pipebombs in the mail, that fucker winning in Brazil. It’s like this all over. The internet is a stew of fear and loathing, impossible to assimilate or process, this howling gale of bad feelings about everything and everyone blowing out of pretty much every screen on the planet. I get up in the morning to work my computer job and if I’m unlucky I click the wrong thing and I don’t recover from how fucked-up it makes me feel until the next day or the next week. We made everybody halfway to telepathic and it turns out to be like in that Spider Robinson story where the guy can read minds and it’s a traumatic nightmare to know what other people are thinking. Like that but with feedback loops all over the place.

I’m doing it right now. It’s a bad look.

thursday, october 25

when i was young, i read a book
(or maybe had it read to me)
where a tornado struck a small town
and in one scene a character was wearing
a windbreaker

that word, windbreaker, got burned into my memory
right then, along with the vivid idea that
it must mean some kind of potent technology,
protective gear which could shield or
reinforce you against the howling wind of
a tornadic plains thunderstorm

i don't know how old i was before i figured out
that it just meant a kind of light and particularly
ineffective jacket, but it still carries the echo
of my disappointment at how much harder it is
than that to find any real armor against the violence
of the world.

Sunday, October 7

filter-exec-stdin

I recently added a new script to my collection of personal utilities, filter-exec-stdin.

It’s a little hard to explain this one without reference to its close relatives, filter-exec and filter-exec-raw. These are, as the name strongly implies, filters: They take standard input, transform it, and print the result to standard output.

This makes them easy to use in a text editor like vim, where you can pass the contents of a buffer through an external program like so:

:%!some-script

I wrote filter-exec, the first of these, as a quick and dirty way to include shell commands and their output when writing documentation (like userland or DigitalOcean tutorials) in Markdown. Markdown parsers tend to ignore HTML comments, so I used comments to mark the start and end of a block, and $ to mimic a command prompt, followed by the command string:

<!-- exec -->

    $ ack --thppppt

<!-- end -->

And the filter adds the output:

<!-- exec -->

    $ ack --thppppt
    _   /|
    \'o.O'
    =(___)=
       U    ack --thppppt!

<!-- end -->

The output is indented 4 spaces, which causes Markdown parsers to treat it as preformatted text. It can be run repeatedly, and will retain the command but update the output.

Later on I was cobbling together a system for generating simple invoices, and wanted something similar without the command included in the rendered output or the indentation, so I added filter-exec-raw:

<!-- exec-raw ack --thppppt -->
_   /|
\'o.O'
=(___)=
   U    ack --thppppt!
<!-- end -->

Here the command is inside the HTML comment, and the raw output is printed inside the block, instead of an indented version.

exec-stdin is more meta. It goes something like this:

<!-- exec-stdin sort | uniq -->
1
2
3
4
<!-- end -->

…that is, it runs the command after exec-stdin, passes the contents of the block off to it, and replaces the block with the command’s output. I’m not sure how useful this is. It assumes that a command will have stable output for given input - that is, something like sort, where once the input is sorted, it won’t change again. The idea is that I might have a block of text that should be sorted, checked for duplicates, formatted, etc., and I can just invoke utilities like sort, uniq, fmt, and so forth to handle those problems.

It’s possible that a more-generally-useful filter would retain the original block while also outputting the results of the command.

linkdump

Elaine Pagels on Religion, Mourning, Scholarship, and Faith — «There’s something about engaging the spiritual dimension in life that, for me, is essential. I don’t think it is for everybody. I mean, I have a close friend who does this in her work in theater. My husband was dealing with his way of understanding through physics and the natural world. But for me, there’s something very powerful about that kind of music. It’s not the only kind. I like the Grateful Dead.»

The A320 and the Hudson

4x4_button_pad.pdf

jarun/nnn: The fastest terminal file manager ever written.

The Empty Core of the Trump Mystique | The New Republic — «A nihilist dreams of going out in a blaze of glory, taking as many with him as he can, because he hates his life and despises life in general. A martyr sacrifices her life, which by definition she cannot do unless that life is precious to her. You can only sacrifice what you hold dear. And you do so because something else is dearer still.»

RSS - The New York Times

docs/BigEmo at master · corkami/docs

[soundcloud] Every single live mix / DJ set recorded on the playa this year that I can find so far.

Geoff's Projects - The Maximite Story — «This is the story of developing the Maximite, a small computer described elsewhere on this site. It is not a particularly riveting story (like "The Soul of a New Machine") but it does illustrate the ups and downs of creating a complex device. It started with a simple idea and the thought "how hard could it be?" and ended up with a three month marathon and a remarkably complex and sophisticated device.»

A fun optimization trick from rsync

Richard Stallman: Talking to the Mailman. New Left Review 113, September-October 2018. — «People said that having a free operating system was utopian and impossible. They argued that there was no use even trying, because it was so difficult. But I think that there’s a fundamental error in that question, which is that it assumes that giving up would be okay. I don’t use non-free software. I don’t use the facilities that require users to run non-free software. So, the free software we have is already useful—and I’m sure we can achieve a lot more if we try than if we give up. I don’t say that free software is more important than defeating plutocracy, or more important than curbing global heating; and I wouldn’t try to argue that people should work on one rather than another. But we’ve got to have people working on this one—and people in the software field can’t avoid the issue of free versus proprietary software, freedom-respecting versus freedom-trampling software. We have a responsibility, if we’re doing things in the software field, to do it in a way that is ethical. I don’t know whether we will ever succeed in liberating everyone, but it’s clearly the right direction in which to push.»

The Pittsburgh Synagogue Shooting and the Return of Anti-Semitism to American Life | The New Yorker

CircuitPython Creates New AT Opportunities | ATMakers

What Percent Are You? - WSJ.com

The Wild Reeds: NPR Music Tiny Desk Concert - YouTube

Khruangbin @ Villain | Pitchfork Live - YouTube

Could A Ban On Spanking And Other Corporal Punishments For Kids Affect Rates Of Teen Violence? : Goats and Soda : NPR

ShortcutBox/shortcutbox at master · dhalbert/ShortcutBox

Debates about poppies are nothing new, but the tone has changed in Brexit Britain | openDemocracy

How did the first world war actually end? – Paul Mason – Channel 4 News

Iggy Pop and the Stooges rider