HN user

WantonQuantum

1,112 karma
Posts1
Comments394
View on HN
Unions? 10 months ago

It's difficult to even have a conversation about unions due to people having very different perceptions and/or feelings about unionism.

[dead] 10 months ago

If you haven't encountered Gene Ray's "Time Cube" before, you should be aware that it's likely that he had a mental health problem.

This is amazing! I remember playing some of these in the 90s. Fond memories.

BTW, this site is likely not set up to handle a HN hug of death of downloads so consider throttling your downloads if you can.

The attack boils down to sending phishing emails that contain a url that looks like a legitimate booking.com url but is actually this url. Note the unicode characters that can make it seem like a booking.com url:

https://account.booking.xn--comdetailrestric-access-ge5vga.w...

More info here (the video refers to this page describing the attack): https://www.bleepingcomputer.com/news/security/bookingcom-ph...

Edit: HN presents the unicode characters in the domain in a way that makes it clear they're not slashes (well done HN!) so you'll need to look at the url when you hover over it.

That's quite a read! Looks like emacs has done an amazing job of handling text correctly in the face of quite a few challenges. Including cases where there perhaps is no "correct" choice.

Now, I'm certainly not in the "all C code must be rewritten in Rust because security" camp but it does raise the question: With all this complexity how do I know that pasting text from a web page into emacs (or any editor really) isn't going to trigger an undiscovered vulnerability?

Edit: I guess that's rhetorical question because of course the answer is "you don't".

Last year I decided to plan ahead for a career change to become a counselor. I started volunteering with a crisis support help line (lifeline.org.au) and did their training course (quite substantial!). I'm now doing volunteer shifts and getting some experience. In the future I will do some more formal courses while continuing to volunteer and likely cut back my hours working as a dev (over 30 years experience). My ultimate goal, when my financial position allows it, is to work full time or perhaps part time as a counselor whether that is my own business or through some other organisation or a combination.

Main Character 11 months ago

This would be a lot more compelling if it addressed the obvious logical fallacy: It's written by a person who took a risk and it paid off. It might not work out the same way for the reader.

Also, the author provides two other examples of people who took the risk and it paid off, except those people are clearly selected due to how the author knows them - through the work they are all involved in.

This article is basically saying: if you take a look at 3 examples of people who took a risk and it happened to pay off for them then it's logical to conclude that it'll pay off for you too. Which is rubbish. I could find 3 people who won the lottery and then claim that you too can win the lottery if you just take a shot at it.

One reason (and certainly not the only reason) is that our governments are using economic growth, specifically GDP growth as a primary measure of success. That naturally leads to under spending on education, health, police, infrastructure, programs for disadvantaged, etc.

It's also justified the destruction of workers rights, which has led to a huge number of people being paid less in insecure jobs forcing them to work longer hours.

There was a time when ideas like "a rising tide lifts all boats" and trickle-down economics justified focusing economic success but increasing inequality has shown that it's not true.

Edit: And of course technology has enabled a lot of this.

The "lambda lifting" seems to be referring to section 3.11 "Complex Constants" in the linked Ghuloum PDF:

Scheme’s constants are not limited to the immediate objects. Using the quote form, lists, vectors, and strings can be turned into constants as well. The formal semantics of Scheme require that quoted constants always evaluate to the same object. The following example must always evaluate to true:

    (let ((f (lambda () (quote (1 . "H")))))
      (eq? (f) (f)))
So, in general, we cannot transform a quoted constant into an unquoted series of constructions as the following incorrect transformation demonstrates:
    (let ((f (lambda () (cons 1 (string #\H)))))
      (eq? (f) (f)))
One way of implementing complex constants is by lifting their construction to the top of the program. The example program can be transformed to an equivalent program containing no complex constants as follows:
    (let ((tmp0 (cons 1 (string #\H))))
      (let ((f (lambda () tmp0)))
        (eq? (f) (f))))
Performing this transformation before closure conversion makes the introduced temporaries occur as free variables in the enclosing lambdas. This increases the size of many closures, increasing heap consumption and slowing down the compiled programs. Another approach for implementing complex constants is by introducing global memory locations to hold the values of these constants. Every complex constant is assigned a label, denoting its location. All the complex constants are initialized at the start of the program. Our running example would be transformed to:
    (labels ((f0 (code () () (constant-ref t1)))
             (t1 (datum)))
      (constant-init t1 (cons 1 (string #\H)))
      (let ((f (closure f0)))
        (eq? (f) (f))))
The code generator should now be modified to handle the data labels as well as the two internal forms constant-ref and constant-init.