HNHacker News
TopNewBestAskShowJobs

tjalfi

3,487 karma · joined May 5, 2016

Technologist at a law firm; I don't speak for them.

Topics of Interest:

  Compilers
  Programming Languages
  Functional Programming
  Optimal Lambda Reduction
submissionscomments
tjalfi··on Filed: WP Engine Inc. v Automattic Inc. and Matthew Charles Mullenweg [pdf]
I know more than I'd like to about this topic; I spent most of a decade supporting legal document management systems.

Large law firms use document management systems[0] to store their documents. It's a really primitive VCS that integrates with Microsoft Office. The user who checks out a document usually has exclusive access to it until it's checked back in. Other people can check out a copy of the same document, but it won't usually contain any changes the other person made. There's additional work required and many users don't know how to do this. It's common for changes to be lost or a partner to have the help desk unlock documents. I'm guessing that's what happened in this case.

[0] https://en.wikipedia.org/wiki/Document_management_system

tjalfi··on Bots, so many bots
Micropayments failed because users hate them[0]. They would rather pay more for flat rate plans. Here's an excerpt from The Case Against Micropayments [1]. It's an old paper, but human behavior hasn't changed.

Behavioral economics, the study of what had for a long time been dismissed as the economicly irrational behavior of people, is finally becoming respectable within economics. In marketing, it has long been used in implicit ways. One of the most relevant findings for micropayments is that consumers are willing to pay more for flat-rate plans than for metered ones. This appears to have been discovered first about a century ago, in pricing of local telephone calls [13], but was then forgotten. It was rediscovered in the 1970s in some large scale experiments done by the Bell System [3]. There is now far more evidence of this, see references in [13], [14]. As one example of this phenomenon, in the fall of 1996, AOL was forced to switch to flat rate pricing for Internet access.

The reasons are described in [19]:

What was the biggest complaint of AOL users? Not the widely mocked and irritating blue bar that appeared when members downloaded information. Not the frequent unsolicited junk e-mail. Not dropped connections. Their overwhelming gripe: the ticking clock. Users didn’t want to pay by the hour anymore. ... Case had heard from one AOL member who insisted that she was being cheated by AOL’s hourly rate pricing. When he checked her average monthly usage, he found that she would be paying AOL more under the flat-rate price of $19.95. When Case informed the user of that fact, her reaction was immediate. ‘I don’t care,’ she told an incredulous Case. ’I am being cheated by you.’

The lesson of behavioral economics is thus that small payments are to be avoided, since consumers are likely to pay more for flat-rate plans. This again argues against micropayments.

[0] https://web.archive.org/web/20180222082156/http://www.openp2...

[1] https://www-users.cse.umn.edu/~odlyzko/doc/case.against.micr...

tjalfi··on Ask HN: What are some essays that profoundly changed the way you think
You and Your Research by Richard Hamming

https://www.cs.virginia.edu/~robins/YouAndYourResearch.html

tjalfi··on One in five genetics papers contains errors thanks to Excel (2016)
OS/2's Presentation Manager had 0,0 at the bottom-left corner of the monitor.
tjalfi··on Intel Itanium IA-64 Support Removed with the Linux 6.7 Kernel
The blog entry Revisiting the Intel 432[0] and the cited paper Performance Effects of Architectural Complexity in the Intel 432[1] discuss the compiler issues.

[0] https://bcantrill.dtrace.org/2008/07/18/revisiting-the-intel...

[1] https://dl.acm.org/doi/pdf/10.1145/45059.214411

tjalfi··on Mathematician warns US spies may be weakening next-gen encryption
SHA was withdrawn after publication and replaced with a stronger version[0].

[0] https://en.wikipedia.org/wiki/SHA-1#Development

tjalfi··on What’s New in C in 2023?
I've seen accidental trigraphs such as ??! come up a few times in pre-ANSI codebases. Trigraphs are still used in EBCDIC codebases[0], but I wouldn't expect to see them anywhere else or in public code.

[0] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n29...

tjalfi··on Azure dropping database support for MariaDB. Users advised to migrate to MySQL
Were they using IMS[0] or MUMPS[1]?

[0] https://en.wikipedia.org/wiki/IBM_Information_Management_Sys...

[1] https://en.wikipedia.org/wiki/MUMPS

tjalfi··on Things Every Hacker Once Knew (2017)
PRIMOS[0] serves as a counterexample; it used ASCII with the top bit set.

[0] https://en.wikipedia.org/wiki/PRIMOS#Data_access

tjalfi··on Platform that enables Windows driver development in Rust
You can use UI4ETW[0] to capture an event trace when the mouse freezes. You may need to install the Windows SDK or Visual Studio to interpret the results, though.

[0] https://github.com/google/UIforETW

tjalfi··on Always Bump Downwards (2019)
Here's an article[0] with some information on Hotspot's bump allocators.

[0] https://shipilev.net/jvm/anatomy-quarks/4-tlab-allocation/

tjalfi··on NASA finally admits what everyone already knows: SLS is unaffordable
There's substantial bipartisan support for SLS and it has suppliers in all 50 states[0].

[0] https://www.planetary.org/articles/why-we-have-the-sls

tjalfi··on Print(“lol”) doubled the speed of my Go function
clang compiles all three of these functions to use max instructions (https://godbolt.org/z/9z7hGfdhq).

    #include <algorithm>
    
    using std::max;
    
    int max_array_func(int values[], size_t values_count)
    {
        int max_value = values[0];
        for (size_t j = 0; j < values_count; j++)
        {
            max_value = max(max_value, values[j]);
        }
        return max_value;
    }
    
    int max_array_bittwiddling(int values[], size_t values_count)
    {
        int max_value = values[0];
        for (size_t j = 0; j < values_count; j++)
        {
            int x = max_value;
            int y = values[j];
            // http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax
            max_value = x ^ ((x ^ y) & -(x < y));
        }
        return max_value;
    }
    
    int max_array_branch(int values[], size_t values_count)
    {
        int max_value = values[0];
        for (size_t j = 0; j < values_count; j++)
        {
            if (max_value > values[j])
            {
                max_value = values[j];
            }
        }
        return max_value;
    }
tjalfi··on I come here not to bury Delphi, but to praise it (2019)
F# requires code to be in dependency order. You can't refer to types unless the compiler has seen them.
tjalfi··on Ask HN: Any interesting books you have read lately?
Contemporary:

° Yellowface by R.F. Kuang

° Big Swiss by Jen Beagin

Thriller:

° Barbed Wire Heart by Tess Sharpe

tjalfi··on Ask HN: Any interesting books you have read lately?
Barbed Wire Heart by Tess Sharpe is an excellent thriller.
tjalfi··on Bye, Gemini
Some of the Gemini goals such as ease of implementation, no user tracking or extensions, and a short specification (16 pages) are much easier with a new protocol.
tjalfi··on RISC-V Origins and Architecture, Part 1
Sparc has register windows[0] and branch delay slots[1]. The former was made obsolete by graph-coloring register allocation[2] and the latter by smarter branch predictors. It's certainly possible to design aggressive Sparc implementations, but newer designs such as RISC-V have a lot less legacy baggage.

[0] https://yarchive.net/comp/register_windows.html

[1] https://en.wikipedia.org/wiki/Delay_slot

[2] https://en.wikipedia.org/wiki/Register_allocation#Graph-colo...

tjalfi··on nic.funet.fi: Serving freely distributable files with FTP since 1990
Alloy is available at https://www.funet.fi/pub/languages/alloy/
tjalfi··on Oregon decriminalized hard drugs – early results aren’t encouraging
I'm not sure about assault, but Proposition 47[0] in 2014 substantially reduced the penalties for shoplifting, grand theft, forgery, fraud, and other crimes. Stealing under $950 is a misdemeanor regardless of how often someone does it.

[0] https://en.wikipedia.org/wiki/2014_California_Proposition_47

tjalfi··on JPEG XL: How it started, how it’s going
They gave up on it too. Internet Explorer was the last browser to support JPEG XR.
tjalfi··on What's wrong with enterprise Linux
I've also heard of teams that shut down the mainframe for an hour during a time change. It's an easy way to avoid application issues for a small amount of downtime.
tjalfi··on Windows 11 Insider Preview Build 25905 brings a bit of Rust in the kernel
The Spark Ada safety critical subset is memory safe, but Ada isn't. It's possible to write a kernel in Spark, but hard to believe that you'd get buy-in from other kernel developers. Ada doesn't eliminate use after free, race conditions, or dereferencing null pointers[0]. Rust addresses these, so it's hard to see Ada as an improvement.

[0] https://www.reddit.com/r/ada/comments/mme3jk/is_ada_memory_s...

tjalfi··on Ask HN: I am interested in reading about techniques HFT firms use
Vanguard's Chief Investment Officer said that HFTs are beneficial for them[0].

[0] https://www.sec.gov/comments/s7-02-10/s70210-122.pdf

tjalfi··on Twitter is threatening to sue Meta over Threads [pdf]
> Is it the same law firm that went with the 'offering to buy twitter and signing a purchase agreement was just a prank bro' defence?

Yes. He was represented by Quinn Emanuel Urquhart & Sullivan and Skadden, Arps, Slate, Meagher & Flom LLP for the Twitter lawsuit[0]. The threat was written by a Quinn Emanuel partner.

> If you find yourself standing up in court making the prank bro argument, then I hope the amount of money you got was a fair price for your dignity.

I'm not sure whether he has equity, but the average profits per equity partner at Quinn Emanuel are $5.22 million[1].

[0] https://arstechnica.com/tech-policy/2022/07/twitter-gets-rea...

[1] https://www.law.com/law-firm-profile/?id=1830&name=Quinn-Ema...

tjalfi··on A header-only C implementation of C++ <algorithm>
I really should have tested before commenting. You can't define a macro within a macro, so it doesn't work.
tjalfi··on A header-only C implementation of C++ <algorithm>
Nice work! Have you considering combining ARRAY_ALG_TYPE and ARRAY_ALG_PREFIX into a single function-like macro? ARRAY_ALG_TYPE_PREFIX(int, intv_), for example, can set up all the other macros. I would also recommend adding a ARRAY_ALG_ prefix to the NAME1, NAME2, NS, and T macros so that you don't redefine any previous macros with these names.
tjalfi··on Simula – The forgotten programming language
Most 8 and 16-bit microcomputers at the time had a Lisp.
tjalfi··on Flattening ASTs and other compiler data structures
I checked the repo. Blender detects files with a different endian and byte swaps if necessary.
tjalfi··on Flattening ASTs and other compiler data structures
It isn't a real problem. Blender supports only little-endian targets and the code byte swaps data files as needed. I guess someone could port it to AIX, z/OS, or Linux/zSeries, but that's unlikely at best.
← PreviousPage 2 of 22Next →