HN user

codelikeawolf

604 karma

Software engineer and wolf enthusiast. Personal site: https://mikerourke.dev

Posts7
Comments177
View on HN

I'm a bit of a Forensic Files nerd, so I worked on a little side project a while back to pull the transcripts from several episodes, use entity recognition to categorize people, places, things, etc, and load them into a Neo4j database (via Cypher queries). It turns out there's something called the POLE data model[1] that can be used by law enforcement to help solve crimes. You load all the details into a graph database and evaluate the relationships to aid in solving crimes. I suppose you could argue a criminal investigation is essentially graph traversal.

[1] https://neo4j.com/blog/government/graph-technology-pole-posi...

Edit: typo

Ugh, what a bummer. I'll be listening to Holding Out for a Hero on repeat today. Nothing gold can stay.

That said I just had my floors refinished and the contractors we lucked into finding for that 2 week job went above and beyond even my level of attention to detail.

It's funny you mention this, because I also have generally had good luck with flooring contractors.

I’ve tried to find local contractors who will just take pride in their work and get it done right (or overkill I suppose by my standards) the first time. Even old mainstays that are regularly double the cost of everyone else have been slipping lately. Companies I used to single bid for jobs knowing I was overpaying but didn’t care since I didn’t have to come behind them to audit or fix anything. They have all devolved.

You nailed it. I think most of the higher bid folks these days are deliberately quoting an inflated price because they either don't want to do the job or are trying to charge commercial rates. I'm sure the commercial jobs are much more lucrative and you won't get people complaining about a crooked pipe. They generally don't care, as long as everything works

Yeah this is a totally fair point. I suppose it's indicative of a greater trend I've been noticing as the years have gone by: standards have lowered because the highest quality work has become prohibitively expensive. But the thing that bothers me with the trades is that it doesn't actually _cost_ that much more to do a better job. I don't really know what the solution is, because it seems like this is societal. When I was an industrial electrician, the quality of my work was unaffected by my hourly rate. I took pride in what I did, I wanted to be good at it, and I strived for quality because it made me feel good to do a good job. I still feel that way about what I do. I guess I'm a little bummed out that it's hard to find people like that, especially since I'm willing to compensate them appropriately.

I feel like shoddy construction/craftsmanship isn't limited to new home construction. My wife and I just wrapped up a 6 month renovation of a >100 year old house. I used to work in industrial maintenance, so I knew how to do a lot of stuff already (electric, natural gas lines, drain lines, etc.) We had to farm out a couple of jobs to contractors we didn't have time to do ourselves. With the exception of one guy, they all did horrible work. I actually had to redo some of the work the plumber did. I was so disheartened with the quality that I decided I was going to just do everything myself from now on. I realized even if I read a book about how to do it and watched a few YouTube videos, I could do better.

I really don't think it's a skill issue, because these people knew what they were doing. It just feels like nobody gives a sh*t. If I bend a piece of conduit that's in a visible part of my basement and it's crooked or off, I'll take it down and re-bend it. If I install a piece of base trim and there's a huge gap between pieces, I'll cut a new piece. There's no attention to detail, and I am _willing to pay extra_ for that. Charge me for the extra conduit or base trim.

I've actually entertained the idea of starting my own electrical contractor company and hiring/training ex-software engineers. I feel like we as a profession generally don't like sloppiness and most of us are nitpicky enough (myself included) to produce quality work. I can't be the only one out there that's happy to pay a little extra if they know they're not getting garbage.

I was thinking the same thing. It truly is a magical place and unlike any other city in America I've been to. I think relocation is best for the safety of the residents (obviously), but I can't help but think "New Orleans 2.0" would end up being just another city. Unless someone comes up with a way to pick the whole thing up and move it, I strongly recommended visiting before it's gone.

I was in the same boat for a while, but I gave it a shot several years ago when I was doing a lot of driving every day and was powering through audiobooks. This might sound a little hyperbolic, but it actually ended up changing my life in a lot of little positive ways. For example, I used to work with a guy that got made fun of for some of his interests (nothing harsh or super hurtful, just poking fun). I was always really supportive of what he was into and asked questions about it. I wasn't trying to get anything out of it, I just remembered the book and thought it's nice to be nice. When he got married about a year into us working together, I was the only one from our job that he invited to his wedding.

This rant about radiating happiness towards people without expecting something in return...

This was one of my main takeaways from the book. I would argue that you do get some things in return: richer relationships with the people you already know, pleasant encounters with people you may not know well, and increased enthusiasm for your own interests compounded by hearing someone else explain how enthusiastic they are about their interests.

When we moved to Portland about 7 years ago, our first apartment was in the Pearl District on Couch (asking someone to pronounce it correctly is another good Portlander test). I'm a huge fan of the alphabetic street names. It made it really easy to get around a new city. I know the system eventually breaks down when you hit the 27th street, but I still think it's great. Anyways, I'm back in Chicago now and memorizing street locations.

Urea prices 4 months ago

Funnily enough, leather tanners and pee is where the terms "piss poor" (being so poor that you need to sell your pee to tanners for cash) and "doesn't have a pot to piss in" (can't even afford a thing to hold your pee to bring to tanners) came from.

I've been in therapy for over a year and one of the most valuable things I've learned as a fellow "problem solver" is to run through the "three H's" when something comes up:

1. Do you want to be Helped? 2. Do you want to be Heard? 3. Do you want to be Hugged?

I'm still trying to get in the habit of using this approach more often with my partner, and as I do, it has noticeably improved our relationship. It turns out most of the time, she just wants to be hugged.

Ah, my bad. I apologize if I came off as too aggressive. I know these comment threads can get heated.

As far as the comp/transpiling thing, I was referring to something like ScalaJS, ClojureScript, Kotlin/JS, etc. I'll admit that the JS output isn't always pretty, but it's still JS. I think that compiling to a Wasm module is different than transpiling, because Wasm is more of a black box.

I think it's fine to ship a `.wasm` file that does some kind of computation and complements the app. But I think shipping a `.wasm` file that builds your UI is like using a drill to install a nail: technically, you could do it, but it's harder, slower, and you'll probably end up damaging something or hurting yourself.

I think maybe you misunderstood what I meant. When I said "perfectly capable mechanism", I meant building the app in JS/TS and leveraging Wasm for additional functionality in your language of choice. I'm also not sure if the "one-off JS glue code" you're referring to is the JS file that languages like Go or tools like Emscripten spit out to get Wasm to work with your app, or the WebAssembly Web API specifically. I would agree that the former is a bit of a dumpster fire.

I think it sort of does answer that - if js was not an awful language, there would be no need for TS.

Eh, I disagree. For me, this statement is the equivalent of saying "if Python was not an awful language, there would be no need for mypy" or "if Ruby was not such an awful language, there would be no need for Sorbet". I don't think mypy or Sorbet improves the underlying languages; they just add some additional DX to prevent those aforementioned stupid mistakes.

I wasn't trying to be disingenuous when I asked what was wrong with JS. You've now referred to it as "awful" and "very bad". I have used other programming languages pretty extensively, and JS seems fine to me. When I asked you why it was bad, you hand-waved it away, saying "let's not go into that for the millionth time". When I see statements like that, I immediately think "oh, so this person is just jumping on the bandwagon without providing objective reasons for why this language is bad". If you think that JS is bad and awful, fine, that's your opinion. But whenever I have a negative opinion on something and I'm presented with compelling evidence to the contrary, I re-evaluate my reasons for why I think it's bad and possibly change my mind.

At the end of the day, if you want to hate on JS and hope for a browser compile target that lets you use any other language than JS to build web apps, that's your prerogative. I was a web dev for almost 10 years, and I've seen the improvements to the language and ecosystem over time. So whenever I encounter the "LoL Js SuCkS" mindset, it grinds my gears a little bit.

I'm not sure if this is meant to be snarky or if you're saying that the languages you listed have improved over time. If you're being snarky, you've proven my point by saying several random programming languages are better than JS while providing zero justification.

I don't mean to split hairs here, but considering the wording of "throw something in the gutter", I would argue that "hate" isn't really too far off the mark.

Wasm with 'fast' DOM manipulation opens the door to every language compiling to wasm to be used to build a web app that renders HTML.

This was never the goal of Wasm. To quote this article [1]:

What should be relevant for working software developers is not, "Can I write pure Wasm and have direct access to the DOM while avoiding touching any JavaScript ever?" Instead, the question should be, "Can I build my C#/Go/Python library/app into my website so it runs with good performance?"

Swap out "pure Wasm" with <your programming language> and the point still stands. If you really want to use one language to do everything, I'm pretty sure just about every popular programming language has a way of transpiling to JS.

[1] https://queue.acm.org/detail.cfm?id=3746174

Wasm is essentially a CPU in the browser. It's very barebones in terms of its capabilities. The DOM API is pretty beefy, so adding DOM support to Wasm would be a massive undertaking. So why add all that complexity when you already have a perfectly capable mechanism for interacting with the DOM?

Let's not go into that for the millionth time

Ok, that's fair. My goal with this question wasn't to open a can of worms. But whenever I see a strong averse reaction to JS, I assume that the person hasn't tried using _modern_ JS.

why is TS wildly successful

From my perspective, it stops me from making stupid mistakes, improves autocomplete, and adds more explicitness to the code, which is incredibly beneficial for large teams and big projects. But I don't think that answers my original question, because if you strip away the types, it's JS.

even before that everyone was trying to use anything-but-js

Because JS used to suck a lot more, but it sucks a lot less now.

Do that and frontend web-apps will throw JS into the gutter within a decade.

Why though? What's wrong with JS? I feel like it's gotten a lot better over the years. I don't really understand all the hate.

Go away Python 7 months ago

Fair point. If I'm writing scripts, I normally opt for a JS file with JSDoc annotations if I want autocomplete for types (you don't need a tsconfig/tsc installed in WebStorm). Most projects I've encountered with TS scripts were already TS projects to begin with.

Go away Python 7 months ago

Did you (rightfully) want to tear your eyes out when some LLM suggested that you script with .mjs?

I respectfully disagree with this sentiment. JS is a fantastic Python replacement for scripts. Node.js has added all kinds of utility functions that help you write scripts without needing external dependencies. Bun, Deno, and Node.js can execute TS files (if you want to bring types into the mix). All 3 runtimes are sufficiently performant. If you do end up needing external dependencies, they're only a package.json away. I write all my scripts in JS files these days.

It's called motion interpolation, but a lot of TVs call it "motion smoothing". It artificially increases the frame rate. I don't really know how to describe it, but I find it a little disconcerting and I immediately turn that feature off when I buy a new TV. It almost makes the motion look more "real life" in a bad way.

I spent about 9 years in web/frontend development and when all the AI coding things started coming out, I was admittedly concerned and defensive. I thought the output was gross, it couldn't help me with what I was working on, etc. I recently switched over to the backend, so now I'm dealing with an entirely different set of technologies, architecture, and problems to solve. I've found that, so far, about 80% of my time is spent planning, discussing requirements, determining how to integrate new features into the system or how fixing a bug may affect something else, etc. I use AI for the coding part because the code is sort of an afterthought. I've fully leaned into it and the experience has been fantastic. I ask Claude Code questions and bounce ideas off it. I ask it to write some code for me and I review it and make minor adjustments. The TLDR is I'm not really worried about it taking my job anymore, but I recognize that _not_ using it is going to become very obvious in the near future (it already is). This article pretty much nailed it. Engineering isn't just about pumping out lines of code, the code is just the output of your skills which provide the most value. Once I started looking at things that way, my stress level dropped considerably.

As someone who has spent a lot of time trying to gain a11y expertise and learn best practices, this messaging drives me a little bonkers. There is so much inaccessible content on the web. The official ARIA guide tells you "you're better off doing nothing". All of the example patterns in the ARIA Practices Guide (APG) tell you the code isn't for production use [1]. They provide an explanation which points back to..."you're better off doing nothing".

When I need to add a toolbar to my app, and I want it to be accessible. I look at the APG, the APG has a toolbar example with markup, CSS, and JS, but apparently I'm not supposed to use it. I've been at this for years and it's incredibly frustrating. I usually use the APG code in production anyways. It's probably not catastrophically wrong, but it always makes me feel like I'm screwing something up. The alternative is to use a bunch of divs, spans, and buttons because not all of the patterns have semantic HTML equivalents.

[1] https://www.w3.org/WAI/ARIA/apg/patterns/grid/examples/layou...