skysight-inc/HackerNews huggingface dataset:
I'm trying to think of examples of overengineering in software and am having trouble from my own experience and extensive reading.

I can think of languages like C++ that facilitate what I would use a more derogatory term for like autoerotica. The site's example, taking Javascript seriously, almost always falls into this category.

In something like an automobile, using boxed steel everywhere would make the thing sturdy as hell at the expense of fuel economy and less objective things like aesthetics. A bridge design might be too expensive, or a material too heavy to facilitate the architectural vision. Etc.

In software this term is used where the software is actually under-engineered, like a shoddy deployment without any consideration of consequences. Technology like a message queue or distributed database are the victims of poor understanding or oversold claim. Almost always the real problem is clueless management and a symptom of fad driven architecture.

So going back to the materials example.. What software wouldn't benefit from end to end back pressure? Circuit breaker fault management? Memory safety? Formal proof? None of these things should have any bearing on the user, and there are a lot of companies could afford to figure out how to make one or more of these things have minimal effect on front side of SDLC with very positive effects on the long tail. Software is almost to fluid and inexpensive to be over-engineered.
It's not risk-averse, it's being allergic to batshit crazy.
Literally millions of people ride ATVs and snowmobiles.

Where I live there are more miles of snowmobile trails than there are paved roads, and there's a lot of roads.
it seems like you could use facial recognition and face tracking to identify more data samples from video. if you recognize 1 sample go back and forth in time and mark the face closest in space as another sample. at 30 fps you would have 1799 new samples if you just find a single match in one frame for instances.
I see they haven't done 25 GB / 100 GB stuff yet.
The manufacturers of devices should be held responsible for the security of the devices they sell. This is not different from what they are required to do for the electrical and physical parts of the devices. Pass some standard tests that would prevent at least the most obvious vulnerabilities, default passwords and other bad practices. Run metaexploit against it, etc.

This would raise the attention to secure software development also in other areas of the IT business. Sure, it costs more upfront but we gain as we suffer less from this kind of attacks.
WET means that you're using too many Widgets that Excite them Transistors (WET). Stop using them!

Also, when you have an abstract data type, and you hav a memory leak, it is called a leaky abstraction.

Your coworker is a great person and you should try to convince him to adopt you as only he will show you how to be a great boy!

Now get outta here and go play!
Who is the "manufacturer" in the case of FOSS?
That last part's a wide logical leap from anything implied above. No one implied immunity. The suggestion is that the law should view differently those businesses which have the operational capacity and capital to handle strictly abiding by regulatory burdens firstly, and secondly whose scale is high enough that their negative social impact is truly high. In the world of property, that's the distinction between a landlord that owns hundreds of buildings and a family that owns a house that's split into three units.

In my neighborhood, for example, it's rare for houses to be renovated fully permitted because the entire permitting process is designed around large scale construction projects. There's an entire shadow economy that goes just to paying thousands to architects, expediters, inspectors, licensed pros, etc., in addition to the actual work. That's just one example. The end result is that people don't do it, because they can't afford it unless they have a lot of capital.

Now the law already does this distinction I'm mentioning: for example a three or four family home has to be registered for the rentals to be legal, a two-family doesn't. Also the code is different, and more broadly the Multiple Dwelling Law treats them differently.

Going back to AirBNB, concretely I think a good compromise would be to limit the number of units for rent to one, and take down the ones that have turned rental buildings into hotels. People who own big rental buildings do these things. What's left are co-ops and condos. Co-ops have self-regulating powers to evict people. Condos, which someone here complained upon, are a different story (even if they have house rules with fines, I don't know how that's enforced).

The 'knocking on the door' comment was an attempt to try to separate the large from the small. As for myself I'm always above board and legal, because I'm risk-averse, but my risk-averse nature also means I don't rent to anyone I don't know or trust. Partly because of comments about everyone needing sticks. Ironically I've been on that side, which is why I decided I didn't like being a tenant anymore. I haven't used AirBNB, but plan to do so -legally. I do have a right to feel wronged by the passage of the law, especially when I hear all the anti-AirBNB comments not apply to my situation (eg. 'disruption to the residents').
There is rusti https://github.com/murarth/rusti
Most information is only available to the person whom it concerns, or close family members. Some information, such as land ownership, is publicly available.

If you're printing out a document for the purpose of proving something specific to someone else, you can often request that irrelevant information (such as ID numbers) be redacted for privacy.
Thanks.

Question for the C folks. The author seems to have reimplemented functions such as strlen, memcpy, and atoi in 'bot/util.h' instead of using the stdlib. Anyone know why?

https://github.com/0x27/linux.mirai/blob/master/mirai/bot/ut...
Stupid question.

Do Japanese believe using the courts is a cultural nono?

In the USA there are definitely two types. Those that sue and those that feel it is sleazy or wrong.
Whoever puts the FOSS on the device
Thank you, that is actually a great picture!

Most pictures of the rovers fail to depict the difference in size between Sojourner (the Pathfinder rover), Spirit/Opportunity and Curiosity which is the largest to date.

Besides rovers, on the surface there are also several landers, sent by USA, USSR, UK and ESA.

A complete list of human made objects landed on extra terrestrial bodies is here: https://en.wikipedia.org/wiki/List_of_landings_on_extraterre...

I suspect the above link just made someone's week end ;-)

UPDATE
On a separate note, it would be very interesting if future (manned or unmanned) missions could visit artifacts sent by previous missions and assess their state / decay over time. The only example that I know of is Surveyor 3 (moon unmanned lander) which was visited by the Apollo 12 mission a couple of years later.

For some reason, my dream is one day to be able to travel to Mars and visit Spirit in its final resting place at Troy[1].

[1] http://www.jpl.nasa.gov/spaceimages/details.php?id=PIA12205
> Perhaps delivered eventually (delayed).

This is how email is designed. Mail servers will continue to try to deliver for quite some time before giving up.

The email transmission protocol was designed way back in the day of intermittent internet connections, so it has already backed into its design the concept of retry some number of times before giving up.

FWIW, twitter uses google as their email:

twitter.com mail exchanger = 30 ASPMX3.GOOGLEMAIL.com.
twitter.com mail exchanger = 20 alt2.aspmx.l.google.com.
twitter.com mail exchanger = 30 ASPMX2.GOOGLEMAIL.com.
twitter.com mail exchanger = 20 alt1.aspmx.l.google.com.
twitter.com mail exchanger = 10 aspmx.l.google.com.

So anyone who had twitter's MX records cached in their local DNS servers would never have noticed a problem from the dyn outage (as least not until the cache expired).
reminds the infamous ballmer peak:
http://xkcd.com/323/
JavaScript to Block Free Emails (Gmail, Yahoo) and Allow Business Emails in Forms
Convenience is a double-edged sword.

Witness the results of autorun on Windows removable media and Javascript in PDFs.
If you do X, then Y is secure unless there are other dimensions to the problem, e.g., an airgapped network in a Faraday cage is secure from data exfiltration via radio emissions, but not necessarily via optical or acoustic emissions.

That said, the NSA recommends multiple encryption, for instance using "inner" and "outer" VPN gateways:

https://www.nsa.gov/resources/everyone/csfc/capability-packa...

This sort of thing should be standard protocol for critical infrastructure, such as water supply, power grid and healthcare systems.
It seems to be a problem in some abstract sense to a certain group of people, but the reality of widely available internet and all the content one chooses for gorging seems to belie the idea that it's bad in a concrete sense
Time Warner Cable is a telecom company unaffiliated with Time Warner Inc
The graph he's showing at the point you linked to shows the max cost around $550k to Mars, which fits with some extremely simplified ballpark math for making the trip efficient:

Start with ~$30 million (based on "several tens of millions") to get a person to orbit using current tech. Current tech doesn't use reusable rockets, and the cost of building a rocket greatly exceeds the cost of the fuel for the launch, so we'll assume fuel costs are 0. If you make a rocket that you can reuse for 10 launches, your price tag is down to $3 million to get a person to orbit. The next step is to make a bigger rocket: currently the Soyuz rocket is the only rocket taking people to the ISS (assuming this is roughly what you mean by getting someone to low Earth orbit), and it can only take 3 people at a time[0]. If you make your reusable rocket big enough to take 100 people at a time, your price tag goes down ~33x to $100k to get a person to orbit. Of course, a bigger rocket will probably cost more to make than current "small" rockets -- but a big reusable rocket would have to cost 330x more to build than a modern small rocket for future seats to cost ~$30 million per ticket.

So even the first trip to Mars should be well under $1 million per person as long as they make the rockets big and reusable.

[0] http://www.nasa.gov/audience/forstudents/k-4/stories/nasa-kn...
There is an irc snippet in the source - https://github.com/0x27/linux.mirai/blob/master/dlr/release/...

From the full mirror linked below
C2C – False Sharing Detection in Linux Perf
Can someone ELI5 how does malware infect IOT devices ?

The firmware which is there can only be upgraded from the OEM sites right ? So unless there is a way to affect the firmware from outside, how will a malware affect it ?

And what can I do to secure an IOT device if I have one ?
It's pretty much same in ex-USSR countries. Even if you get divorce papers in court, you would still need to go with them to registry office and that's where divorce would really happen.

The downside is, that sometimes you would need to go to that exact registry office where your marriage was registered, name changed or your child born and it can be thousands of kilometers away from where you live now.
Yes, privacy is a problem. Of course not just anybody can look up anybody else, but the workers in the town office (who have to issue these forms) or police officers can look up a lot of information.

(In theory, they are prohibited from looking up information unrelated to their duty. In practice, I'm not sure how well that is enforced.)

On the other hand, as kijin said, government is going to have that information anyway. Better put it to some use. So it's a tradeoff, and the system has problems, but for the most part it's a reasonable tradeoff, IMHO.

(For example, all the current debate about "voter suppression" (aka voter ID law) in the US strikes me as completely bizarre. In Korea, if you're in the voting age you have a government-issued ID. You use that ID card to vote. End of story.)
> . Is it to be avoided if at all possible, or should I go there any time the 'safe' part of the language is making it difficult to express what I want?

The main reasons to use unsafe code are when you're doing FFI and have to regrettably talk to C/++ libraries, or when designing new abstractions with a safe API boundary. It's tricky to ensure that the former is safe since you eventually have to trust C++ (but then, that's not Rust's fault). It's not hard to ensure that the latter is safe. Looking at a page of code and ensuring that it can't cause segfaults is a much easier task than doing it for the entire codebase.

This is almost all the unsafe code out there. There's a bit of it used for doing manual optimizations. When Rust doesn't let you do what you want, often there are abstractions like RefCell that have a small cost that you can use (and they contribute to the overall safety). In case this happens in performance critical code, you can use unsafe again, but this is very rare.

In Servo, for example, almost all of the unsafe code is of the first two kinds. I've been hacking on Servo for years and didn't write much unsafe code at all -- when I did, it had to do with talking to Spidermonkey, and even that was pretty rare. More recently I'm working on integrating Servo's style system into Firefox (which is C++), and only now have I been regularly writing unsafe code. Even for this project the unsafe code I'm writing abstracts away the inherent unsafety of Firefox's C++ so that others can talk to Firefox with safe Rust code.

But many projects have no unsafe code at all. It's not that common to have unsafe code.

> it was difficult for me to find performance characteristics of the underlying abstractions and std library (for example, are algebraic data structures just tagged unions or does the compiler do more fancy things with them? What about iterators?).

Note that a C++ book won't help here for C++ too. What is a switch compiled down to? Does it use a jump table? :)

But yeah, it would be nice to have a thing for this. I don't think it belongs in the official book, but it should exist :)

ADTs are tagged unions. When non-nullable pointers are involved sometimes the tag is stored as a null pointer (e.g. `Option<Box<Foo>>` is a single pointer, and is None when null. Aside from that, nothing fancy.

Iterators compile down to the equivalent for loops. I can't think of any stdlib iterator which implicitly allocates; they all operate on the stack. In general these are just zero-cost abstractions, they will compile down the the code you would have written with manual loops. This is a recurring theme with the stdlib and even crates from the ecosystem. "extra" costs for abstractions are eschewed in Rust and will often be documented when they exist. So as a rule of thumb assuming that a random abstraction doesn't have an overhead unless explicitly mentioned is good.
While this falls under #2, I think its a good point worth mentioning about using/trusting http over https.
Can you third grade down your comment please?

I find your language to be of high interest like you had a "dUH" moment - which I am ignorant to get myself.

The Sons rays meat
I believe not all embedded systems have the c stdlib.
> A famous comic using the attempt of building a tree as the analogy of what is wrong in each part of the traditional development lifecycle

The project in the comic actually appears to be building a tree swing. I'm sure this was just an oversight on the author's part but if anything it reinforces the point the comic is making.
Cloud Integrated Storage (CIS) – Overview, Advantages and Challenges
Or smodem. One could chat during any data transfer.
And yet the people your coop vetted are the very ones bring in AirBnB'ers...
Fork YOU Sure, take the code. Then what?
Remember that this target IoT devices, where diversity is much higher than it would be for desktops or servers. the build scripts shows the targeted architectures:

i586 mips mipsel armv4l armv5l armv6l powerpc sparc m68k sh4
There is a strange push in America to go to war with Russia. Of course no one comes right out and says this, because it would be counterproductive. But every time something bad happens to democrats, it gets blamed on Russia. Lots of non-sequitur bellicose talk about Putin all the time.

It reminds me of the run up to the Iraq war. Seems bad.
So, as your ISP, I'm going to be held responsible for the actions of you, my customer/user?

Okay, if I'm going to be liable, financially or otherwise, well, then we're gonna have to make some changes around here.

First off, I'm going to have to heavily filter and restrict what traffic you can send out to the Internet. What isn't filtered or restricted is going to have to be inspected, logged, and retained for a period of time.

Next, because I can't be certain that you're RFC3514 compliant and that at least some of the bits you're sending aren't malicious, I'm going to have to prevent you from sending out any encrypted traffic. Instead of allowing you to use any DNS servers you want, you're going to have to use mine (DNS is heavily abused for DDoS attacks). Outgoing e-mail will be automatically redirected to my internal smart host (STARTTLS will be blocked, by the way) and I'm gonna have to log, read, and retain it all. HTTP traffic will be transparently proxied and all requests and responses will be logged and retained.

That's just the beginning. Are you sure this is what you prefer as your "solution"?

As a network operator, I believe that your ISP should be nothing more than a dumb pipe and allow the bits that you send to pass through freely. As an ISP customer, that's how I want my ISP to act. (If something gets reported or I "notice" you for some reason then, sure, I'll look into it. Otherwise, I try to fuck with my customer's traffic as little as possible.)

I'll agree that there is certainly a problem, but it is not because of ISPs.
https://github.com/jonathandturner/rhai ?

It doesn't do exactly this, but it's similar I think.
You mean "egress", and that's only helpful in cases where the source is in fact spoofed. With a large and widely distributed number of small devices, there isn't much of a need.
Because you cannot rely on some chintzy IoT device to have dynamically loadable libraries. In all likelihood, they don't. But let's assume they do have loadable stdlib, would would you trust the integrity of your botnet to dozens of poorly designed IoT devices?
It actually would be pretty clever given that once hacked you can close the door and keep out other hackers. Step 1. Make a device with a wide open door. Step 2. Hack all these devices and close the door. You get easy deniability and a massive botnet.

Having said this I suspect that this is not what has happened and it is most likely just a case of complete incompetence.
I think Musk mentioned it somewhere in the presentation, but the initial plan for shielding if you're aware that there's going to be a solar flare is to angle the spaceship so that the engines are between the Sun and the crew compartment, and then have everyone packed near the water tank... or something along those lines (it might have been in response to a question in the Q&A time afterwards; I don't remember).

I don't know that they'll have this on the first trips there, but I'd guess that magnetic shields might eventually be a standard component:

http://space.stackexchange.com/questions/3772/how-much-power...
But once, we were here.
I think a lunar colony would be great but helium-3 isn't a good reason for one.

If you can get net energy by fusing He3, you can also do it by fusing deuterium, which is easier. And the end product of deuterium fusion is He3! (Half the time directly, the other half producing tritium which decays to He3.) So instead of sifting through millions of tons of dirt on the moon, you can just make He3 on Earth and gain energy in the process.

Deuterium fusion produces neutrons but they're lower energy than D-T neutrons. Fusion startup Helion (funded in part by YCombinator) is working on a hybrid D-D/D-He3 fusion reactor, and says only 6% of the output energy would be as neutron radiation.
Bigger and badder.
Data transfer over QR codes http://stephendnicholas.com/posts/quicker-video-qr-codes
You always have to trust the provider. If you don't authenticate the message you also have to trust every carrier.
It certainly is exciting. Tech that began by replacing discrete logic ICs (TI 7400 series) is getting powerful enough to pack a computing punch.

Look up systolic array architectures for matrix multiplication if you're not already familiar. They play nice with FPGAs (which are design space limited in comparison to ASICs). And can efficiently implement algorithms that are prone to combinatoric explosion by amortizing expenisve off chip memory accesses over multiple operations as the data passes trough the sys array.

If the FPGA manufactures want to open the advantages to all comers they'd make their design software free (as in beer, not freedom) an pAy for it with silicon sales.
In the cases I've encountered it, the term over-engineering in the context of software development is more often used to refer to building in allowances for future functionality rather than for making the software more robust. Although I have seen the latter as well - for example massively increasing the complexity of some part of a distributed system to eke out a theoretical eight 9 of availability.

The concept of over-engineering has been co-opted more recently by Agile zealots as a major bogeyman to the point where I've seen people trot it out to argue against structuring code to account for needs that are several weeks out because "It's not in THIS sprint! YAGNI!", with the predictable result that several weeks later it creates more work to restructure the code and when invariably there isn't time for that, leaves a worse architecture in the long-run as the needed functionality is bolted on.
I'm the same with my interactions with Bombardier. Every time I've come into contact with them in business, or through networking functions, I've noticed what a good group of people they've been.
This engaging article on overengineering is 2.7 MB in size, and takes over a hundred web requests to render.
See also this post: https://news.ycombinator.com/item?id=12166332#12170616

Link reproduced for clarity:

[1] http://thruglassxfer.com/

[2] Demo of above: https://www.youtube.com/watch?v=2_8GlFdlb0Y

[3] Same idea, some hackable code: https://github.com/Neohapsis/QRCode-Video-Data-Exfiltration
Isn't this system similar to the one we have in France (and other parts of Europe: Livret de Famille.

https://en.wikipedia.org/wiki/Family_register
European banks risk lagging Wall Street in blockchain race
I'm a depressive type and can't bring myself to watch it, for basically the same reason I don't look when I drive past a car crash. Sometimes people give me guff for it too-- "but it's so good!!" I think I'll live if I don't see one tv show. Even a good one. I'm negative enough about the state of the world and its future as is.
Interesting article. Though, of the four examples of privacy, I think three are better described as autonomy or self-direction.

* "privacy within team boundaries" -- given a problem, allowing teams to independently arrive at a solution without oversight by management

* "privacy in decision-making" -- seems effectively equivalent to "privacy within team boundaries"

* "privacy about time" -- allowing teams to manage their own work schedules

The one that appears more related to privacy to me is "privacy limits on employee data", where some employee performance measurements are provided to teams to help employees to improve but not to management, those who evaluate employee performance for salary or position changes.