Recent submissions

Comment · 4 years ago
Comment · 8 years ago
It makes zero sense to look at nationwide average for Brazil to draw any conclusions without looking at per-state or per-region data.

Northern region has places with 60+ homicide rate, southern region has places with 3-4 homicide rate.

Take a look at this article: https://pt.m.wikipedia.org/wiki/Lista_de_unidades_federativa...

And this map with some of the highest/lowest homicide rates: http://55ca7cd0-f8ac-0132-1185-705681baa5c1.s3-website-sa-ea...

Both in Portuguese but I think it's not hard to make sense of the numbers (rate is 1/100k, map colours describe increase/decrease in violence, bottom lines show current top/bottom rates in cities with 100k+ residents).

Comment · 9 years ago
Nothing new on this, experienced programmers know the performance implications of data structures (ie, lists are generally bad regardless of the language/paradigm) and most complains about language itself can be read as "I'm not used to this way of writing code". Which is fine, but it is an opinion not exactly a fact or a piece of knowledge.

OCaml itself is not a new language and they are probably not going to break compatibility to fix minor syntactic issues now - even the new ppx system was introduced in a way to not interfere with the current syntax. TBH I find it a very minor annoyance compared to all other more things the language has to offer.

Comment · 9 years ago
Generally, a big improvement in ability to focus, and a sustained mental clarity throughout the day.

Entering in ketosis was also an watershed moment, like an epiphany, with a sudden feeling of increased awareness. But it's hard to describe precisely, and I guess YMMV.

Comment · 9 years ago
Comment · 9 years ago
Comment · 9 years ago
I would say it is not only valid but a very interesting method to deal with 0-day exploits and automatic scanners.

I have a number of services running at home, all outside the standard ports - sip is on 5099 (remote gateway is on 5088), SSH on 5225, etc - and the difference in the number of attempts to log into my box (and make international calls..) is huge - actually, I did not have a single attempt to put a call through my asterisk box since I changed the ports outside the default range.

Of course, it's not the only security measure, but I'd argue it can be as important and as effective as any other.

Comment · 9 years ago
Social welfare is not socialism.
Comment · 9 years ago
Having grown up in Brazil, where computers and parts are expensive - and in a time where the country was recovering from a galloping inflation and a failed attempt from the government to cut it back by freezing everyone's saving accounts - I can very strongly relate to this.

In fact, I think most brazilians of my generation which share same taste for building things are used to prototyping things with "a lot of duct tape" and reusing parts by disassembling unused/old toys, small machines/appliances, etc, and reusing what they can to make something new.

About the "gambiarra" term, it has a lot of connotations associated (some bad), but it also carries an idea of "subverting the original intent of the designer" or "subverting the intended usage of the parts/pieces". Which is why it fits perfectly in the idea of "hacking" for repurposing and recycling.

Comment · 9 years ago
> And I can actually not remember a single time when this was actually useful [..]

This tells a lot about what is wrong with software development and why industry is constantly plagued with security issues, misbehaving systems, buggy behaviour on edge-cases, etc.

There was a thread on HN some time ago about software engineering, and I remember mentioning that if "software engineering" was really to be taken seriously, we'd be using theorem proving to guarantee software is correct.

The best analogy is the bricklayer vs structural engineer: you can build something simple very quickly without really putting too much thought about soundness, but once you go past a few floors the risks are too big to be ignored - which is why we have the latter.

It usually boils down to cost - some people like to spread the idea that formal methods are sorcery or are limited in scope, specially people outside of computer science that have no strong background on mathematical methods, which sometimes do a disservice to the efforts of researchers and the ones that had exposure to the theoretical foundations of CS.

In any case, I don't want to go on a huge rant here - so if you don't know, it doesn't hurt to spend some time reading about modern tools and applications for this, maybe even playing with available tools, and.. who knows, maybe learn something new.

Comment · 9 years ago
Sorry, but I strongly disagree.

I can think of two very strong reasons to prefer awk over perl:

* busybox implements awk, so its (usually) available even on embedded platforms

* awk syntax is way clearer than perl, anyone that has a few experience in C + shell can figure out what is being done with some googling

awk is also powerful enough to separate output to different files, accumulate inputs, etc. And if you need anything more complex, there are tons of other languages to choose from then (including perl).

Comment · 9 years ago
It's an excuse that is commonly given - but easily avoidable if you care enough about the ones that pay your salary by buying processors from your company.

And not only that, but they did much more than the average Joe and essentially pin-pointed the issue for them. So yeah, inexcusable it is.

Comment · 9 years ago
Computer Science is a science field, therefore computer scientists usually see themselves as something more than an engineer - you don't want to apply the same knowledge over and over to make something exactly as the known knowledge tells you to do, you want to try new things and experiment with new ideas. That's the general mentality of the degree by itself.

Real "software engineering" would have to be done with Agda, Coq, or similarly tools - theorem provers that guarantee your solution is sound. It is done that way for software that absolutely cannot fail (eg, aerospatial). Unfortunately, engineers are usually too far away from this kind of knowledge - and sometimes even doubt this is possible or doable, even if you direct them to the research (!).

By the way, software engineering disciplines are usually depressive OO garbage, frameworks and all that non-sense that comes with excessive Java usage, and frankly never teach anything about reliability or even proving programs correct - which should have been their primary goal.

Comment · 9 years ago
This classification of "paradigms" is a bit off.

First, declarative programming is a generic name which includes a broad range of paradigms - from functional to logic programming. Logic programming is something that deserves a special mention and discussion, because there are a number of interesting and unique concepts that deserve a more in-depth explanation.

Second, "dependent types" is better understood as a feature of a language (or better yet, of a type system) than a paradigm by itself.

Some of the other "paradigms" also seem more like characteristics of languages, and not really something that structures the way solutions are expressed/understood.

Comment · 9 years ago
I suggest adding a "in US or UK" to the title.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton