HNHacker News
TopNewBestAskShowJobs

juki

285 karma · joined January 14, 2017

submissionscomments
juki··on What the Irish Ate Before Potatoes
This comes up surprisingly often on HN, but there isn't really anything surprising about it. The whole reason Europeans went to the Americas was to bring back things to be sold in European markets. They might have been a bit disappointed when potatoes turned out to be so easy to grow in European climates that there was no money to be made by importing them, though.
juki··on Functional programming is not popular because it is weird (2016)
> Unfortunately this sentiment is disqualified by data.

Your comment seems to support, rather than disprove, the claim.

JS was around for years without much success before the browser became a popular platform for applications. People used to only write applications for the server or for platforms like Java and Flash that were just embedded as plugins in the browser. They only started using JS after improvements to browsers made it a better platform than the alternatives.

juki··on Jupyter Book
It's only broken on the front page, which tries to take you to https://orgmode.org.html/ when it should go to https://orgmode.org/worg/org-contrib/babel/index.org.html
juki··on I was a teacher for 17 years, but couldn't read or write
"th" isn't really used in Finnish (at least in modern kirjakieli). Even loan words just drop the "h" (e.g. "termostaatti"). There probably are some exceptions, but none that I can think of right now.
juki··on Peter the Great’s Beard Tax
> (ie. Grand Duchy of Moscow)

The Grand Duchy of Moscow existed from 1263 to 1547, but the beard tax was from 1698 (Tsardom of Russia) to 1772 (Russian Empire).

juki··on Tylr: Demo of tile-based editing, a new kind of structure editing
That would depend on the language. Paredit is mainly made for Lisp where that would be legal (aside from the comma between 2 and 3). In some other languages that could also be allowed for casts.
juki··on Tylr: Demo of tile-based editing, a new kind of structure editing
If it works like Emacs paredit, the default for just hitting `(` would be

  let y = f()(2, 3)
but there should be a different command to do (`alt-(` in paredit)

  let y = f((2, 3))
There should of course also be "slurp" and "barf" commands to add or remove items from the parentheses if you do the wrong thing first (or want to wrap multiple things in the parentheses)
juki··on A case against security nihilism
And many languages also provide convenient syntax for acquiring and releasing a resource for a dynamic extent (Java try-with-resources, C# `using`, Python `with`, etc.), which cover the majority of use cases.
juki··on A small town in Sweden fights to preserve Elfdalian, a dying forest language
> The region, which is comparable in population size to a large German federal state or a medium-ish US state

Scandinavia (counting only Sweden, Norway and Denmark) has a population of about 21 million, so it's actually bigger than any German state, and about the same size as Florida (3rd largest US state). If you count Finland too, it's about the size of Texas, so California is the only US state that's meaningfully bigger.

juki··on Saudi Operatives Who Killed Khashoggi Received Paramilitary Training in U.S.
See the "Political events" section in that wikipedia page.
juki··on Tree-Shaking: A Reference Guide
Yes, in image based languages DCE is used inside functions to eliminate things like branches that can never be executed, but a function that is never called is not dead code since it might get called later. Tree shaking is used to optimize the final deliverable by saying that there will be no more changes or `eval`s, so anything that isn't reachable from the root(s) can be eliminated.
juki··on 60% of school apps are sending student data with third parties without consent
End-to-end encryption doesn't help when it's the app (i.e. one of the ends) that is sending the data away.
juki··on Has UML died without anyone noticing?
piva00 probably meant that implementing map and reduce for a data structure, rather than the use of them, is a design pattern.
juki··on Godot 3.3
I seem to recall there being some hiDPI setting in the project options that fixed the blurry fonts for me (on Windows). I think the problem is just that on hiDPI screens everything, including text, is still rendered with whatever size the programmer picked and the result is just naively scaled according to the OS settings (which works ok-ish for non-text graphics). The hiDPI setting removes the automatic scaling, so developers have to account for hiDPI screens themselves (not making everything too tiny).
juki··on Logica, a novel open-source logic programming language
> That's actually one case where Datalog works better than SQL, that only allows "rows" i.e. "facts" (in Datalog parlance) but not "rules" that establish relations _between tables_.

What is the difference between Datalog rules and SQL views?

juki··on The EU archived “Euromyths” printed in UK media (2018)
You seem to be making the (rather common) mistake of confusing European organisations with EU institutions. CEN is not a part of the EU. It was founded to establish standards among European countries long before the EU even existed, and it has members outside the EU as well. The EU does indeed recognize it, as does the UK (and did long before the EU even existed), but the EU didn't create it and doesn't control it.
juki··on The EU archived “Euromyths” printed in UK media (2018)
That's CEN, not EU
juki··on The EU archived “Euromyths” printed in UK media (2018)
It might be a legit complaint, but one that has nothing to do with the EU. The EU simply doesn't make safety standards for playgrounds.
juki··on The EU archived “Euromyths” printed in UK media (2018)
The actual site (see the archive link by antientropic) has sources for them.
juki··on Suez Canal says traffic in channel resumes after stranded ship refloated
Chinamax means ships that can use specific harbours, which imposes a length limit. Panamax likewise has a length limit because the ship has to fit inside the locks in the Panama Canal.

The Suez Canal doesn't have locks, so in principle the length isn't limited. In reality it of course is limited by the harbours you intend to use. Apparently ships longer than 400m also require permission from the Suez Canal Authority.

More important for the claim that Chinamax is bigger is the tonnage. Chinamax can carry 400,000 tonnes, while Suezmax is typically under 200,000 tonnes.

juki··on How Antidepressants Work, at Last?
> Life is miserable here. And people don't run to hang themselves. They are trying to find happy moments and relish in those moments.

What country is this? Your domain seems to indicate Kazakhstan, but they have one of the highest suicide rates in the world, so I suppose that's not it?

juki··on Brave Browser leaks your Tor / Onion service requests through DNS
You'd probably be sending out a lot of information that can be used to identify you (telemetry, logins, other fingerprintable info about your system). Just using Tails seems like a better option.
juki··on Getting Started with Lisp (2019)

  (defun main
    ()
    (format t "Hello world")
  )
Should be

  (defun main ()
    (format t "Hello world"))
The lisp community has very well established formatting conventions. You pretty much never see closing parens on their own line like this except when reading code written by beginners (or some special cases like package export lists for example, where one might want to leave the list "open" for adding new symbols, similar to a trailing comma in some other languages).
juki··on Compiling a Lisp to x86-64: primitive functions
Whether code is written to a file or just executed in memory is irrelevant. JIT compilers compile code at run time, and may also recompile the already compiled code again to optimize it based on run-time analysis. SBCL however has distinct compile-time and run-time.

For example, you have a function that does a bunch of math without knowing the types of the arguments. A JIT compiler can first compile it with generic math, but later observe that it's almost always called with fixnums, and choose to create a specialized implementation for fixnums. SBCL relies on the programmer to implement and call the optimized version when appropriate.

juki··on US, Taiwan seek 'like-minded' democracies in supply chain shift from China
That would mean cutting themselves out too. Arguably even Taiwan doesn't make the cut.
juki··on Malaria No More
That documents lacks a date, but it seems to be old information. Based on [1] and [2] it seems that the numbers given in that document are from around 2005 or before, but there has been a lot of progress since then.

[1]: https://www.unicef.org/media/files/MalariaFactSheet.pdf

[2]: https://endmalaria.org/sites/default/files/RBM Annual Report 2018_EN.pdf (page 6)

juki··on Breach exposed more than one million DNA profiles on a major genealogy database
https://en.wikipedia.org/wiki/Multinational_state

> Present-day examples of multinational states are Afghanistan, Belgium, Bolivia, Bosnia and Herzegovina, Brazil, Canada, China, France, Ethiopia, India, Indonesia, Iraq, Madagascar, Malaysia, Mauritius, Montenegro, Nigeria, Pakistan, Philippines, Russia, Serbia, Singapore, South Africa, Spain, Sri Lanka, Suriname, Switzerland, United Kingdom and United States.

juki··on My dad launched the quest to find alien intelligence
That's a set of real numbers, and primality is not defined for real numbers, so 5.0 can't be a prime. The whole concept is just not applicable unless were talking about natural numbers, in which case the set is finite.
juki··on My dad launched the quest to find alien intelligence
> There are infinite numbers between 4.0 and 6.0 but only one of them is a prime.

Primality only applies to natural numbers, so there can't be primes between 4.0 and 6.0. There is one between 4 and 6, but that's a finite range.

juki··on Do notation considered harmful
> I don't see any fundamental reason why such functionality couldn't be brought into an imperative language at some point (but maybe I'm ignorant about PL theory).

Nim can kinda do this with its effect tracking feature (although I haven't used Nim enough yet to know if anyone is really using it), e.g.

  type
    AEffect = object of RootEffect
    BEffect = object of RootEffect
  
  proc callA() {.tags: [AEffect].} = echo "A"
  proc callB() {.tags: [BEffect].} = echo "B"
  
  proc somethingInBetween() = # Tags are inferred here.
    callA()
  
  proc doSomethingWithA() {.tags: [AEffect].} = 
    somethingInBetween()
    # trying to `callB()` here would fail.
  
  proc doSomethingWithB() {.tags: [BEffect].} = 
    callB()
    # trying to `callA()` here would fail.
The `tags` pragma adds specific tags to the proc and the compiler ensures that it doesn't call anything with any other tags. Similar mechanism is used for exceptions too.
← PreviousPage 3 of 6Next →