HNHacker News
TopNewBestAskShowJobs

weland

3,371 karma · joined June 7, 2013

weland AT blinkenshell DOT org
submissionscomments
weland··on Smaller, Faster, Cheaper, Over: The Future of Computer Chips
> Even now, companies have a difficult choice when switching to 16nm - is it worth the cost and effort?

The alternative is to spread processing power over multiple cores and have programmers write code that takes advantage of that. We have a thirty year-long history of failures in that department. It has gone from "this is how we'll be writing code tomorrow" in the '80s to "this will FINALLY be a nail in the coffin of Moore's law, just wait and see" since the late 1990s.

The cost is worth it because there are a lot of high-profile industries depending on it, and there is no credible alternative yet. Until that alternative -- which will be hardware in nature, not software -- comes up, the current trend is all we have.

weland··on NewLisp
> does not even have linked lists

Conses are different in newlisp, but it certainly does have linked lists:

> In newLISP, there are no dotted pairs. Instead, each newLISP cell contains one object and a pointer to another object if the cell is part of a list.

> different evaluation model

That one is true, yes.

> no GC

No, but it implements McCarthy's original intent through the ORO scheme. NewLisp's ORO thing is very annoying if you ask me, but it does its job; it achieves the same thing that McCarthy mentioned in his paper: "This process [...] is more convenient for the programmer than a system in which he has to keep track of and erase unwanted lists. Its efficiency depends upon not coming close to exhausting the available memory with accessible lists etc."

Let's not delude ourselves here. NewLisp is not necessarily one of the "better" Lisp implementations, but it has S-expressions, Scheme-like function application and automatic memory management. I think that's reason enough to call it SomethingLisp.

weland··on NewLisp
It's very much a Lisp dialect in the sense of McCarthy's Lisp.

There is some life beyond Common Lisp :).

weland··on An Interview with Brian Kernighan (2000)
It has an added, important advantage: it allows you to examine program flow without interrupting it. Sometimes that's outright essential (e.g. you're debugging ISRs and breakpoints screw up everything; you can't printf from an ISR, obviously, but you can at least toggle some signal to examine on a logic analyser or flip a flag that you print back in the main loop); other times it's just easier to see where the difference between "what you wrote" and "what you think you wrote" is when you can follow the program's output as it's running, rather than through a sequence of breakpoints.
weland··on Why Do We Admire Mobsters?
I haven't lived in the times of Al Capone, but I have lived in a country where Al Capone-like stuff was still happening at the time, and I can confirm this.

Local organized crime leaders had no more disdain for law than most policemen, prosecutors, judges or politicians. However, due to the nature of their activity, they had to maintain a reputation of honesty and reliability.

People feared them, but they were generally true to their word. If you paid the protection tax, your shop was protected. Of course, the tax could be raised without any advance notice, but more astute negotiators generally managed to delay enforcement by a few weeks. But your shop was fine.

Policemen, on the other hand, did nothing of that sort. Even when not actively assisting the crooks, there was no proactive protection of any kind. The police could only step in after your shop was devastated for the first time -- and even then, the usual process was that you'd file a complaint and, after the legally-required 30 days, the local police would send you a short letter saying they couldn't do anything due to lack of evidence. Assuming, that is, that the post office didn't lose the letter.

Law enforcement agents were seen as very unreliable partners: sometimes they'd help civilians, sometimes they'd just stay out of it, and oftentimes they'd blatantly and obviously take the side of the mobster who was paying them to look the other way.

The crooks, on the other hand, were seen as reliable. Yes, they were ruthless, but you could generally count on their help, if you were willing to pay the price.

weland··on Why Is Europe Failing to Create More $1B Startups?
I speak English very well. I have spoken it in professional environments for so long that, in a regular conversation, even accent barely reveals that I'm a non-native speaker anymore. However, my own native language is part of my cultural heritage, a heritage that I deeply appreciate, which is very dear to me and which cannot be adequately rendered in English any more than The Canterbury Tales can be adequately rendered in my own language.

We stick to our local languages because they're part of who we are. Europe would probably have a little more money if we stopped doing that, but it would be a lot poorer.

weland··on System XVI: A replacement for systemd
I have... mixed feelings about Arch :-). It certainly doesn't appease me in any way; I don't use Gentoo because I like speed or especially DIY. I've done a lot of DIY crap on my Linux machines in the 90s and 00s. I don't enjoy doing it again. The only reason I use Gentoo is that, via the thickest web of USE flags I've ever woven, I can keep freedesktop.org's EverythingKit, most of Gnome's crap, pulseaudio and systemd out of my system. I can't really do that on Arch.

I think Arch is good in terms of "learning experience" for someone who wants to learn more about how a distribution is put together, but that's about it. I used it for a while, back in 2005 or so, but our later contacts have been... less than fortunate. I tried it again two or three years ago and my system regularly broke after every update. I eventually ragequit when I ended up with a system that wouldn't boot because, in The Great Move of Everything to /bin, it somehow managed to screw up the bootloader. I figured my data was going to be next, wondered what the fuck they were thinking even in the context of a rolling release, shrugged and wiped it out.

The Arch Wiki is a great repository of information though. It's even better than the Gentoo wiki was, back before it got (disastrously) wiped out.

> I'm curious how the more hardcore *nix users view it.

They probably think lowly of the whole Linux thing, but what do they know :-)

> But I was turned off by the culty vibe of the users and it seemed like a backwaters in terms of software versions, as everything outside of the core seemed severely outdated.

I found the culty vibe of the OpenBSD community to be far less obnoxious than that around... pretty much any major Linux distribution.

There are quite a few outdated packages in ports though, yes. That's often because of a lack of maintainers, but there are programs where that's just because of compatibility problems. There are very few broken packages, if any, in the ports tree -- and sometimes the broken status is very paranoidly assigned (i.e. I've had packages that were marked as broken but it turned out they ran just fine).

weland··on System XVI: A replacement for systemd
Someone had to say it :-).
weland··on System XVI: A replacement for systemd
I have no idea what to recommend anymore. Most of my colleagues, myself included, have either moved from Linux to BSD or OS X land (depending on preferences) or just stopped being too involved. Helping people learn about software in general (and sometimes, but not necessarily, Linux in particular) used to be fun and rewarding. Nowadays, about 70% of the answers are either "Yeah, that's a bug they don't want to fix because they don't think it's a bug" or "I know that's not how you do it in Finder but that doesn't make it broken."

The Linux ecosystem is increasingly centralized and most of the organizations that are centralizing it, like the Gnome project, are actively discouraging contributions that don't match their agenda. This is reducing the importance -- and cohesion -- of any community. It's no coincidence that many people are finding less common ground in software they're all using than in software they're all hating.

The only Linux community I'm still vaguely in touch with (I read the mailing lists and sometimes the forums) is the Gentoo community. Largely because my only remaining Linux machine is running Gentoo. It eats a lot of my time, but stubborn USE flags control seems to be the only way to get a usable Linux distribution lately, and I'd rather spend an extra hour a week configuring it carefully enough to keep crap software out than spend a whole evening each month dealing with sudden breakage. It's not necessarily a friendly community, but most people seem to know what they're talking about.

Frankly, as bitterly as it may sound (and it's coming from someone who started using Linux just in time for the 2.0 to 2.2 switch), I'd rather recommend the OpenBSD community.

weland··on System XVI: A replacement for systemd
> Redhat are betting their particular farm on systemd in RHEL7

It's basically their product, so...

> and Debian (hence recent Ubuntu releases building to the 16.04 LTS) has adopted the suite.

I think Ubuntu adopting systemd has less to do with Debian doing so and more to do with Gnome becoming increasingly difficult to package without systemd.

weland··on System XVI: A replacement for systemd
> even ending up being mocked on Linux Unplugged and hitting /r/linux as the project was still a skeleton.

To be entirely fair, I think there are few communities that can claim the honour of being worse and more amateurish than /r/Linux. It's incredible how many Linux experts who have used nothing but Arch Linux for about an year can gather in one single place. Every once in a while there's an OK post, but it's downvoted.

I hope your friend didn't take them too seriously.

weland··on A 22-year-old anti-Nazi song tops German charts again – to welcome refugees
Arguably, at least NATO countries should shoulder some of those consequences as well. ISIS didn't just spring out of the ground.
weland··on We don’t need a remote-controlled iKettle
The associated problem is the blown-up featuritis required to somehow make up for the price.

I would be extremely happy to shed out 70$ for a way to turn off the lights when I forget them (cynically, I'd say especially if it lasts long enough to save me 70$ in electricity bills, but I'm sure a reasonably convincing argument can be made about the environment, additional comfort and so on).

The problem is that virtually every available offering right now attempts to do a lot more than that to justify the 70$ price tag.

It also does it disastrously bad, and without any meaningful integration behind a single manufacturer's product range (there are few things more hilarious than looking at a bunch of Z-Wave or Zigbee devices from different manufacturers trying to talk to each other).

Instead of giving me a simple on-off gizmo, I get a crawling smartphone app that needs a frickin' cloud infrastructure behind it and pushes HTTP notifications to something that could literally be made out of a dozen transistors if it didn't need to talk HTTP (or at least out of a cheap-ass microcontroller with a dumb hardware PHY, but because IPv4 won't fucking die already we either need to make them talk HTTP or have people toy with their routers). When I get downstairs and notice the lights are still on, it takes me less time to find my keys, run back upstairs, fix me a glass of Old Fashioned, gulp it, go back downstairs, notice I forgot why I went up in the first place, so go back up again and turn off the light, than it takes me to open the fucking application, wait for the authentication messages to go back and forth between me, the lights that are literally five meters away from me and some datacenter in frickin' Texas, and turn off the light after I finally get to the relevant stupid dashboard that seemingly shows every possible control in the world except for the on/off button.

All because -- if all it did was shown an on/off button -- it would seem way too expensive.

It's bitterly impossible not to remark that everyone seems to try putting out the fire with the sword. The whole tech stack is currently way too complex and burdening to manufacture these things cheaply. The logic thing to do would be to make it leaner. Yet instead, everyone seems to be trying to get chips to talk JavaScript now.

weland··on We don’t need a remote-controlled iKettle
What, for a bulletin board?

Kids nowadays...

weland··on A 22-year-old anti-Nazi song tops German charts again – to welcome refugees
Outrageous that they'd bring European solidarity into this. /s
weland··on Do Not Disclose Your Salary to Recruiters
You're generally not even allowed to discuss your salary with your colleagues after (if) you're hired by one of those potential employers.

If it's confidential after that, it should be confidential before, too.

weland··on C Programming Guidelines
Unless I'm reading your example incorrectly, it's pretty easy to catch those if, in foo_destroy, you ensure that you don't try to free a null pointer.

> It's just a minimal example.

I know -- but it tends to be confusing if you free() something in another scope than the one where you're malloc()-ing it. That's why your example, even if minimal, seemed confusing.

The obvious exception is if you have some reference counting mechanism/GC mechanism in place -- but then the wise thing to do is to not manually touch pointers all over the code.

weland··on C Programming Guidelines
Why are you freeing b in foo?

It's confusing if you're mallocing in one scope and freeing it in another one (foo is especially confusing, besides being a disaster ready to happen). But if you write bar() like this:

    void bar() {
        char *b = malloc(123);

        foo(b);

        free(b);
        b = NULL;
    }
it looks all right.

Not that I'm advocating this kind of use. I have... mixed feelings about it. But I've seen it used and it doesn't have to be confusing.

Its primary merit is that it makes use-after-free cases immediately obvious, since they're going to trigger a segfault.

But there are better ways to achieve that.

weland··on Windows 10 users are being banned from torrent sites
> Besides driver problems

As long as you stay away from perpetually-beta distributions that I shall not name, driver problems are really a non-issue. I haven't had a malfunctioning peripheral under Linux in a very long time now (years?). Driver problems are on-par with what you see on Windows :-).

> missing support for newer OpenGL standards

This has been a common complaint about OS X for a long time, and no one thought desktop on it didn't work.

> fragmentation of desktop environments

As long as the desktop respects ICCCM (hint: they all tend to do) and you don't write your application using some obscure, non-ICCCM compliant toolkit, this tends to be a non-issue.

> it doesn't even have GUI isolation (meaning that any X11 application can sniff your keyboard input):

This is true. However, the expectation is that you'll usually run open source software from trusted sources (and you can run untrusted applications in an Xnest session). Methods aside, it's just as easy for a malicious user to keylog you on Windows or OS X, the Linux keylogger is just more trivial to write.

weland··on Windows 10 users are being banned from torrent sites
This has been solved for ages. Containers can help in some particular scenarios, but they're neither the only, nor the perfect solution, by far.
weland··on Windows 10 users are being banned from torrent sites
This may be true for games, but it's less of a problem in general. If you don't want to release the sources and have it handled downstream, you can always statically-compile everything and call it a day. Most commercial vendors tend to do that. Display managers are pretty much irrelevant, I can't think of any application that cares if you're running gdm, sddm or anything else; the ALSA backend pretty much guarantees everything is fine in the sound department.

I guess it depends on how many dependencies you're relying on and on what those dependencies are, but the process is pretty smooth.

If they manage to develop things for Android, it can be done for Linux, too.

(Source: developed and packaged a commercially-distributed Linux application. Not too painful a process.)

weland··on Windows 10 users are being banned from torrent sites
I have no love for the direction in which Linux desktop seems to be heading today, but engineering concerns aside, it's been working fine for a long time.
weland··on My husband needed therapy after working for Amazon
I like to think that I would. Primarily because I tend to seek to spend and invest money in a way that does not require me to make compromises in terms of humanity.

Granted, I've never invested money in anything of Amazon's level, so I cannot know -- all I know is what I hope I'd do.

weland··on My husband needed therapy after working for Amazon
This. It's easy to shift the blame to faceless Amazon and pretend "the company" is at fault.

It's not. The people who are running the company (and I'm not referring strictly to top management here) are the ones with the blatant disregard for their employees.

This is not a result of some inherent forces our Universe suddenly concentrating over Amazon. They're the result of business decisions. A bunch of people wearing suits have talked about this and agreed it's okay.

weland··on The Teflon Toxin
Some of the unevenness is for occasionally non-obvious, but valid reasons. It's done in RoHS, too, for instance: lead is banned out of solder, but still allowed for some equipment, such as radiation shields for imaging machines.

The reason being that lead-free solder can still be used effectively. Lead-free radiation shields -- not so much.

The aim is to reduce the usage of hazardous substances to those cases where there's just no way around them, in the hope that it will make things like waste management easier.

Edit: CE marking requirements are also reasonably easy to work out. I know several one-man businesses that solved that problem without that much hassle, so -- anecdotally -- the minimum size imposed on a business is one :).

weland··on Oracle’s license agreement as it pertains to reverse engineering
> Sure, carefully reviewing all the reports would be ideal, but it also means you'll need many employees to do that. And I don't really see why Oracle should be responsible for educating customers about basic security practices.

Because if they don't, stuff like this happens: they get blamed for any trivial data breach that happened through some of their programs -- even if the problem wasn't that it sucked, it was that the password was admin123.

It's not glamorous and we can all agree that, as long as we're talking about responsible users, it shouldn't be Oracle's job to do this kind of education. However, exploiting users' ignorance is an integral part of their business model; they're consciously targeting them -- it's up to them to deal with all the consequences that brings.

weland··on Oracle’s license agreement as it pertains to reverse engineering
Every programmer (myself included) who has had to discard bullshit reports about vulnerabilities agrees with the main idea -- that these things should be treated carefully, many of them are false positives and they may be borderline illegal, too.

The correct way to treat these reports is to review them (after all, who knows...) and try to educate those customers who send you bogus reports: explain why they're bogus, why reverse engineering doesn't usually provide good leads, explain them what easier steps they can take for additional security, and maybe remind them about that EULA. This can be done on an individual basis, politely, and Oracle, who seems to employ half the salespeople in this world, certainly has the resources to do so. If they can call me every two months to remind me about their great offers, they can write the standard answer that almost every such report warrants.

But no, instead they chose to dump a load of shit in the form of this blogpost:

1. It's written in the kind of condescending tone that makes you want to punch your interlocutor in the face. Such as: " That said, you would think that before gearing up to run that extra mile, customers would already have ensured they’ve identified their critical systems, encrypted sensitive data, applied all relevant patches, be on a supported product release, use tools to ensure configurations are locked down – in short, the usual security hygiene – before they attempt to find zero day vulnerabilities in the products they are using.". Surprise, surprise: a lot of people who start reverse-engineering binaries are either a) extremely security-conscious people, who, yes, already do those things, or b) extremely good programmers who work for people who -- again -- already do those things! There are exceptions, of course, but assuming that everyone who submits such a report is one of those imbeciles who dreams of Matrix hackers but runs a company where no computer has an antivirus installed is naive.

Or: "there are a lot of things a customer can do like, gosh, actually talking to suppliers about their assurance programs etc.". This sort of crap belongs on a cocky teenager's blog, not on a serious company's website.

2. It's all the more insulting to whine about it when the subtle message you're trying to convey is that zero-day threats aren't that a big deal: "And in fact, there are a lot of data breaches that would be prevented by doing all that stuff, as unsexy as it is, instead of hyperventilating that the Big Bad Advanced Persistent Threat using a zero-day is out to get me!". Yes, it's no problem to state this when you're some random blogger. It is a problem to state this when you're CSO of the company famous for producing the one plugin that's recommended to be disabled by default.

3. Because the argument about the license agreement is childish. After explaining in detail how, even if you were right, you're getting a threatening letter about the license agreement, a requirement to destroy all proof of reverse engineering and so on, she goes on to throw this gem:

"The main reason is that, when I see a spike in X, I try to get ahead of it. I don’t want more rounds of “you broke the license agreement,” “no, we didn’t,” yes, you did,” “no, we didn’t.” I’d rather spend my time, and my team’s time, working on helping development improve our code than argue with people about where the license agreement lines are. "

Well how about skipping that debate and fixing your fucking code, eh?

To put it in the same line as her argument, there are a lot of things Oracle can do in order to reduce the amount of false positives they get, such as fixing their disastrous security track record, improving their communication with the security community (no, blog posts like these don't count as communication for the same reason why hanging out a "fuck you" banner outside your office doesn't exactly count as better communicating with your colleagues, either) and so on. If people had better reasons to trust Oracle, there would be a lot less effort of this kind, too.

4. The analogies being used are demeaning to anyone who doesn't work in sales. Like this:

> Q. But one of the issues I found was an actual security vulnerability so that justifies reverse engineering, right?

> A. Sigh. At the risk of being repetitive, no, it doesn’t, just like you can’t break into a house because someone left a window or door unlocked.

Someone missed their first tech evangelism class, where they use that analogy for exploting, not reporting vulnerabilities.

Is it also wrong to call someone and tell them they left their door unlocked because their dog ran into it and it opened?

The whole things reads like "you guys are like the worst customers ever. We're smarter than you, we have lawyers and we knowz securitiez. Now shut the fuck up."

weland··on Firefox 42 will not allow unsigned extensions
Heaven forbid. The unaware, uninformed user is the bread and butter that the Internet businesses survive on. Tech-savvy users are bad bad bad. Protected, gullible users is what keeps the engines running.
weland··on Study of Ad-Blocking Software Suggests Wide Use
Personal, but fun anecdote: my girlfriend works in marketing and kept away from ad blockers for a long time, partly due to professional sympathy, partly simply because she wanted to see the ads, since she has a professional interest in that sort of stuff.

She eventually caved about a year ago and installed ABP. No matter how interesting it was, nor how much she sympathized with the folks working in media agencies, browsing the web simply became completely impossible, especially over an occasionally flimsy 3G connection.

Simple ads are "collateral damage" in this case, but even those can be worth blocking, e.g. to protect against tracking.

weland··on The Humble Programmer
> From this point of view, testing will show an absence of bugs - not categorically all bugs, but all bugs I care about.

You are assuming that all the possibly disastrous bugs are bugs you care about.

In reality, it's far more likely that several of the possibly disastrous bugs are bugs you cannot even think about, let alone care.

← PreviousPage 3 of 28Next →