HNHacker News
TopNewBestAskShowJobs

rikthevik

1,039 karma · joined August 10, 2009

Erik Frederiksen

B.Sc Honours (Computer Science) B.Eng (Computer Engineering) University of Saskatchewan (2009)

Co-Founder and CTO at Andgo Systems.

www.andgosystems.com

--

my public key: https://keybase.io/erikfrederiksen; my proof: https://keybase.io/erikfrederiksen/sigs/8XVsgPU1beFIZZz22Gf-o9QqaHJl2QGoWiXGLhagU4k

submissionscomments
rikthevik··on Ruff: Python linter and code formatter written in Rust
I'm very impressed by the recent developer experience improvements in the python ecosystem. Between ruff, uv, and https://github.com/gauge-sh/tach we'll be able to keep our django monolith going for a long time.

Any opinions about the current state of the art type checker?

rikthevik··on Trusting clients is probably a security flaw
> they provide a standardized interface for all those low-cost manufacturers and get paid by them

As far as trends in IoT goes, I feel like Tuya is mostly positive. I bought some cheap smart plugs at Costco and the default app was worthless. When I learned that they were Tuya-compatible, I managed to get a half-decent (relative to cost) experience out of them. It seems to me that the alternative are a bunch of unmaintained one-off apps for each fly-by-night manufacturer. With a standard protocol and app I think old devices will live a bit longer at least.

Perfect (better) world it's all open source, but c'est la vie.

rikthevik··on Nintendo announces the Switch 2 [video]
Beautiful art direction to be sure.

But let's be real, it's Super Metroid. :)

rikthevik··on I got OpenTelemetry to work. But why was it so complicated?
> the ability to move across tracing providers

It's a nice dream. At Google Cloud Next last year, the vendors kinda of came in two buckets. Datadog, and everyone trying to replace Datadog's outrageous bills.

rikthevik··on Database mocks are not worth it
Agreed. Running docker-compose and postgres-alpine works just fine.
rikthevik··on Database mocks are not worth it
I think you're missing the point.

I want to develop on postgres and test on postgres because I run postgres in production and I want to take advantage of all of its features. I don't understand why a person would 1) develop/test on a different database than production or 2) restrict one's self to the lowest common denominator of database features.

Test what you fly, fly what you test.

rikthevik··on Database mocks are not worth it
> But there should be very few of those if you're using a framework that abstracts away the database.

But I really want that database-specific behaviour. :) PostgreSQL does so many amazing things (recursive CTEs, jsonb, etc) that actively make our system better. If there was a fork of Django that optimized for leveraging advanced postgres features, I'd use it.

rikthevik··on Four limitations of Rust's borrow checker
This is why I think cross-training is so important and I should do more of it. Even something relatively minor, like doing the Advent of Code in elixir (nim last year) has made my python significantly easier to reason about. If you quit mutating state so much, you eliminate whole classes of bugs.
rikthevik··on How do you do, fellow web developers? A growing disconnect
I totally agree. It's like we've forgotten what browsers and HTML are meant to do.

Back in the day we used to rail on Flash websites because while they looked nice, they weren't accessible to screen readers etc, sites weren't consistent, links didn't turn purple, and the back button didn't work.

Now we've done that again with HTML and React.

Flash is dead, long live Flash.

rikthevik··on How we centralized and structured error handling in Golang
> The code is allowed to continue after it has logically bugged out.

I'm a big fan of asserting preconditions and making it clear that we are getting into a bad place. I would rather dig through Sentry for an AssertionError than propagate a bad state and having to fix mangled data after the fact. If the AssertionError means that we mishandled valid user input, no problem, we'll go fix it.

A few times in my career I've had to ask, "okay, how long has this bug been quietly mangling user data?" and it's not a fun place to be.

Side note: I've never understood the convention of removing asserts in production builds. It seems like removing the seatbelts from the car before the race just to save a few pounds.

rikthevik··on The Pentium FDIV bug, reverse-engineered
I've never used Maple for work, only for survival. We had a Calculus for Engineers textbook that was so riddled with errors I had to use a combination of the non-Engineering textbook and Maple to figure out wtf was going on. Bad textbook, bad prof, bad TAs and six other classes. What a mess. Those poor undergrads...
rikthevik··on Pink Floyd's 'The Wall': A Complete Analysis
One of my advisors saw Pink Floyd play Dark Side in its entirety in London in the 70s. I can't help bringing it up every time I see him.
rikthevik··on Why did clothing become boring?
Clothes are an important part of how we communicate with each other. It's an important part of the human experience, right up there with art and music.

By having this opinion (and I assume dressing plainly) you are sending your own message to people about what's important to you.

rikthevik··on History of rat control in Alberta
-30 reporting in
rikthevik··on Computing with Time: Microarchitectural Weird Machines
This is fantastic stuff, building these machines out of odd primitives.

They kind of remind me of blind SQL injection attacks. When you can inject SQL, but can't view the output, so you use things like `pg_sleep()` to get a low-fidelity form of query output. Depending on how far you want to go, you can use different sleep lengths to slowly exfiltrate data.

https://owasp.org/www-community/attacks/Blind_SQL_Injection

rikthevik··on Massive Amount of Rare Metal Deposits Found Off Remote Pacific Island in Japan
You sound so sure. Can you elaborate?
rikthevik··on /usr/bin/env -S uv run
Praise for everybody!
rikthevik··on The Rise of Malört, an Unexpected Midwest princess
I'm intrigued to try it. I wonder how much it overlaps with Gammel Dansk, which my cousin describes as "it's a like a cinnamon stick threw up"
rikthevik··on /usr/bin/env -S uv run
Fantastic. I'm very impressed with Simon Willison in general (what a dynamo) and this in particular.
rikthevik··on Yi Peng 3 crossed both cables C-Lion 1 and BSC at times matching when they broke
Yeah dude. There will be a next thing.

“Be like water making its way through cracks. Do not be assertive, but adjust to the object, and you shall find a way around or through it. If nothing within you stays rigid, outward things will disclose themselves.

Empty your mind, be formless. Shapeless, like water. If you put water into a cup, it becomes the cup. You put water into a bottle and it becomes the bottle. You put it in a teapot, it becomes the teapot. Now, water can flow or it can crash. Be water, my friend.”

- Bruce Lee

rikthevik··on How good are American roads?
British Columbia mandates winter tires on highways going through the mountains, and chains for trucks. I wish other provinces would put in similar mandates, because it's a bit of a clown show on the roads right now in Saskatchewan.
rikthevik··on How good are American roads?
I'm not sure if you ended up in Saskatchewan, but it kind of sounds like you did. The highways in Alberta are quite a bit better and it's a relatively abrupt change.
rikthevik··on The brain summons deep sleep for healing from life-threatening injury
And pretty reasonable if people are plus or minus a few timezones. Working cross-continent is absolutely brutal.
rikthevik··on We built a self-healing system to survive a concurrency bug at Netflix
I'm fine with it.

If people want to belittle something, either we aren't trying to solve the same problem (sure) or they're actively turning people away from what could be a serious advantage (more for me!)

If the cost of switching wasn't so high, I'd love to write Elixir all day. It's a joy.

rikthevik··on Learning not to trust the All-In podcast
We are all blind to ourselves.

I feel like I should get that tattooed on my hand, next to one saying, "It's not about you."

rikthevik··on If you need the money, don't take the job
Exactly. The guy I'm thinking of has a small number of very happy clients and he can choose who he wants to work with. It's funny that at the high end, it seems like things get easier. You don't have to haggle over an hour or two. You name your price and deliver super high value to people who are happy to pay.

It makes me think of "The Wolf" from Pulp Fiction.

"It's about thirty minutes away. I'll be there in ten."

rikthevik··on If you need the money, don't take the job
Yeah, it's tough to know who can actually deliver.

I know one guy (a consultant now) who I would trust to Navy SEALs parachute into almost any technical problem and come up with a real solution. Any part of the stack, from building a physical hardware test bench, debugging firmware compiler bugs, desktop software development, to a scalable web stack. These people exist, and they're not cheap.

However, it's worth noting that no one with skills like that works at Deloitte.

rikthevik··on Debian’s “secret” sauce
Does that invalidate the project's many years of good work? Which distro would you use instead?
rikthevik··on Why Gumroad Didn't Choose Htmx
> 95% of your project even if the main interaction loop is done in react

The trick is to be very honest with yourself (and team) about how much complex front-end UI the application actually _requires_. Using React where it isn't necessary is very expensive in the long run. The older I get, the more the grug brained developer makes sense.

rikthevik··on Porsche's idea for a six-stroke internal combustion engine
If I remember correctly the engine in the Mazda Millenia was a Miller cycle engine and did something unconventional like this. Props to Mazda for trying new stuff.

https://en.wikipedia.org/wiki/Mazda_Millenia

← PreviousPage 2 of 11Next →