HNHacker News
TopNewBestAskShowJobs

autarch

3,875 karma · joined March 26, 2009

I'm Dave Rolsky. Also see https://blog.urth.org and https://github.com/autarch.
submissionscomments
autarch··on DuckDuckGo donates $25k to the Perl and Raku Foundation
Just to clarify, Dan Wright is the former treasurer. He retired from the TPRF board back in 2020 (https://news.perlfoundation.org/post/board_update_tpf_treasu...).

But to answer the bigger question, yes, I think this was a bit weird. I was also on the board for a while, and I think we did not do a good job of reporting on and monitoring financials. This was one of my frustrations with the organization, and part of the reason I stepped down from the board (though there were other, bigger, reasons not related to the board as well).

In fact, I had made the same points as Makoto does in his blog post maybe 1-2 years earlier in a board meeting. We were running a constant deficit and we didn't seem to have a clear plan for what we would do if that continued.

autarch··on DuckDuckGo donates $25k to the Perl and Raku Foundation
Here's some details about the foundation's financials - https://blogs.perl.org/users/makoto_nozaki/2024/10/understan...
autarch··on Borgo Programming Language
> What else?

Any and all linters for Go, to start. In theory, you could run them on the transpiled source, but the results would be very hard to apply to the original Borgo code. And they'd probably produce lots of false positives for things that the Borgo compile ensures are safe, even if they're not linting-correct.

And syntax highlighting, refactoring tools, an LSP server. I'm sure there are more things along these lines I'm failing to think of.

autarch··on Weird Lexical Syntax
I understand that's constructing an array. What's a bit odd is that the interpreter allows you to string interpolate any expression when constructing the array reference inside the string.
autarch··on Weird Lexical Syntax
Perl lets you do this too:

    my $foo = 5;
    my $bar = 'x';
    my $quux = "I have $foo $bar\'s: @{[$bar x $foo]}";
    print "$quux\n";
This prints out:

    I have 5 x's: xxxxx
The "@{[...]}" syntax is abusing Perl's ability to interpolate an _array_ as well as a scalar. The inner "[...]" creates an array reference and the outer "@{...}" dereferences it.

For reasons I don't remember, the Perl interpreter allows arbitrary code in the inner "[...]" expression that creates the array reference.

autarch··on Australia/Lord_Howe is the weirdest timezone
I wrote this code in the early 2000s, so I don't remember the exact thought process. But I think my thinking was something along the lines of "this is a thing that exists, therefore I should model it 100% accurately". But I think the right way to think about it is "this is a thing that exists but most developers would be better off never thinking about, therefore I should omit it entirely".

Of course, the _real_ correct solution is to split up a date/time library into a number of closely related classes/structs, and allow users to pick the one that meets their needs. So most folks would pick the leap second-free class, but a few would use the one with leap seconds baked in.

autarch··on Australia/Lord_Howe is the weirdest timezone
> It’s not like programming languages support representing 61-second minutes anyway

This is not true. Someone already noted that Raku supports leap seconds. I think this may be partly my fault, because Perl 5's most popular datetime library, `DateTime.pm`, supports leap seconds.

It's my fault because I created `DateTime.pm` and implemented its leap seconds support. In retrospect, this was almost certainly a mistake. Almost no one cares about leap seconds. It just produces all sorts of weird confusion. Like why does adding 60 seconds produce a different result than adding 1 minute, but only rarely?

And it makes the code _way_ more complicated, especially since I wanted to validate whether setting second to 60 was valid.

This seems simple. Why not just look up the leap second table and check? Well, the `DateTime` constructor takes time components (including `second => 60`) and _any_ time zone. So we have to convert the date/time passed to the constructor to UTC in order to do that lookup. But doing that conversion ... ended up involving values that include leap seconds because of historical reasons.

It's a huge mess for very little gain.

As to Raku, I think it's stdlib datetime library borrowed from Perl 5's `DateTime.pm` quite heavily so it inherits some of the same bad design decisions.

autarch··on Australia/Lord_Howe is the weirdest timezone
Time zones _without_ DST would be relatively easy to deal with. The answer is not "abolish time zones", it's just "abolish DST".
autarch··on Bug, $50k how Zendesk left a backdoor in Fortune 500 companies
I'm pretty sure you can configure your corporate Slack to only allow authentication providers you choose. So if you have a corporate SSO you can just allow that.
autarch··on I Stayed
I would phrase it as "I'm not sure whether making it easier for everyone to spread their ideas is a good thing." But that's _still_ not a call for censorship.
autarch··on I Stayed
> These casual calls for censorship are really dangerous

Where in my comment did I call for censorship?

All I said was that it's not clear whether FOSS blog software makes the world a better place. I don't understand how you get from there to censorship.

autarch··on I Stayed
> if it makes the world a better place or not.

This seems like a pretty big "if". Arguably, Automattic is better than most for-profit companies since they develop a FOSS product, and I think you can make an argument that any sort of FOSS makes the world better.

OTOH, it's not clear to me that making it easier and cheaper to blog or host websites makes the world better. I'm sure there's lots of people using WordPress and similar products for horrible things, like tobacco companies, arms manufacturers, animal ag companies, etc. And that's not to mention the no doubt plenty of personal users who are blogging about conspiracy theories, white supremacy, or Hindu nationalism.

I think the best case for most software is that it's net _neutral_. I work at a database company. Our products are used by many, many different companies, non-profits, and governments. I think some of our customers are horrible, some are great, and most are neither. But that would be the case for me at nearly every software company I might work at.

autarch··on A Real Life Off-by-One Error
> Maybe when the record is unbeaten for more than a couple of years they should throw it all away and start with a brand new route?

There's been some discussion of having new speed routes every few years. I think this would make the event a thousand times more interesting. That said, I'm still not sure I'd be interested.

autarch··on An unordered list of things I miss in Go
We have started doing this at work as well. It makes the code a lot easier to understand, and I think it's worth the small hassle that this entails (because without a `match` statement, dealing with an Option type is verbose).
autarch··on Tritone Substitutions
I don't think this is correct. I think colanderman's answer is the right one, which is that when we're descending, we generally spell out the pitches with flats. If this were ascending, then we could have I-#I-II. But as I noted, in jazz this particular descending pattern is fairly common.
autarch··on Tritone Substitutions
I came here to pick this nit but you beat me to it. I think calling it Db7 is the best way to think of it, especially since in jazz it's often part of a descending sequence of II-V-I, where the tritone substitution turns it into II-bII-I. So in C major (where G is the dominant), it has to be Db.
autarch··on Reformatting 100k Files at Google in 2011
It's easier to read and refactor code when it's all formatted the same way. Otherwise diffs end up with tons of extraneous noise. Plus it adds needless decisions. If I move a function in a file with Person A's style to a file with Person B's style, do I reformat it?

What about when someone leaves the company? Is it free game to reformat everything they wrote?

Why do you need to put your mark on code at work? It's not _your_ code. It belongs to the employer. The best work is work that is useful and not an irritant long after you're gone.

autarch··on Reformatting 100k Files at Google in 2011
That's fine for your solo projects. It's definitely not okay at work.
autarch··on Reformatting 100k Files at Google in 2011
Yeah, there's still a few options. But try running `perltidy --help`. Even that doesn't really give you a sense of how many options there are because many of the options are not booleans, but instead take several enum values indicating which style to choose.
autarch··on Reformatting 100k Files at Google in 2011
Yes, that's why I love gofmt. There's nothing to debate!
autarch··on Reformatting 100k Files at Google in 2011
The Perl world had perltidy (first release in 2002) many years before Go was even a thing. It's funny that Perl, a language notorious for it's "There's More Than One Way To Do It" (TMTOWTDI) philosophy had a tidier so early. Of course, perltidy is _ridiculously_ configurable.

One thing I really love about gofmt is that it has no configuration at all. I think that was a major "innovation" and I'd love to see more languages adopt this approach.

autarch··on Selling 'Ghost in the Shell'
I highly recommend "Keep Your Hands Off Eizouken!" It's an anime that's a love letter to anime about making anime where the anime-making becomes part of the anime. It's quite a trip, and it's got great energy and love for the medium.
autarch··on Science fiction and the death of the sun
> Also of the unreliable narrator, as the protagonist is writing his autobiography, is not well educated and suffers from rather interesting neurological divergence (he forgets nothing).

And also he's a pretty terrible person trying to make himself (unsuccessfully) sound a bit less terrible.

autarch··on 7.4 earthquake in Taiwan, 34km depth
I'm in Kaohsiung (southwest Taiwan) and this woke me up around 8am. I'm on the 15th floor and definitely felt the building shaking. It was more excitement than I wanted that early in the morning.
autarch··on Ask HN: Does procrastination advice help you?
Hillary Rettig wrote a book called _The Lifelong Activist_ that addresses procrastination (among other issues). She claims that procrastination comes from perfectionism and that giving up on getting things perfect will end your procrastination.

I'm not sure this is 100% true for all people but I found it to be a helpful way to think about things. The book is worth reading overall, and I think a lot of the advice in it would apply to anyone who wants to be able to spend a large portion of their life on focused work, whether that's activism, running a company, parenting, etc.

autarch··on Python datetime pitfalls, and what libraries are (not) doing about it
You can't, but if you store a datetime with an IANA time zone, then when the IANA time zone database is updated because of a DST change, your stored datetime is still correct.
autarch··on Python datetime pitfalls, and what libraries are (not) doing about it
> This is the only sane policy. Timezone conversion must be delayed to the very last moment before displaying time to users.

No, this only works for datetimes in the _past_. For future datetimes you often must store the datetime in the user's (IANA) timezone. Otherwise your application could be off. And your app could be off by more than one hour. In 2011 Samoa moved across the international date line. See https://www.theguardian.com/world/2011/dec/30/samoa-loses-da....

autarch··on Python datetime pitfalls, and what libraries are (not) doing about it
> However, ±1 hour is not much of an error when talking about a time delay of at least a year.

It is if this a doctor's appointment or a meeting with a friend or ... you get my point.

autarch··on John Locke's recipe for Pancakes (2021)
How close or far is half a nutmeg from hallucination and death territory? Seems like an awful lot of nutmeg!

Edit: So I looked into this. A single nutmeg is 5-10 grams. That means the pancakes will have 2.5-5g between all of them. According to a reddit post (https://www.reddit.com/r/nutmeg/comments/nd5d9q/nutmeg_effec...), it seems like 5g of nutmeg could be enough for a trip, but it won't come even close to killing you.

So if you make this recipe and eat _all_ the pancakes yourself, you might go on a trip.

autarch··on Companies embracing SMS for account logins should be blamed for SIM-swap attacks
The Symantec app is just a regular TOTP app but a bit more annoying. You can usually replace it. See https://locima.com/2019/06/01/replacing-symantec-vip-with-a-... for one method.

I did this to get my Etrade account TOTP from Symantec into Authy.

← PreviousPage 3 of 27Next →