Smudge's comments

Smudge | 3 months ago

only once pushed or merged to a shared branch.

Smudge | 3 years ago

I'm no fan of the system we have, and I agree that it's dysfunctional at best, but my view is that the only thing worse than a two-party system is a single-party system. All of the problems we have with the power structure of the current US system would only be amplified if one party gains full, long-term control of the federal government.

Assuming that there continues to be a system in which I can personally operate, I'm hoping to focus my efforts around promoting positive electoral reform ideas in whatever increments can be gained. Things like ranked-choice voting, campaign finance reform, fair representation laws to counter gerrymandering, etc. My dream would be to see the (de-facto) two-party system turn into a (functioning) multi-party system within my lifetime, with a greater number of smaller parties, better-representing those who voted for them, and who must form coalitions with other parties rather than enacting change unilaterally in winner-take-all scenarios.

Of course, for any of that to work, we need a media environment that isn't constantly amplifying the extremes, and a general populace that is more resilient to extreme forms of propaganda, radicalization, and manipulation.

Smudge | 3 years ago

The ever-widening political divide, which I have observed both in the abstract and in family/friend relationships, is something that I could easily see spelling the end of US democracy. I'm dead serious, and this (well-reasoned) post does nothing to ease my concerns.

I have been particularly anxious about one bit also mentioned in this post -- the upcoming Moore v. Harper ruling that the Supreme Court has added to their docket. It seems that the court's intent is to legitimize the "independent state legislature" theory, which would give state legislatures unchecked power to control the process (and, in turn, the outcomes) of their states' federal elections.

And by unchecked I mean exactly that. It relies on some ambiguous wording in the federal constitution (and interprets it to imply the word "only" where that word is not actually present) to bar state courts from having a say over any of the state legislature's election laws, and it would bar the state's governors from vetoing any such laws. In effect, if a state legislature decides to overrule their state's federal election outcome and appoint their own electors, etc, it would be perfectly legal and entirely un-challengeable for them to do so.

This, in effect, means that US democracy, at least in federal elections (this fringe legal theory does not apply to state laws dictating state elections), will have failed. It doesn't matter who you support - without free and fair elections, there is no democracy. (And of course, the winning side will just say "but there was fraud," and when that fails to be proven they can fall back on, "but actually we're a republic, not a democracy," and rely on their highly-polarized-and-then-gerrymandered states to continue backing them, because hey, we'd rather have single party rule than by ruled by the other side, right?)

I hope I'm wrong, but I suspect that 2020 was the last time that we'll have even a semblance of a free and fair presidential election, at least for a generation or two. From here out, I expect to see the winning party continue to dismantle the engine of whatever remaining democratic processes stand in the way of being able to reap the rewards of controlling all three branches of federal government. Though I suspect they'd rather burn most of it down and keep only the parts that allow them to tighten their hold on power at the state level.

I wish I could see a way out of this crisis. But all I see is the smokescreen of a culture war that distracts everyone from what's really at stake.

Smudge | 5 years ago

You missed the part about regulating.

The point isn't to create a drug free-for-all, it's to reduce the economic incentives that lead to drug cartels.

Smudge | 5 years ago

I made a CLI for controlling macOS's "Night Shift" feature programmatically. It also doubles as a Rust library.

https://github.com/smudge/nightlight

Now I'm working on cross-system compatibility with equivalent features on Windows and Linux.

Smudge | 5 years ago

Having a "brutalist" aesthetic is called out in its README as part of the design philosophy.

Brutalist is a bit of an acquired taste. There are at least a couple different schools of brutalism (this one seems to line up with more of a 90s web aesthetic), but I like to think of it as a kind of intentional ugliness that allows designers to emphasize practicality. You're there to participate in the content, not the pretty boxes around the content. (I dunno if I'm explaining it well or not.)

Smudge | 5 years ago

Well said, and I'm sorry you had to deal with such a heartless reply.

Smudge | 7 years ago

Doesn't really answer your questions, but I'd point out that it's possible that we only hear about these suicides precisely _because_ they are from professions that tend to produce high-profile celebrities. I'd counter your apparent correlation with the fact that apparently suicide among doctors is extremely high:

https://www.washingtonpost.com/national/health-science/what-...

Smudge | 8 years ago

When modeling was done for the Kuwait oil fires, there were two opposing expectations. One was that the fires would cause a kind of "year without a summer" similar to the Tambora eruption in 1815. The other was that the smoke would affect local weather conditions and be rained out within a week. In retrospect, we know that the latter proved most accurate.

But from what I understand, the crucial difference between the two models was how high the smoke would go, and as such the gap between the two models is actually a lot closer than the outcomes would imply. Had the conditions (weather, geography, etc) been ripe for more "self-lofting" of particulates, far more of them may have made it as far as the stratosphere, at which point they would stay in the atmosphere for far longer and would spread much further, without any weather patterns at that altitude to accelerate their return to the surface.

Smudge | 8 years ago

Worth noting that Teller was one of the inspirations for Dr. Strangelove.

Smudge | 8 years ago

Most forest fires don't create strong enough firestorms (if they do at all) to funnel material high enough to have an effect -- most of the ash falls back down in a matter of weeks (even sooner if it gets rained out of the atmosphere). I'd compare nuclear blast firestorms with volcanic eruptions -- we do have a record of eruptions funneling material high enough into the troposphere and stratosphere to have a noticeable, longer-term effect on the climate (over the subsequent months and years).

Smudge | 8 years ago

Most tests have been performed underground. And for an above-ground test to cause anything close to a nuclear winter, you need a lot more material than the bomb itself and the soil beneath it. Tons and tons of debris would need to be shot up into the atmosphere.

So, the theory of nuclear winter depends on bombs detonating over cities and forests, causing massive amounts of debris, and also inducing firestorms that would act as chimneys for even more smoke and particles to be funneled up into the troposphere and stratosphere.

Smudge | 8 years ago

Email is just one example, but maybe a better example is talking to an API that supports some form of idempotency. You don't want to talk to the API during a transaction that involves other related data persistence, but you can transactionally store the intent to talk to that API (i.e. you insert a job into a queue, and that job will eventually do the API interaction). But even in the email case, you can benefit from a transaction:

1) Open a transaction

2) Persist some business/app data

3) Persist a job into your queue that will send an email relating to #2

4) Close transaction

So you've at least transactionally stored the data changes and the intent to send an email. When actually sending the email you probably want something that guarantees at-most-once delivery with some form of cleanup in the failure states (it's a bit more work, as you said).

Smudge | 8 years ago

Nice -- pg-amqp-bridge seems like a clever solution for coordinating the two. It still puts some amount of the queuing load on the DB, but I'd be comfortable with that trade-off if I really wanted to use rabbitmq as the primary queue.

Question though -- Does it guarantee at-least-once or at-most-once on the NOTIFY? (Like, if there is a network blip, will it retry the NOTIFY?) And if it is at-least-once, I assume that consumer apps will have to handle deduplication/idempotency.

Smudge | 8 years ago

Very common in the web context -- you perform some form of relational persistence while also inserting a job to schedule background work (like sending an email). Having those both in the same transaction gets rid of a lot of tricky failure cases.

Smudge | 8 years ago

Firstly, time spent learning is not time wasted!

Secondly, the best way to avoid making painful design decisions is... to make them enough times that you instinctively remember them. There aren't many shortcuts to developing that instinct, so take this opportunity to try and generalize your learnings -- what do you recognize now that you didn't see when you started the project? A healthy amount of retrospection will make you a better engineer, and you'll also get better at identifying uncertainties and risks before you start coding.

Lastly, up-front planning and design documents can only get you so far. They're important, sure, but at some point you'll be down in the nitty gritty details, and you'll need to make unanticipated course corrections. As you gain experience you'll start being able to fill in more of those gaps on your own, but until then, you'll want to loop in other engineers more frequently.

One of the qualities of a senior engineer is that they act as a force multiplier for their team. So as a relatively junior engineer, don't be afraid to make use of your senior engineers! They should be there to support you and make you better, beyond just helping you plan out a project. If possible, pair on some of the trickier parts with them, so that you can see how they'd approach the problem and start picking up on things that might not seem so obvious to you right now.

Hope that helps!

Smudge | 9 years ago

There is a much bigger barrier to entry when it comes to monetizing via product placement and sponsorships. For smaller entities, developing dedicated advertising partnerships is just not on the table.

So if the the ad networks themselves truly are the problem (and as a result adblocking is ever on the rise), it sounds like there is an opportunity for a better, more "organic" solution accessible to the long tail of smaller sites looking for monetization options. Sounds like a tricky nut to crack, as I'm sure anyone who works in the industry would tell me.

Smudge | 9 years ago

The book How Not to Be Wrong: The Power of Mathematical Thinking[1] by Jordan Ellenberg has a segment on this with similar examples (minus the programming bits), tying it in to human psychology and, with surprising insight, the behavior of slime molds. Would definitely recommend reading if you find these kinds of topics interesting.

[1]: http://amzn.to/2kHiROT

Smudge | 9 years ago

Hospital-acquired infections have become incredibly common. My grandmother caught a C diff infection after what had already been a very arduous treatment and recovery, and she received basically no support from the hospital that had effectively given her the infection.

Smudge | 9 years ago

Curious about the first one -- was there some kind of conflict of interest? As far as I can tell all you were doing was taking public information already available on the page and disclosing it with a much more visible banner. Was your employer heavily involved in Native Advertising campaigns or something?
page 1