HNHacker News
TopNewBestAskShowJobs

erlehmann_

534 karma · joined June 1, 2016

http://news.dieweltistgarnichtso.net/about/cv.html
submissionscomments
erlehmann_··on An off-grid social network
You did not answer my question, but I guess it does not matter with the new strategy. Looks like embrace-extend-extinguish to me – has it always been a goal of Keybase to replace PGP with something keybase-specific or did something change?
erlehmann_··on An off-grid social network
Does keybase still upload the private PGP key to the keybase server by default? https://github.com/keybase/keybase-issues/issues/160
erlehmann_··on Germany’s Federal Network Agency wants to regulate XMPP clients
I edited my post to clarify that.
erlehmann_··on Germany’s Federal Network Agency wants to regulate XMPP clients
For context, Bundesnetzagentur (literally “federal network agency”) is a German agency that regulates five kinds of networks – electricity, gas, telecommunications, post, railways. The telecommunications part of their work is supervised by the Bundesministerium für Verkehr und digitale Infrastruktur (literally “federal ministry for transport and digital infrastructure” i.e. highways and data highways).

One of its tasks is to ensure non-discriminatory access to infrastructure markets for all market participants: Former state monopolies have to share their infrastructure at a reasonable price to competitors, for example. Another task is consumer protection: In february 2017 they decided that an internet-enabled child's doll containing a microphone accessible remotely without any indication to the people using that doll should be “verboten” since they classified it as a hidden wiretapping device.

The federal network agency claims that XMPP clients have to be registered according to a German law that says that one has to be registered with (but does not need permission from) the agency if providing public communication services commercially.

https://en.wikipedia.org/wiki/Federal_Network_Agency

Edit: As other hackernews have pointed out, only the telecommunications stuff is supervised by the BMVI.

erlehmann_··on Show HN: Experimental chat written in Common Lisp
What I do not understand: Why not write a simple IRC (or even XMPP) client – but an “IRC-like” client? The documentation is out there. Do people feel special when their software is incompatible with older software without having features that make incompatibility a necessity?

Internet Relay Chat: Client Protocol https://tools.ietf.org/html/rfc2812

Internet Relay Chat: Server Protocol https://tools.ietf.org/html/rfc2813

erlehmann_··on “Hello, (real) world” in PHP in 2017
I do not understand. I know that make(1) has many implicit rules – but which of the problems I mentioned does this solve and how? Please be specific about your solution.
erlehmann_··on “Hello, (real) world” in PHP in 2017
A makefile consists of rules. Each rule contains a dependency line which defines a target and an enumeration of prerequisites. This means that the dependencies have to be known before the target is built. By design, it is impossible for a single-pass make(1) invocation to derive dependencies for a C program, as dependencies are output by the compiler.

By contrast, redo builds the target first and then records what was used to build it. For example, when compiling a C file with “gcc -M”, gcc will output dependency information. With redo, you normally record those dependencies after the target has been built. With make(1), that information has to end up in the makefile somehow, possibly leading to further builds.

erlehmann_··on “Hello, (real) world” in PHP in 2017
I think that all of these are limitations of not only make(1), but all utilities that expect dependencies to be fully known before a target is built. What makes you think they are not?

How would you solve all three problems I listed using make(1)?

erlehmann_··on “Hello, (real) world” in PHP in 2017
I know at least three reasons why makefiles are not working well for common use cases. Many people seem unaware of these cases, even though they seem to come up quite often.

• make(1) has a hard time rebuilding target files when source files have changed. The problem is that users have to declare the dependencies of a target before the build, but due to file search paths, it can be that dependencies are only known after building a target. To know about all dependencies, make(1) would have to build any target at least twice.

• make(1) by default does not rebuild a target when its build rules change. While this seems really weird to me, it seems to be a consequence of having a single makefile. When a build rule is changed, the makefile changes. So should all targets depend on the makefile implicitly? One could argue that they should – but then each change in a makefile would rebuild all targets.

• make(1) can not handle non-existence dependencies. Imagine a file foo.h being searched for by a compiler in directories bar and baz (in that order). If the header file baz/foo.h is found, then bar/foo.h should be considered a non-existence dependency: If at any future point in time it exists, the target should be rebuilt.

These problems are all solved by DJB's redo approach, which I implemented in a few hundred lines of Bourne shell (/bin/sh): http://news.dieweltistgarnichtso.net/bin/redo-sh.html

erlehmann_··on Ask HN: What are some good technology blogs to follow?
https://blog.fefe.de comes to mind, but it is in German.

For a weekly HN digest, I read this: http://n-gate.com/hackernews/

erlehmann_··on Both geniuses and madmen pay attention to what others ignore
> I still haven't accomplished anything that anyone but my wife knows about, and anyway these ideas I chase are very interesting but once I've figured it out, I am satisfied and don't share it with anyone, because I don't really give a shit about becoming known as a genius, if I even am (which I doubt seriously).

I propose to blog anonymously about those “interesting ideas” then. That way you can achieve something, but get none of the personal recognition you seem to want to avoid.

> Then, as a general rule, I start drinking if I have no obligations for the evening.

Please stop drinking alcohol regularly, especially when you feel depressed. It may make you feel good for a short while, but drinking alcohol regularly can result in liver failure, mental illness, and an increase in the risk of cancer, among other diseases.

erlehmann_··on I invented the web. Here are three things we need to change to save it
Wikipedia, university pages, a lot of blogs and imageboards all work without advertising. It is not so much that people are “addicted to free”, it is that the showing of ads is so very easy and profitable. Site operators are to blame here.
erlehmann_··on Employees who decline genetic testing could face penalties under proposed bill
> If two consenting adults want to make a agreement that includes exchange of their own genetic information, I really don't see the issue.

The problem is one of bargaining power: Consent must be given freely – but in cases where one party in an exchange has a lot more bargaining power, the other party often will agree to something because of fear of retribution or a threat of force. Example: If an employee is told by the boss he or she will be fired if they do not have sex right now, any consent in that scenario is not given freely, but under duress.

erlehmann_··on Time scrolling
Ok!
erlehmann_··on An app that lets you pretend to receive a call when a co-worker distracts you
I have a Samsung GT E1200 and the fake call is triggered after a configurable timeout by pressing the down button four times while the screen is locked.
erlehmann_··on Show HN: Ffscreencast – CLI-based screencasts for OS X, Linux, BSD
If you are on Windows, why do you have a problem with “proprietary software in some capacity”?

Are the games you want to stream also proprietary software?

erlehmann_··on JPMorgan Software Does in Seconds What Took Lawyers 360,000 Hours
URL: https://www.bloomberg.com/politics/articles/2017-03-05/clapp...

Title: “JPMorgan Software Does in Seconds What Took Lawyers 360,000 Hours”

Smells fishy.

erlehmann_··on Show HN: Ffscreencast – CLI-based screencasts for OS X, Linux, BSD
With GStreamer you can put together a processing pipeline for that on the command line:

“gst-launch-1.0 v4l2src ! timeoverlay ! xvimagesink” gives you a webcam overlay.

For more info: http://wiki.oz9aec.net/index.php/Gstreamer_cheat_sheet

erlehmann_··on /usr/bin/time: not the command you think you know
TL;DR: An internet executes “man time” in Bash 3.2 on an old BSD machine (that version of Bash is over 10 years old), wants to use the BSD-specific -l option, but finds out that “time” is also a shell builtin.
erlehmann_··on Show HN: ChatSecure iOS v4.0 – OMEMO and Signal Protocol
One can get Conversations from the F-Droid store without spending money: https://f-droid.org/
erlehmann_··on Shell scripts to improve your writing
There is also GNU style and GNU diction: https://www.gnu.org/software/diction/

; cat <<EOF >/tmp/testfile

Diction and style are two old standard Unix commands. Diction identifies wordy and commonly misused phrases. Style analyses surface characteristics of a document, including sentence length and other readability measures.

These programs cannot help you structure a document well, but they can help to avoid poor wording and compare the readability (not the understandability!) of your documents with others. Both commands support English and German documents.

EOF

; LANG=C diction --lang en --suggest /tmp/testfile

/tmp/testfile:2: These programs cannot help you structure a document well, but [they -> (do not use as substitute for "each, each one, everybody, every one, anybody, any one, somebody, some one")] [can -> (do not confuse with "may")] help to avoid poor wording and [compare -> "Compare" to points out resemblances, "compare with" points out differences.] the readability (not the understandability!) of your documents with others.

3 phrases in 5 sentences found.

erlehmann_··on Rogue One – An Engineering Ethics Story
I find it weird to derive ethics from fictional examples at all. The reason is “ex falso quod libet”, i.e. that one can derive any statement from a false (in this case, fictional) proposition.

https://en.wikipedia.org/wiki/Principle_of_explosion

erlehmann_··on George W. Bush is smarter than you (2013)
Starting that war might have advanced some of his goals.

Depending on them, it might seem or have seemed clever.

I think it is dangerous to confuse “clever” and “evil”.

erlehmann_··on George W. Bush is smarter than you (2013)
> I really don't like this article. It makes me think that I might have been very wrong

Did you intend to draw a connection between these two statements?

erlehmann_··on Uber ordered to stop self-driving vehicle service in San Francisco
If you evaluate Uber like that, why do you take Uber rides?
erlehmann_··on LLVM's New Versioning Scheme
> I like the idea of Semantic Versioning, but it does cause problems where if I'm going to do several breaking releases one after another I have to keep bumping the major version, and I hate that.

From your point of view, the problem is something inherent to semantic versioning. From my point of view, the problem is inherent to your behaviour – if you really want to do “several breaking releases one after another”, why hide it from users?

erlehmann_··on Show HN: CSS Pokemon – created with clip-path and CSS variables
Clarification: My comment was not primarily about browser developers, it was about web developers that do not care about interoperability – and either do not test in non-Webkit/Blink browsers or declare that for some reason (e.g. marketshare, “it is just an experiment”), other browsers are irrelevant in their specific case.
erlehmann_··on Slack Calls: Now with video
I personally think that Slack has been heavily inspired by IRC and it can be seen by its feature set and failure modes – where it more resembles IRC than any other messaging solution I am aware of that came after it (importantly, Slack engineers did apparently not learn from XMPP).

One example deficiency is message ordering. In Slack, messages ordering sometimes changes sometimes after I have received two messages, that are then ordered differently. Is this an example of “eventual consistency” in the wild?

Another deficiency of Slack that definitely is more “inspired” by IRC than anything else is the reconnection handling. If you ever have used IRC, Slack and XMPP on a train (or any other spotty connection), you may have noticed that IRC (or Slack) can time out without you noticing immediately, while with XMPP temporary network problems are usually handled automatically by modern clients.

The difference in both cases lies in stream management – if each message has a sequence number (as it has in XMPP with XEP-0198), endpoints can definitely establish a) an ordering and b) what the last message received was. This eliminates any manual replay. Slack does not do this, apparently, even though unexpected network termination happens frequently.

A third defiency of Slack that makes it look like IRC is the notable absense of metadata fields. While in XMPP you can have a vCard, the Slack documentation contains this gem, indicating Slack developers themselves abuse the last name field to convey information such as not being in the office:

> We ask that everyone displays first and last names in Slack, so we can use the last name field to alert coworkers when they are out of the office, on extended leave, or sick for the day.

Source: https://slackhq.com/slack-101-onboarding-247454704155#11aa

erlehmann_··on Show HN: CSS Pokemon – created with clip-path and CSS variables
It seems to me that nowadays Webkit/Blink has replaced IE for developers not caring about interoperability – with some even going so far as to claim „IE? but nobody uses that!“.
erlehmann_··on Ask HN: What do you think about websites that won't work without JavaScript?
Some of the web sites that only work with JavaScript manage to make even the fastest computer slow to a crawl while it spins up its fans. No matter how fast a computer, one badly written program can still manage to slow down or hinder other tasks – even when that program is running on a web page.
← PreviousPage 2 of 8Next →