HNHacker News
TopNewBestAskShowJobs

jabot

251 karma · joined March 16, 2017

submissionscomments
jabot··on Building on Rock, Not Sand
http://www.cvedetails.com/vulnerability-list/vendor_id-12001...

... and your point is?

EDIT: more recent bugs:

https://tls.mbed.org/security

These bugs include double-free and use-after-free - which are not covered by the original analysis, right?

jabot··on Building on Rock, Not Sand
I think the seL4 kernel rather proves that you can write safe haskell, verify it, and then transpile that to C.

That's different from directly writing C...

jabot··on Some Excel users pop F1 off their keyboards (2012)
Fair point.

In the context of the article we're talking about a highly specialized office environment, where bios/live boot environments etc. do not happen often. There, a software solution is useful and cheap.

In the more general case, and for those people that do not mind carrying their own keyboard everywhere, you are right. Especially since a keyboard that expensive probably lasts for a long enough time...

jabot··on Some Excel users pop F1 off their keyboards (2012)
I did not know that tool. Also, apparently it cannot map control keys...

https://superuser.com/questions/413384/how-to-remap-control-...

jabot··on Some Excel users pop F1 off their keyboards (2012)
I have an atreus keyboard, and I have changed the layout :-)

However, 350$ seems like a lot of money for a problem that should really be solvable at no cost in software...

jabot··on Some Excel users pop F1 off their keyboards (2012)
This should really be solved in software...

However, I remember trying to map capslock to control on windows a few years back. It involved becoming an administrator and entering an opaque hexadecimal key into the registry.

Simply popping off the key is probably easier.

Oh, on linux it boils down to "setxkbmap -option ctrl:nocaps", which doesn't require root...

jabot··on Signal’s Moxie Marlinspike calls out Telegram founder Pavel Durov
Yes. My bad, i meant signal.

m(

jabot··on Signal’s Moxie Marlinspike calls out Telegram founder Pavel Durov
Yes, someone below commented that telegram can now be built without dependency on the play framework, apparently since at least 6 months ago.

I think that is a good thing, kudos to them.

The thing that would make me really happy is a play-framework-free build on f-droid. I'm not holding my breath, though...

jabot··on Signal’s Moxie Marlinspike calls out Telegram founder Pavel Durov
Originally, I didn't install signal because i have a google-free android smartphone, and signal depends/depended HARD on the play framework, even though that's not necessary. [1]

> Marlinspike reiterated that the whole point of end-to-end encryption is that users no longer need to trust anyone if the protocol works — and Signal does.

But it depended on the google play framework - and I don't trust google. So where does that leave me?

EDIT:

To reiterate: As far as I can tell Signal itself is secure enough. However, the most secure chat app is insecure if it is run on an insecure operating system.

Now, I don't want to start a discussion about android security. But:

- The update situation is quite bad, leaving (for example) my phone with exploitable bluetooth

- Google itself ... could at least be coerced by a state actor into compromising anyone's privacy

With those two facts given, the practical difference between signal and telegram seems... less relevant.

[1]: Look at the "conversations" app. Yes, it is for XMPP, which is old and uncool - but it (a) doesn't use the play framework either and (b) uses very little battery on my phone, despite holding an open connection most of the time. That IMO proves that depending on the play framework is unnecessary in this case.

jabot··on Signal’s Moxie Marlinspike calls out Telegram founder Pavel Durov
Wow. Finally...

I wonder when we are going to see it on f-droid.

jabot··on GNU Taler
Please take a look at the demo they have set up.

They show an example micro payment system as browser plugin, where you pay for reading articles.

I am excited at the prospect of paying for articles without spying adware and coin-mining javascript.

Back to your point: Even in the EU paypal has still users, because it is still easier to use than SEPA - transactions.

jabot··on Show HN: No Coin – A browser extension to block coin miners
The gnu taler project might be a better solution, if it reaches adoption.

One use case that they have in their demo is micro payments to access web sites: https://demo.taler.net/en/

jabot··on GNU Taler
Yes, I would like to have some working open source micropayment system.

However, as far as i can see there is no bank offering a backend yet. Hopefully that will change soon.

It would have been great if the taler system had been usable at SHA 2017. We had to use weird, cheap and easily falsifiable plastic coins at the food court. Using taler instead would have been a really great tech demo...

jabot··on GNU Taler
On the other hand, it's not like handling physical cash is free, really.

Think about time spent counting, ensuring that there are no falsified notes, bringing excess notes to the bank and making sure there is change, etc.

I think it is quite feasible to create an electronic payment system that has comparable overhead.

Consider that there are existing electronic payment systems, e.g. electronic cash in europe, that already work and are quite secure (being smartcard-based)

jabot··on GNU Taler
I was at the presentation at SHA 2017.

The demo was nice, even though i did not understand any of the crypto. Although, to be fair, i didn't even try :-)

One important take away for me was that this project aims to replace paypal, not bitcoin. Its target is to establish an open source payment infrastructure that is better than paying with credit cards, paypal, etc...

jabot··on Why we should learn German
> Today, Britain needs no additional sympathy for Germany, they need sympathy for themselves, a will to live.

As opposed to brexit representing a "will to shoot your own foot"?

> The EU is unrepresentative, unproductive, and unaccountable. Nobody needs any more reverence for it. The EU is the worst French idea the Germans ever took to.

I think you fell for brexit propaganda... The EU bodies are either elected directly or sent by the member state gouvernments, not some unaccountable hereditary monarch.

> Germany is today a country where foreign journalists are chased through the street by communist activists, and where you need a license to post a video on YouTube.

You're nitpicking. Or would it be fair for me to say that GB is not safe for young girls (rotherham...)?

> Britons could stand to learn from Germany's mistakes and be more honest with themselves before it's too late for anyone to be honest with anyone.

I agree completely. How about a little less mass surveillance for a start?

jabot··on Undefined Behavior in 2017
> What about learning to understand English?

That's uncalled for, man...

> Of course there are still use cases where Algol derived languages are still unsafe, however those use cases are a tiny portion of what happens in C land.

On that I agree - there are many problems we wouldn't have if we were using, say, pascal or modula.

> Also you don't seem to know much about Ada given your GC remark, but here is some learning.

I'm sorry, I don't have time to watch that. However, I know that ADA has either GC or manual memory management (with the deallocation method explicitly marked as unsafe). Thus, as far as i know, constructing "use-after-free" in Ada is possible - which is undefined behavior (and that was my point).

jabot··on Undefined Behavior in 2017
Well, I don't know about half of these programming languages. However:

- ADA requires garbage collection

- Modula-2 and Object pascal have manual memory management, i.e.: "new" and "delete" - together with double-free, use-after-free, and dangling pointers...

I agree that C is by far worse, but please recognize that at least some of the undefined behavior problems are really hard to solve.

EDIT: Oh, and we haven't started talking about multi threading yet, have we?

jabot··on Undefined Behavior in 2017
"Very easy" - well, if you think garbage collection is easy...

And yes, if you want to allow manual allocation of objects and setting pointers to arbitrary objects, then your two choices are: 1) garbage collection 2) undefined behavior (use-after-free, double-free, dangling pointers, etc.)

jabot··on U.S. To Ban Laptops in All Cabins of Flights from Europe
That link does not prove anything you said.

There is nothing in there about laptops and/or flights...

jabot··on U.S. To Ban Laptops in All Cabins of Flights from Europe
> America has intel - and good intel from a raid - that shows that ISIS has the capability and intent to hide a bomb inside laptop batteries to blow up passenger planes containing lots of people.

Citation needed on that one.

Also... Adding a timer to a laptop battery bomb so that it goes off in the storage department is... probably very easy?

jabot··on A semantic model for a substantial fragment of C

    int f(int x, int y) {
       return x << y;
    }
This is undefined for SOME values of y, namely those bigger than 31 (on platforms where int is 32 bit; adjust where different).

This is caused by two facts:

a) The arithmetic operation should be compiled to a hardware shift instruction where possible

b) Different architectures do different things when shifting by an amount bigger than the word size:

- on ARM, the "y" operand is evaluated mod 32

- on x86, if y is greater than 31, the result is 0

jabot··on A semantic model for a substantial fragment of C
> Because function arguments are pushed in reverse order in C and funnily enough, GCC actually does that even though that's crazy.

Actually, pushing function arguments right-to-left means that the first argument ends up on top of the stack - and that makes vararg-style functions possible.

Think about it - a called vararg method must be able find the fixed arguments to figure out how many arguments it actually gets.

jabot··on The eigenvector of “Why we moved from language X to language Y”
Another thing which seems at least as important:

How many projects are _started_ in a language, and how many _die_?

Given p.e. Java - It may seem that there is a huge flow to go. However, if there are enough new projects started in java, then the number of java projects might still rise faster than the number of go projects.

jabot··on Principles for C programming
> One of the most evil parts is /etc/nsswitch.conf that injects at runtime arbitrary shared libraries implementing various parts of GNU C library. That leads to proliferation of undocumented file formats and protocols that are hidden behind library interfaces.

Are you opposed to dynamically linked libraries in general? Or do you simply oppose using them for name resolution? And how would you propose implementing NIS, LDAP/Kerberos, etc. without them (and without recompiling the libc itself)?

> For example, Linux still does not have a sane DNS resolver interface that is useful without GNU-C library. With move to containers that lead to many issues like inability to resolve link-local names etc.

Valid criticism. But that's not the GNU peoples' fault, IMHO - I mean, they have a working libc, it's not their fault that containers don't work with other libcs. (Or do i misunderstand you?)

jabot··on Principles for C programming
I did not know that the return value of snprintf is actually the length of the string that would be produced. I assumed I'd just get some error code - which would require re-trying with some larger buffer, thus the "loop".

Thanks for that :-)

jabot··on Principles for C programming
> They are "protected", yes, but their mere presence encourages people to use them. There's no reason to use asprintf, but glibc makes it available so some software uses it. That software is now non-portable.

I think asprintf is useful - it replaces an ugly "malloc-realloc-snprintf-loop"...

On exposing non-portable functions/features:

  - OpenBSD does it (pledge)

  - Freebsd/NetBSD do it (kqueue)

  - ... I'm certain other systems do too
I think _exposing_ non-portable features is ok, as long as you can't use them _accidentally_. Now, _if_ glibc fulfills that, the blame should fall on the (lazy) developer. If on the other hand glibc makes accidental use possible, then that is... bad for portability.

> Maybe in a blog post someday.

I would like to read that. :-)

[edit: formatting...]

jabot··on Principles for C programming
Thanks for the reply.

> GNU software is also often very bloated and overengineered, and often found in critical places like glibc.

My memory is rusty - aren't those features "protected" against accidental usage, with something like "#define GNU_SOURCE" needed before you include the headers? Or is that protection insufficient?

> Their coding styles are highly questionable and I disagree with a lot of their design decisions.

On the coding styles I agree. On the design decisions... I realize that this is a big and hard question (and that answering it probably amounts to another blog post) but could you please explain that, maybe with an example?

jabot··on Principles for C programming
So in your opinion the problem is "only" one of portability to non-gnu systems?

I thought the author also implied that GNU was technologically inferior and/or problematic. That would interest me...

jabot··on Principles for C programming
Yes, that is a good point.

However I thought that "blight" implies some actual technological inferiority. If there is some, I would like to know more about that.

← PreviousPage 3 of 4Next →