HNHacker News
TopNewBestAskShowJobs

mbo

1,267 karma · joined November 4, 2017

submissionscomments
mbo··on Mozilla Welcomes the Rust Foundation
Have you looked at Pony?(https://www.ponylang.io/)

Here's what Graydon Hoare had to say about it:

"It's very similar to earlier versions of rust. In terms of actor local GC, language provided scheduling of actors, separated function and async invocation system, mixed structural and nominal types, and an overabundance of language supported reference qualifiers. I think they did a good job at it, certainly much better than I did, but I'd be nervous about the cognitive load of the reference qualifiers (capabilities). See this page for example, or the previous few in the tutorial. We had that sort of cognitive load on variables early on and people basically rejected the language because of it, as well as associated compositionality problems. The many years of design iteration had a lot do to with factoring that space into fewer, more essential and general qualifiers. Slow, tedious, world breaking refactoring work. I hope for pony's sake this doesn't happen to them too -- it looks really nice -- but that's my biggest worry for it."

http://www.reddit.com/r/rust/comments/34rszb/pony_type_and_m...

mbo··on Pattern matching accepted for Python
What's the rationale for not introducing a new scope?

The only clause I can find in the PEP is

> A capture pattern always succeeds. It binds the subject value to the name using the scoping rules for name binding established for named expressions in PEP 572. (Summary: the name becomes a local variable in the closest containing function scope unless there's an applicable nonlocal or global statement.)

This seems... incredibly bad.

mbo··on Comic Mono
Simon Peyton Jones (Haskell committee) also formats all his lecture slides in Comic Sans: https://www.reddit.com/r/haskell/comments/1bd1ia/spj_and_com...
mbo··on EU reveals plan to regulate Big Tech
Elon is South African, not Australian
mbo··on Google plans to shut down Google Voice integration with classic Hangouts
> Somehow I doubt the new Chat will work the way it used to, but I hope so.

This is how the new Chat works. New messages get interleaved in between emails.

mbo··on Jira on premises end of life starts feb 2021
The stock price did spike after they announced this a few weeks ago, so you might be on the money.
mbo··on Proctorio used DMCA to take down a student’s critical tweets
The University of New South Wales (UNSW) wrote some case studies on online assessment during the initial Australian lockdown back in March.

https://teaching.unsw.edu.au/academic-integrity/case-studies

Some really interesting results:

> In my course’s final online exam, students have access to a Microsoft Teams channel as they complete their exam paper. Students are allowed to ask for help from each other, post specific questions regarding how to solve the problems, post photographs of their working out and indeed their answers.

> A near perfect asymmetric Gaussian (bell-curve) distribution was achieved in the final exam with an average mark, pass and HD all being typical for the course were it to be run on face-to-face on campus. Additionally, my course achieved 100.0% satisfaction in the myExperience student survey. My students commented that this assessment approach was a very forward-thinking approach to online examination.

mbo··on Scala 3.0.0-M1
The Kotlin spec is...

275 pages: https://kotlinlang.org/spec/pdf/kotlin-spec.pdf

mbo··on Why most Hacktoberfest PRs are from India
Working for an American company from Australia, I've noticed a tendency for Americans to work overtime to meet a deadline, and Australians to vigorously oppose their peers from doing so. I've even seen people set up alerting if anyone makes commits outside of work hours.

There's an unspoken agreement that if someone puts in overtime and others don't, it makes the non-overtimers look bad and that that the overtimer should be _cut down_.

Probably not quite tall poppy syndrome, but maybe an adjacent phenomenon.

mbo··on CIA Labs
https://en.wikipedia.org/wiki/Black_site
mbo··on Scaling Erlang Developer Experience at WhatsApp [pdf]
But `some{T}` isn't an option type, it's a member of the option type!
mbo··on Why Not Rust?
> “Rust should have stable ABI” — I don’t think this is a strong argument. Monomorphization is pretty fundamentally incompatible with dynamic linking and there’s C ABI if you really need to.

This is an interesting topic unto itself, described in one of my favourite pieces of technical writing of all time:

How Swift Achieved Dynamic Linking Where Rust Couldn't - Alexis Beingessner - https://gankra.github.io/blah/swift-abi/

mbo··on Scaling Erlang Developer Experience at WhatsApp [pdf]
> A type of `some{T} | undefined` means that the expression can have values `Some(_)` or `None` or `undefined`

Can you please explain this further? Why is `None` an inhabitant of this union?

mbo··on New things in Android 11
I'm not entirely sure that I'm following, because my upload flow from Google Photos puts me into the "Select photos" mode where I can tap multiple photos to select them.

I'm assuming that you're been sent to a photo picker screen and can only choose one at a time. Have you tried holding a tap to enter multi-select mode?

mbo··on A terminal-based presentation tool with colors and effects
There's a major missed opportunity here - you can create codeblocks but there's no way to _run_ the codeblocks.

https://github.com/marconilanna/REPLesent, a similar tool for Scala, supports this by pressing `r` on any slide - all code will be evaluated into the REPL.

mbo··on The French Army Is Building Renaissance-Style Fortresses in Africa
Meanwhile the US Embassy in Canberra, Australia is a 18th century Georgian style colonial townhouse.

Photo: https://au.usembassy.gov/embassy-consulates/canberra/

mbo··on Why does Google think the slowest animal is the sloth?
Deletionism[0] is a plague on Wikipedia's culture. Time and time again have I seen useful content deleted, because a moderator would rather purge something not sufficiently high quality than expend the effort to actually fix it.

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

mbo··on Atlassian tells employees they can work from home forever
Counterpoint: working on infrastructure teams at Atlassian are significantly more pleasant than the product teams.
mbo··on Show HN: Brick, a free Notion-like tool for zero-hassle site making
Hey, this is an awesome product!

I use Notion to maintain a personal knowledge-base (which it works great for). I also maintain a newsletter, embedded into the knowledge-base, that links directly into a lot of the knowledge-base pages for when I need to reference things (which it works not so great for).

Are there plans to introduce some sort of Notion-Brick interop/synchronisation system? I'd love to use the Brick styling and custom domain features, but would like to keep Notion as my source of truth.

mbo··on New ‘Meow’ attack has deleted almost 4k unsecured databases
Atlassian's IAM privileges were pretty damn strict from what I remember when working there.
mbo··on Show HN: Coding Career Handbook
I feel the same way. For a place as exceedingly cynical as Hackernews, a lot of the comments here feel artificial.
mbo··on Mounting clues suggest the coronavirus might trigger diabetes
This is identical to my partners experience. She got EBV (asymptomatically, only discovered in blood records years after) and has suffered from CFS and Delayed Sleep Phase disorder for almost a decade now. She's recently been prescribed Dexamethasone, which has helped manage her symptoms somewhat.
mbo··on Deno will stop using TypeScript
Hey, same situation! As the resident rabid FP evangelist at work, people are often surprised by how much I like like TypeScript.

Personally, I think structural typing systems are the path forward for functional languages, and that means accepting that Haskell needs to go to move on to a retirement home. I was pleasantly surprised by how well Scala did subtyping with ZIO's `Has` + variance annotations. Shame TypeScript is bivariant with function parameters.

mbo··on Ask HN: What scientific phenomenon do you wish someone would explain better?
The Quantum Computing for Computer Scientists video by Microsoft Research (https://www.youtube.com/watch?v=F_Riqjdh2oM) really hammered it home for me. It goes slowly and the presenter, in his own words "shuts up and does the math".
mbo··on Google bans Zoom from employees' computers
Disclaimer: also work at Google

https://www.theverge.com/2020/4/8/21214059/google-hangouts-m... you would be incorrect

mbo··on Google bans Zoom from employees' computers
It is, as of today, just Google Meet, no "Hangouts".
mbo··on Most(ly dead) Influential Programming Languages
This article echos a lot of the themes that I saw in "Family spaghetti of programming languages" (https://erkin.party/blog/190208/spaghetti/) which seems to be the best attempt at developing a family tree of programming languages I've seen thus far.
mbo··on CDC: Possible ‘community spread’ coronavirus case in Bay Area
> 80+ years old: 14.8%

Great. My grandparents have a more than insignificant chance of dying if they (probably) catch it. This really assuages my fears.

> Mortality rate is much, much lower than 3% if you exclude the elderly and the critically ill.

Why would we do this?

mbo··on Implement with types, not your brain (2019)
It's because `Integer` is an insufficiently specific type to ensure that the value expression is well formed. If you really wanted to, you could prove that `add` is well-formed in Haskell and Haskell-likes: https://github.com/idris-lang/Idris-dev/blob/master/libs/pre...
mbo··on Implement with types, not your brain (2019)
> If I knew you write code like this, I would feel compelled during code review to squeeze my brain to try to see whether there is some library function that does what you just did.

That's because the author didn't put a type hole before declaring arguments.

  zoop :: (a -> b -> b) -> b -> [a] -> b 
  zoop = _
  <interactive>:10:8: error:
    • Found hole: _ :: (a -> b -> b) -> b -> [a] -> b
      Where: ‘a’, ‘b’ are rigid type variables bound by
               the type signature for:
                 zoop :: forall a b. (a -> b -> b) -> b -> [a] -> b
               at <interactive>:9:1-38
    • In the expression: _
      In an equation for ‘zoop’: zoop = _
    • Relevant bindings include
        zoop :: (a -> b -> b) -> b -> [a] -> b
          (bound at <interactive>:10:1)
      Valid hole fits include
        zoop :: (a -> b -> b) -> b -> [a] -> b
          (bound at <interactive>:10:1)
        foldr :: forall (t :: * -> *) a b.
                 Foldable t =>
                 (a -> b -> b) -> b -> t a -> b
          with foldr @[] @a @b
          (imported from ‘Prelude’
           (and originally defined in ‘Data.Foldable’))

Here, GHC has figured out that, yes, `zoop` is in fact directly equivalent to `foldr`. And it'll do this with all other holes involved in the iterative type hole development process. So, you don't have to worry about whether there is some library function that does what the author did. GHC will do that for you.
← PreviousPage 6 of 9Next →