HNHacker News
TopNewBestAskShowJobs

ekns

162 karma · joined March 11, 2013

submissionscomments
ekns··on GitHub is working on renaming default branch from “master”
One of the other submissions relating to this became flagged for some reason: https://news.ycombinator.com/item?id=23526311

I don't often comment on things, but this seems like a slippery slope and a process that I'd like to counteract in some way, so input/comments are welcome. Original comment copied below:

I'd prefer it if things didn't change, including the master/slave terminology (the 'master' branch doesn't even have a 'slave' in git...)

Have the words themselves become bad to use? It seems that this is a USA centric view anyway with its history (and even then it seems ridiculous--why can't these things be compartmentalised as technical terms?)

Slavery certainly still exists in the world, and has existed in most places at some point. Should we rename 'slavery' to something else too while we're at it? Or forget it exists and existed?

Certainly certain terms become antiquated over time, like the vocabulary used in Emacs (yank/buffer/etc vs cut/window/tab/...), but master/slave doesn't seem to be there yet.

I wonder if there's some way to counteract this newspeak stuff? I think it's harmful that these things happen for such frivolous reasons. Does one just have to be as loud as the minority that drives these things, to counteract it?

ekns··on GitHub to Remove 'Master' Terminology
I'd prefer it if things didn't change, including master/slave terminology (the 'master' branch doesn't even have a 'slave' in git...)

Have the words themselves become bad to use? It seems that this is a USA centric view anyway with its history (and even then it seems ridiculous--why can't these things be compartmentalised as technical terms?)

Slavery certainly still exists in the world, and has existed in most places at some point. Should we rename 'slavery' to something else too while we're at it? Or forget it exists and existed?

Certainly certain terms become antiquated over time, like the vocabulary used in Emacs (yank/buffer/etc vs cut/window/tab/...), but master/slave doesn't seem to be there yet.

I wonder if there's some way to counteract this newspeak stuff? I think it's harmful that these things happen for such frivolous reasons. Does one just have to be as loud as the minority that drives these things, to counteract it?

ekns··on Firefox 72.0
Switched to Firefox recently on my desktop. I had the strangest problem with Chrome: Somehow it just kept forking more and more processes until the rlimit got filled (100k+ threads/processes).

Too much trouble to debug it so I opted to switch instead.

ekns··on Grumpy Website – a blog about everything wrong with modern web & tech
Hm I was doing something similar, but in the end there was just too much stuff that's broken, all the time: https://twitter.com/everythingisbr2

In the same vein, I've been thinking of having some universal bug/annoyance reporting tool where you'd tag each annoyance with the software/hardware/website and optionally its version.

ekns··on Org-Mode Is One of the Most Reasonable Markup Languages to Use for Text (2018)
Pandoc only handles a subset of org-mode markup.

IIRC last time I tried this (long ago) there were a number of gaps in things like org-mode tables.

At the limiting case, the (common or uncommon) elisp extensions (e.g. org-babel) will likely never be processed by third-party tools.

ekns··on Ask HN: What is your failure story?
Failure 1: I'd planned to do a PhD eventually, but I ended up more or less self-sabotaging my degree grade by being depressed and not doing anything about it (2:2 in the UK system vs. the nominal 2:1 ostensibly required for MSc/PhD applications to most places)

Failure 2: For the longest time, I never managed to make a good routine for myself. To learn, build things, exercise, meditate, etc. Good habits seem to be a pre-requisite for success in virtually any endeavor.

Failure 3: I had an interview scheduled with Google once, right after I had finished my military service in Finland (it's more or less mandatory for men).

I had scheduled it a tiny bit too close for comfort, just after I was supposed to have been out of the garrison. Turns out they called an hour too early (I specified UTC timezone but they marked it down as BST..) so I could only awkwardly tell them I could not talk at the time, and ask if they could call again an hour or a day later.

I never could get another call and settled for a crap job (by some standards). Maybe I could have earned a lot more and learned a lot more (and had a better network of contacts) if things had turned out differently :p

On a more positive note, I started doing freelancing/consulting last year after "no one" seemed to want to hire me at a decent salary and proceed to make OK amounts of money through random gigs.

Still figuring out how to network effectively. I figure the best bet is through gaining visibility online by publishing something useful.

ekns··on Black holes ruled out as universe’s missing dark matter
How is the universe infinite by definition?

Wikipedia for one says the following. There is no mention of infinity.

"The Universe is all of space and time[a] and their contents,[10] including planets, stars, galaxies, and all other forms of matter and energy. While the spatial size of the entire Universe is still unknown,[3] it is possible to measure the observable universe."

ekns··on What Is Your Bank’s Security Banking On?
All or most Finnish banks use an ~8 digit account ID and a 4-6 digit one-time password from a slip of paper that has 80 to 300 of them. Some have a separate PIN/password too.

For confirming large transactions (>5000 or 10000 eur) there's a separate phone call or SMA verification.

Nowadays there's apps for 2FA instead of always requiring the use of a one-time password. My corporate bank account still uses the paper backed one-time passwords though.

ekns··on APL Style: Patterns/Anti-patterns
I've never really like the word "anti-pattern". Anti-patterns are still patterns of sorts instead of pure entropy.

How about just "common mistakes" or "discouraged/deprecated/error-prone/incorrect patterns" or something?

ekns··on How bad is IPv4 address exhaustion?
> The ultimate solution to IPv4 exhaustion is, of course, the complete transition of the Internet to IPv6, however, this will take time and until then there will be (by definition) networks and sites which only support IPv4.

Off-topic: I've always wondered why English speakers (or perhaps just Americans?) use "by definition" arguments so much (also just saying that things are by definition so and so).

People never seem to use "by definition" arguments and such in Finnish for example.

Definitions of mathematical objects aside, things in concept space are not eternal and can shift around. Is the usage a cultural thing? A quirk of language? Just some random trivial thing that just is and doesn't have any particular reason to it? :p

ekns··on Show HN: A simple, fast and user-friendly alternative to find, written in Rust
It's not even slower (and it's safe beyond the argv limit) if you use "+" instead of the semicolon.

  find -type f -exec sed -i s/foo/bar/ {} +
This only invokes the command twice for 100k files (assuming we can pass in 64k arguments to sed)
ekns··on Ask HN: Who wants to be hired? (August 2017)
Location: Helsinki, Finland

Remote: preferred

Willing to relocate: yes

Technologies: Python, Flask, modern SQL, Postgres, MariaDB, Elixir, Phoenix, Jupyter/Pandas/etc, ES6+, Haskell, Java, AWS, Google Cloud, etc.

Résumé/CV: kunnas.com/cv

Email: hn at kunnas.com

Data science, full stack development, system design. I am interested in end to end design space exploration/optimization and software correctness from a pragmatic point of view, maximizing ROI, minimizing technical debt--QuickCheck beats ad hoc cases, correct by construction beats tests, design optimization may make the code (and its testing) superfluous entirely.

ekns··on Show HN: SignRequest – Electronic Signatures for everyone
There's something similar in Finland from a company called Visma: https://allekirjoitus.visma.fi/

It's tied to the de facto standard bank/other authentication system called TUPAS[1] which is used to prove your identity to government services, banks, etc. etc.

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

ekns··on The future of education is plain text
Unfortunately org-mode is not backwards-compatible and there have been many changes which break things unnecessarily.

For example, I once attempted to run this org-mode "notebook", ironically titled "Reproducible Research with Emacs Org-mode", and found I had to make significant cosmetic changes to get it to build: https://github.com/eliask/orgmode-iKNOW2012

Maybe things have improved since, but backwards compatibility is important for these kinds of formats.

ekns··on Scientists Tie 52 Genes to Human Intelligence
I recall seeing this Google Tech Talk by Steve Hsu on how they are in the process of finding out basically all the additive genes that contribute to intelligence in China at the BGI research institute: https://youtu.be/62jZENi1ed8

They would take roughly a thousand people who are >=3 standard deviations smarter than average and compare their full genomes against people who are of average intelligence. This way they expect to find out all the "easy" genetic determinants of intelligence.

ekns··on Ask HN: Who wants to be hired? (May 2017)

  Location: Helsinki, Finland (atm, I travel a lot)
  Remote: Preferred
  Willing to relocate: Probably not
  Technologies: Python, Haskell, Elixir, Postgres, Tensorflow, keras, etc.
  Résumé/CV: kunnas.com/cv
  Email: hn@kunnas.com
AI-flavoured full stack developer :)
ekns··on Stop Guessing Languages Based on IP Address
Even weirder still, in my experience, is that Google Maps randomly displays the names as Finnish sometimes, and randomly displays them in Swedish other times.
ekns··on St – A simple terminal implementation for X
I've been happy with gnome-terminal :)
ekns··on How to Unlock Netflix Hidden Categories
I figured out how to use the Falcor API of Netflix to fetch a full list of genres.

Submitted to HN separately, but here you go :) https://eliask.github.io/netflix-genres/genres.html

The repository contains the scripts to fetch them also.

ekns··on Please don’t pay to use a pay toilet
Random examples from recent experience:

Some exist in Finland (at least in Helsinki).

Also saw one recently in a train station in Belgium, and IIRC a train station in the Netherlands.

Also in the North of Argentina near some bus station, where you would pay directly to someone apparently responsible for cleaning/maintaining them.

ekns··on Show HN: Anycomplete
Improved version using jq. This properly URL encodes the query parameter and uses a much simpler sed command. Additionally the API returns UTF-8 encoded data when the user agent is specified. Requires curl >= 7.18.0.

    function c() {
        url='https://www.google.com/complete/search?client=hp&hl=en&xhr=t'
        # NB: user-agent must be specified to get back UTF-8 data!
        curl -H 'user-agent: Mozilla/5.0' -sSG --data-urlencode "q=$*" "$url" |
            jq -r .[1][][0] |
            sed 's,</\?b>,,g'
    }
Example:

    $ c ':)' ':('
    ) ( meaning
    ) ( emoticon
    ) ( ͡° ͜ʖ ͡°)
    ) ( emoticon meaning
ekns··on Many LASIK patients may wind up with glare, halos or other visual symptoms
I had surgery with my first salary more or less when I was 21. It took a year or two for the halo effects to disappear.

My night vision feels like it's like "4x" worse than it it was but it is really hard to tell. Seeing in the dark is difficult in the first place and I don't have any hard data.

ekns··on GitHub has 11,995,200 open issues
Funny how it says there's 479830 pages worth of results and even has a link to that "last page".

I checked and in practice it "only" returns the first 400 pages of results.

ekns··on Outlier Detection in SQL
I recognize the syntax in "date_trunc('day', created_at)::date as day,", namely the cast "::date", as PostgreSQL syntax. Could be something else as well but I've only seen it with PostgreSQL.
ekns··on Making Robots [video]
Even if you could buy one, one of them costs 12k euros last I checked (a few years ago)
ekns··on Ask HN: The best Linux laptop
Not sure if this has changed with more recent models, but I've had rather bad experiences with UX31.

Although the model number was the same, most of the European variants had a different, extraordinarily bad SSD, which slowed down to <1 MB/s if the file system was something like >70% full.

Other indicators of bad quality:

- keycap texts disappeared for the most used keyboard buttons after just a month's use

- crashed once every three days on average (hardware issues?)

- The fan makes a buzzing sound as it scrapes the bottom of the laptop casing

- The screen died after about a year of use (booting up makes the screen gradually turn completely white within 5 or 10 seconds)

ekns··on Mathematica on Raspberry Pi for free
IPython has to my knowledge always used those kind of labels for inputs and outputs. It just follows from the CLI convention.

I looked up how it was in version 0.0.1 from 12 years ago and it turns out the original CLI format was made to look like Mathematica [1]: "Interactive execution with automatic history, tries to mimic Mathematica's prompt system".

[1] https://gist.github.com/fperez/1579699

ekns··on PyPi interactive dependency graph
I was curious about what the most common dependencies were so I hacked the IPython notebook a bit:

  import json, pip, re
  from base64 import b64decode
  from itertools import chain
  from collections import Counter

  def get_name(x):
      "This captures most of the base names for dependencies"
      if x.startswith('#'):
          return
      try:
          return pip.req.InstallRequirement.from_line(re.sub('["\']', '', x)).name.lower()
      except ValueError:
          return
  
  C = Counter()
  
  data = []
  with open('pypi-deps.csv', 'r') as file:
      for line in file:
          name, version, deps = line.split('\t')
          deps = filter(None, map(get_name, json.loads(b64decode(deps))))
          data+= [(name, version, deps)]
          for x in deps: C[x] += 1
  
  print '\n'.join('{0}\t{1}'.format(*x) for x in C.most_common(20))
The results:

  setuptools	1949
  django	546
  zope.interface	244
  requests	241
  lxml	204
  zope.component	203
  simplejson	202
  flask	158
  zc.buildout	127
  argparse	110
  zope.schema	109
  python-dateutil	108
  jinja2	105
  distribute	104
  pyyaml	103
  fanstatic	95
  beautifulsoup	93
  zope.publisher	91
  sqlalchemy	91
  numpy	89
ekns··on I know none of my passwords
I've been using PasswordMaker (http://www.passwordmaker.org/) for years to generate most of my site-specific passwords when needed. PasswordMaker uses a master password together with a site's domain name to hash a site-specific password. It has Chrome and Firefox extensions for filling in the password fields with one button.

Unfortunately, by default it uses MD5 and 8-character passwords. I always set this to SHA256 and at least 12 characters when first installing the extension on some device/browser.

Most sites play well with this, but there are exceptions: having to change a password is a bit ugly when the passwords are generated from a given master password and the site's domain name. A more common problem is when a site refuses to accept certain characters in the hashed password or when a site requires some number of digits and uppercase letters, for instance. I currently just store these exceptions with Keepass.

I see 1Password being mentioned a lot but I started using PasswordMaker and Keepass well before I'd first heard of 1Password so I don't know how it might compare.

ekns··on Keypress: A Javascript library for capturing input
I don't know the details, but it is possible for a USB keyboard to support N-key rollovers. As an example: http://www.corsair.com/en/support/faq/vengeance-gaming/
← PreviousPage 2 of 3Next →