HNHacker News
TopNewBestAskShowJobs

ianhowson

962 karma · joined September 28, 2016

You might know me from:

* https://ianhowson.com -- my blog

* https://rdrr.io -- the world's most comprehensive index of R package documentation

Feel free to email me anytime -- ian@mutexlabs.com

submissionscomments
ianhowson··on Weird Keyboards, Programmable Keyboards
I'll second that. I found that the height off the desk put pressure on my wrists and shoulders. The wrist pads get sweaty and gross and wear out very quickly.

It's still a great design.

Also every person that walks by your desk will interrupt you to say "that's a weird keyboard."

ianhowson··on Weird Keyboards, Programmable Keyboards
Not yet -- ask me in two weeks!

I found enough reports on Reddit that I figured it was worth trying, and I used a Kinesis Advantage for a long time.

If you haven't used a Kinesis, I would recommend buying or borrowing one first. The price of a KA vs. a from-scratch Dactyl [Manuform] is similar, but the KA doesn't need assembly and is easy to resell if you don't like it.

At this point I have a ton of keyboard parts lying around, I've used QMK a lot, and I have strong preferences for certain switches (which I already own), so the cost is just the 3D prints and assembly time (also low, because I've built a few keyboards from scratch before.)

ianhowson··on Weird Keyboards, Programmable Keyboards
Google 'dactyl' and 'dactyl manuform'. It's relatively cheap to get the cases 3D printed. Most people are hand-wiring the switches rather than trying to make flex PCBs.
ianhowson··on Apple Plans to Announce Move to Its Own Mac Chips at WWDC
Right. Say -- pessimistically -- that I'm on a 5k display (14Mpixels) at 8 bytes per pixel, and double buffered, we can do about 35 copies of that display in GPU RAM. This seems about in line with my experience.

And this is where I don't know what to think because "keep it all in vRAM" is clearly a terrible algorithm, and I have faith in the macOS developers, and yet my data suggests that this is exactly what they're doing. I don't see things swap out when there's memory pressure; it just keeps on allocating until it's full, then spills over to system memory and makes everything slow.

Counterintuitively, the iGPUs have an advantage here. They always run from system memory but they have a faster path to system memory -- they don't need to operate over PCIe -- so (a) you don't have a large perf gap between the 'full' and 'not full' cases, and (b) spillover doesn't hurt. You use a lot more RAM, but you can buy more of that. I can't easily add RAM to my GPU. At best I can double it, and that just means 70 Chrome tabs instead of 35.

I'd love to hear from someone at Apple who's seen the internals of this.

ianhowson··on Apple Plans to Announce Move to Its Own Mac Chips at WWDC
Can confirm. My data points:

1. MacBook 12" 2015 feels dramatically faster at 1x scaling vs. 2x, even with the same output resolution (2560x1440@1x vs. 1280x720@2x.)

2. Mac with 8GB RX 580 GPU. With >1x scaling, as I add load (i.e. Chrome tabs) it eventually runs out of GPU memory and starts paging to system RAM. The whole thing grinds to a halt at that point.

The rendered pixel count makes this effect worse -- dual 4ks are slower than a 5k, is slower than a single 4k, is slower than dual HDs. This is to be expected, but we're talking about an 8 gigabyte GPU, and the framebuffer sizes should be a tiny drop in the bucket.

None of this happens at 1x scaling. Running a native (2x) scale factor feels a little faster than a downscaled (2x -> 1.5x) scale factor.

As far as I can tell, load and GPU mem usage scales with:

(number of GPU applications * total rendered pixels) ^ k.

At 1x scaling, k is close to 1. At HiDPI, it's greater than 1.

ianhowson··on New 13-inch MacBook Pro
I use it. I wish I didn't need to.
ianhowson··on New 13-inch MacBook Pro
Agreed. MacBook Air has quad-core in similar clock ranges but tops out at 16GB of RAM. Pay an extra $1300-ish for Pro, you can get 32GB of RAM. There's literally nothing else in this refresh that's compelling.

And the only reason I want that RAM is for Chrome.

ianhowson··on Hardware Microphone Disconnect in Mac and iPad
I got new AirPods and loved it for about an hour. "Hey Siri, open Spotify." "Hey Siri, next track" and so on while I was walking around. I'm spending most of my day on conf calls, so the AirPods are in anyway.

Then they started false triggering about every ten minutes. "Hey Siri, decrease sensitivity" does nothing. "Hey Siri, set a timer": "nope your $4k computer can't count time."

Turned it off. Sorry.

ianhowson··on Ask HN: Smallest laptop that is decent for coding?
Hah. I'm trying to find a non-dorky way to clip it to my belt. It's my "hey I gotta go to a meeting and take notes but I don't want to mess up my desktop" laptop.
ianhowson··on Ask HN: Smallest laptop that is decent for coding?
I carry a 12" in this role and it's great. Surprisingly long battery life, weighs nothing and, assuming you spend most of your time in an editor, fast enough.

Downsides are (a) butterfly keyboard and (b) tiny screen. If you do anything that requires compilation, get something with a CPU fan like the new 13" Air.

Get the 16GB model either way.

ianhowson··on Self-hosted, super simple photo stream
I can't speak to their motives, but here's a WONTFIX bug for it: https://issuetracker.google.com/issues/80379228
ianhowson··on Self-hosted, super simple photo stream
You reminded me. GPhotos is stripping the GPS data from the photos, which is why I started using iCloud.

I just want to take my data from here... and put it there... and not have it trashed along the way. I will pay money for this service.

ianhowson··on Self-hosted, super simple photo stream
Can you share the script? Since Google disabled the photos-go-to-GDrive thing I don't have a way to automatically back up my photo stream.
ianhowson··on Self-hosted, super simple photo stream
I really really want this to work, but it doesn't, at least on iPhones. The sync only seems to work while the app is open, it uploads JPEG instead of HEIC, and videos aren't uploaded at all.

I would be happy to pay money to make this work properly.

In the meantime, I pay extra for Google Photos (for display/search/tagging) and iCloud (for reliable auto backup) and need to find a way to automatically download the iCloud things to my Plex/NAS machine.

ianhowson··on ARMed mac: not again or for real this time?
Thankyou.

ARM and x86 are both capable of very high performance. ARM isn't magically capable of putting out 10x the FLOPS in the same power envelope. Modern x86 parts are very close to ARM in terms of work completed per unit energy consumed.

The difference is that it's rare to see an ARM part with a heatsink/fan and it's rare to see an x86 part without one. RPi and MacBook 12 are notable exceptions to this.

All of this presumes that CPU utilization is what's eating the power. It's not. For an idle machine (e.g. ARM iPad vs. x86 MacBook) most of the energy goes into the display backlight. The SoCs idle down to near zero energy consumption.

It's even difficult to assert that CPU usage is a big power culprit on these machines. My MacBook 12 can max out CPU forever and hold 1.8GHz with no fan. The 4 core post-Haswell MacBooks can max out their CPUs and have the fan running very slowly. But run the GPU hard on either of those machines? You'll max out the fans and power consumption immediately and things will start throttling.

TL;DR: CPU arch makes no difference. ARM Macs will have similar cooling solutions to the current ones.

ianhowson··on Colab Pro
$10/mo doesn't pay for much compute in Google Cloud. Colab Pro is offering GPUs and high memory instances, presumably under the assumption that interactive users will be mostly idle.
ianhowson··on Revolution Pi – The Industrial Raspberry Pi
That's the Linux RT patch which (roughly) adds a higher priority class. It's not deterministic in any way.
ianhowson··on If You Can't Buy the Keyboard You Want, Build It Instead
+1 for the Havit. It's cheap and feels great.

It's noisy, though.

ianhowson··on If You Can't Buy the Keyboard You Want, Build It Instead
I bought an MD650L and found the switches to be unusably bad. I, too, wished for a low-profile Quefrency.

I'm comfortable designing and assembling PCBs but don't really have time to debug a brand-new design, so I've ordered a low-profile Lily58 kit. The Lily58 is most of what I want and has open source PCB, schematic and case. If it doesn't work for me, I'm expecting to modify it to something more like Quefrency.

ianhowson··on BMW shares AI tools used in production
The tech in this blog post isn't at all representative of BMW at large.

There's a ton of 'decade behind' stuff that runs in VMs on Win10 machines.

ianhowson··on Why has the hearing aid industry gone completely digital?
CD sampling is 44.1kHz. 22.05kHz is used in plenty of HAs. I haven't seen anything lower (but wouldn't be surprised to learn otherwise)

22kHz sampling isn't a problem in practice as:

- HAs focus on speech comprehension, not music. Speech doesn't high much content above 5kHz, so even 22kHz is double the Nyquist rate.

- Music is perfectly enjoyable at 22kHz (but obviously better at 44kHz)

- People getting hearing aids have hearing loss, and the majority of hearing loss is in the high frequencies

ianhowson··on Why has the hearing aid industry gone completely digital?
Interesting argument but I don't buy it.

- Digital hearing aids are smaller, lower power and easier to configure than analog hearing aids (think "fits in your ear canal" vs. "you wear the original iPod on your belt")

- The benefits of full-analog audio are contentious at best and almost certainly imperceptible for people with hearing loss

If you want further convincing that A->D->A conversion is perfectly fine, https://xiph.org/video/vid1.shtml is excellent.

ianhowson··on The design of littlefs: A fail-safe filesystem designed for microcontrollers
If you aren't cost-optimizing that hard, you aren't shipping meaningful volumes yet. 470uF isn't cheap at 10k+ units.

My last project couldn't use a giant cap because of size, not cost constraints.

ianhowson··on The design of littlefs: A fail-safe filesystem designed for microcontrollers
Flash over SPI isn't very predictable. There's a boatload of internal state -- they silently do R/M/W, there's internal stepup converters with unknown voltage levels, temperature variation greatly impacts write time, and, depending on your software stack, you might need to do an erase.

Assuming you only need to execute one Flash transaction (doubtful!), covering all of the variation might take upwards of 50ms.

So, yeah, you could just throw a massive cap on the power rail. Except that that conflicts with the other power, cost and size constraints implicit in the context of microcontroller systems.

ianhowson··on The design of littlefs: A fail-safe filesystem designed for microcontrollers
Except that:

(a) you don't choose how long you get because the uC manufacturer already chose. (An external brownout warning is different, and useful, but still not a good solution to the problem of FS integrity.)

(b) those thresholds have nothing to do with the operating thresholds of the flash (which usually require a lot more energy to do work than the uC)

(c) writing to flash is a relatively high-power operation, and if you need to erase, you're doing the highest-power operation at a time when you have no power buffer

(d) warmup time to do an erase is measured in milliseconds, and you probably don't have that much power buffer

The best you can do at brownout is minimize the damage, because your uC is about to switch off and/or silently inject errors.

ianhowson··on Anatomy of a Mechanical Keyboard (2018)
This. I also enjoy being able to move the two halves around through the day, shifting the muscular load around. It makes it easy to accommodate different seating, standing and lying positions.

(I never figured out, despite 'ergonomics training', how I was supposed to hold my extended hands and arms upright for hours per day without shoulder and neck pain.)

ianhowson··on A problem worse than Zoom?
Not every TCP server speaks CSRF.

This isn't about 'garbage software'; it's about the expectation that a local LAN is not exposed to the Internet and therefore does not need the same security controls that an Internet-facing network does.

Browsers making requests on the LAN breaks this expectation.

Before someone says "but I don't expect that", well, why do you even have a firewall? With the notable exception of Google/BeyondCorp, practically every LAN in the world expects to trust its members. Having untrusted code in browsers able to send requests on the LAN violates that expectation.

ianhowson··on A problem worse than Zoom?
There are. Let them set a setting or confirm on a popup. The vast majority of web users do not want this.

Similarly, there are legitimate reasons why I might want to access a service with an invalid SSL cert. They're rare and should be discouraged for general users.

ianhowson··on A problem worse than Zoom?
You assume that the target is a web server. I can learn lots of interesting things by firing GET requests at non-web servers.
ianhowson··on A problem worse than Zoom?
Is there a legitimate reason why 'other developers' might want to access services on my LAN?
← PreviousPage 3 of 9Next →