HN user

jreese

4,836 karma

http://n7.gg amy @ n7.gg @n7cmdr

[ my public key: https://keybase.io/jreese; my proof: https://keybase.io/jreese/sigs/oMm1rGpBWQUZlYjQeGCSD25PvSnx2g6ZuaQ89HzjO2Q ]

Posts1
Comments96
View on HN

And yet it can also be haphazard and misguided too. My experience has mostly been that the general comp level is high enough across the board, but discretionary/additional equity is almost exclusively thrown at high visibility/pet projects of the moment rather than the most important/impactful work that supports all of those fancy projects. Ie, working on infra has some of largest/widest impact in the company, but rarely merits AE/DE because everything is too incremental, difficult to explain the benefits to non-technical partners, or otherwise invisible to leadership at the levels necessary to grant equity. Losing a core, senior engineer from the database or network team can have a much larger technical impact than a random frontend engineer, and yet the bulk of AE/DE goes to flashy frontend product launches.

I'm sure they would love one, but it's probably not that easy/cheap to find one that can handle that much torque with such heavy loads. The biggest/heaviest trucks just end up using electric/traction motors running from diesel generators, so they don't need a transmission at all.

Trucks don't have 18 gears for efficiency. They have 18 gears because low-revving diesel engines have small power bands; mix that with heavy loads, and it pretty much necessitates having a lot of short, closely-spaced gear ratios, so that maximum torque can be achieved consistently, no matter what speed you're at.

Also, FWIW, they don't just pick between 18 gears with a single shifter. They have multiple inputs that allow shifting between multiple combinations of gears, some requiring clutch to change and some not, as they gain speed. Most trucks still only have 6-ish positions for the main gear shifter to slot in to.

I literally let my server sit without upgrades for almost three years before realizing my autoupdater script had been failing me. The biggest issue was needing to manually download a statically linked version of pacman (found on the arch forums) to support the new mirror/signing features. Once the system pacman was upgraded, I just ran `pacman -Syu`, let it spin for a while, and rebooted, and it just worked. ¯\_(ツ)_/¯

How do folks actually watch Formula E races, without a cable subscription? The Formula E Youtube channel only ever posts "highlights" through the season, and then waits to the end of the season to post full races to their channel.

I'm a happy F1TV subscriber, and really enjoyed watching some FE races here and there in the past, but it feels like they're going out of their way to make it difficult or pointless to actively watch full races during the season. Is there an "FETV" type of deal similar to F1TV, or do I just have to give up hope of seeing them before the end of the season?

Having your money "work for you" requires discipline, awareness, and trust in economic stewards far beyond what the average lottery player is capable of managing. The annuities still offer life-changing sums of wealth, but also guaranteed to give you 30 years to learn how to handle that much rather than accidentally spending it all in 3 years.

On the flip-side, it's worth keeping in mind where the puck is heading. Every "new" macOS app from Apple (eg, Shortcuts, System Settings, and even recent refreshes of old apps) has been written in either SwiftUI or Catalyst. A bunch of these still link to AppKit here and there, but it seems pretty clear that no new developement is breaking ground with AppKit.

Similar to the Carbon/Cocoa split, I'm sure we'll see AppKit supported well into the future, especially since we just passed the latest major architecture transition. But that doesn't mean AppKit isn't a dead end.

Even better, OBS now supports directly logging into Twitch, which then also gives you windows to set stream description and see user chat, all within OBS.

I'd buy a iPhone with a slide-out keyboard—a la the HTC Dream/G1 [1]—in a heartbeat. I'm happy with the onscreen keyboard for simple things like a quick search or message, but I also really want the option for a proper, physical keyboard any time I need to dig in and write something in depth. Bonus points for slider style devices like the G1 because you still got the "full size" screen, without having to sacrifice on keyboard size either; it really was the best of both worlds, and it's still my favorite device form factor I've ever used.

1: https://en.wikipedia.org/wiki/HTC_Dream

I've been doing it for over six years now, so why not? Joined ten years ago yesterday and made it to IC5, and haven't had any desire for a promo since then, so I just work on we/hatever I think is the best thing I can spend my time on for the team, and it's been sufficient for "meets all" or better every half except one. Just pick the right team with the right manager who actually cares about you and what is actually both for you and your coworkers.

I would rather get paid less (still in top 99+% of US mind you) to do work that is meaningful to me, my coworkers, and the wider open source community-and then clock out at six pm to spend time with my partner and play games-than earn more and spend all of my time in meetings and design discussions and worrying about whether I'm having enough cross functional impact to meet performance expectations or whatever the new director's pet project of the month is.

One of the best parts of being happy at a "terminal level" in FAANG is that I can easily pick what I work on for best impact on the teams around me (and the engineering org as a whole) without worrying about chasing a promotion. I know the levers I can pull to get a higher perf rating here and there, but I'm also free to focus on the "papercuts" knowing that I'm not sacrificing future promotions, because I just don't care about adding more responsibilities to my plate. I can do "the right thing" for my coworkers, and all I have to do is make a case for improving developer sentiment or efficiency to justify the work.

This is only true for string literals. Strings constructed at runtime may (and often will) end up as separate objects:

    >>> a = "this is a long sentence in a string literal"
    >>> b = "this is a long" + " sentence in a " + "string literal"
    >>> a is b
    False
    >>> id(a)
    4386376272
    >>> id(b)
    4387721264
    >>> a == b
    True

FWIW, that version ends up being slower, because you're constructing and iterating over a tuple for every iteration, which incurs a similar cost to running `.strip()` twice. The sub-generator example I gave is better because you're only constructing the generator expression once, and requires less overhead for each iteration.

I actually just used it to what I would say was a perfect example of where it legitimately improved code readability while maintaining pythonic constructs:

    values = [
        value
        for line in buffer.readlines()
        if (value := line.strip())
    ]
Previously, I would have needed to either duplicate effort like:
    values = [
        line.strip()
        for line in buffer.readlines()
        if line.strip()
    ]
Or used a sub-generator:
    values = [
        value
        for value in (
            line.strip() for line buffer.readlines()
        )
        if value
    ]
Or rewritten it altogether using a (slower) for loop calling append each time:
    values = []
    for line in buffer.readlines():
        line = line.strip()
        if line:
            values.append(line)
The assignment expression is perfect for this sort of use case, and is a clear win over the alternatives IMO.

Edit: fixed initial example

AFAIK, this is the first time that CPython could be directly compiled for WASM (with no patches IIRC), and PyScript adds a number of components for better integrating Python with the DOM, importing extra modules at runtime, as well as a dedicated py-script HTML tag.

But I've personally never used either, so maybe I'm missing something too?

The author mentions my talk in the list of ones to watch ("Open Source on Easy Mode"), but the actual presentation did not go well due to technical difficulties. I made the brave mistake of bringing only my iPad to present with, and apparently it was refusing to output 1080p, which resulted in squashed output of my slides in their A/V system. And delays while trying to fix it meant I had to give my talk on a compressed timescale. I had to talk even faster than expected, and still needed to elide some bits at the end. Lessons learned, I guess!

I'm planning to re-record the talk on my own at some point soon, but until then, all of my slides and examples, and the full script for the talk, are available on my github repo. Hopefully there's something useful there for everyone:

https://github.com/jreese/pycon