Are Those Spidery Black Things On Mars Dangerous? - <AUTHOR> http://www.npr.org/blogs/krulwich/2012/10/02/162147810/are-those-spidery-black-things-on-mars-dangerous-yup <comment><USER2> This is awesome! I love that Mars continues to baffle, astound, and fascinate us. Sometimes our 21st century hubris makes us think we are reaching some kind of peak knowledge, but moments like this prove that we yet know so little.

In particular, the geology of Mars in an incredibly fascinating topic. If you're looking for a good primer on the subject, I highly recommend _Mapping Mars_ by Oliver Morton.

 _Mapping Mars_ contains a history of the science, highlighting the major contributors to the field and augmented with interviews from such notable science fiction authors as Kim Stanley Robinson. A good discussion is, for example, how much water exists on the planet. Consensus is now that there is water somewhere, but exactly how much water, where it sits, how it flows: great questions that are attacked with lucid explanations.

Hats off to NASA and human curiosity for this grand adventure.

<comment><USER3> In the Mars trilogy (Red Mars/Green Mars/Blue Mars) by Kim Stanley Robinson, the term "areology" was coined for describing geology-on-Mars. I always thought that was a great word.

</comment></comment><comment><USER4> Pardon my idiotic question, but why don't they just drive over there and check them out? Or are they just in a totally different place than the rover (like asking why someone in North America can't just hop over and check out Uluru)?

<comment><USER5> Mars is an entire world, it's a big place, we only have two rovers on the planet and they can travel at perhaps 10 km per _year_.

<comment><USER6> Why are there so slow? Is this an engineering decision or a limitation of the environment they need to operate in?

<comment><USER5> It's a combination of a scientific and engineering limitation. The Curiosity rover's power source generates an average of about 1/6th of a horsepower of electrical power. In practice this is used to trickle charge the batteries of the rover over night and provide slightly higher total power during the day for driving, even so we're talking about a fraction of a horse power to drive a nearly one tonne vehicle the size of an SUV. The Opportunity rover is smaller and lighter (180 kg) but also solar powered and so has much less total energy to work with per day.

If the goal were merely speed we could build faster rovers but to do so would mean removing a lot of scientific instruments so we'd be able to get to different locations but then we'd only be able to do a tiny amount of science compared to what we can do with Curiosity or Opportunity.

<comment><USER7> Why can't they just use nuclear power? Didn't the viking probes from the 70's use that? I might be wrong, but I thought that curiosity actually did use nuclear.

<comment><USER5> Curiosity does use a nuclear power source (an RTG) but it only provides a little over 100 Watts of power. As I said, the primary use of the RTG is not to drive the rover but to power the batteries over night to drive the rover during the day. Even so, this still amounts to less than one horsepower available to drive a nearly one tonne vehicle.

</comment></comment></comment></comment></comment></comment><comment><USER8> This stuff blows me away. I think, holy crap this planet has all sorts of real exo-planet kinds of weirdness. I love the idea of reverse icicles although for the life of me I can't imagine what would hold them up once the CO2 gas has vaporized out.

One part of me wants to build another Curiosity style rover and catch the next Earth/Mars orbital cycle and put it down near stuff like this.

I can believe folks would find this as inspiring as looking back at the planet from the Moon.

<comment><USER9> Is there any chance they could be plants? relying on underground water reserves and appearing every spring to throw around some pollen before slinking back into the cool darkness.

<comment><USER8> I'm not a xenobiologist so I couldn't quantify the relative chance of them being 'plants'. But this is the kind of stuff we can speculate on.

First, we'll need to be a bit loose with our definitions since 'plant' means a very specific kind of thing.

So if we define a 'plant' as a chemical process which creates structure in the presence of certain chemicals such that a transformative chemical reaction is enabled whereby energy in the form of sunlight or heat is used to build additional structure. Then we can see if there is a chemical mix that would have this characteristic output.

It is critical to note though that this would also classify a stalactite as a 'plant' which converts calcium carbonate into 'structure' (in this case rock) by exploiting a transfer agent (water).

Interesting questions would be "Why vanish in the winter?" what ever hypothesis we come up with has to include the observed effect and behaviors. This is my biggest issue with my 'frozen geyser' hypothesis, it seems like they would continue to exist during winter.

Finding better imagery from HiRise would be good too, in particular it would be useful to know if these were vertical structures or not. that would show up as shadows.

Lots of fun to think about.

<comment><USER9> Why not literally a plant? Like leafy, relies on water, comes from a small seed, reproduces via pollen/wind, based on a cell structure.

We have plants in the desert here on Earth that blossom once every X years or decades. Is there a reason such a "plant" could not have survived the harsh later years of mars post surface water?

Bonus idea: if these are plants relying on ground water, their location would give away the position of said ground water. They could be mapped and their spacial density used to find source pools for humans to tap.

<comment><USER8> Because plants, of the leafy green variety, have a complex evolutionary history with lots of side trips (like lichen and mold and algae). Further earth based plants are based on the same basic DNA structure as earth based animals.

So while it is not "impossible" that an equivalent to plants evolved into exactly one species or micro-eco-system which exists in this one place on Mars, the chance that this occurred and didn't cause the whole planet to have evidence of their existence is really really small.

But don't let that discourage you from trying various plant hypotheses. The way to pursue that is to then try to figure out what things would be true if they were plants, and see if any of the data we have from Mars would allow you to get closer to proving or disproving your hypothesis. The last time I checked you could ask for and get the a copy of the raw data from JPL if you asked for it (well not some 'give me all your data' kind of ask, but "I'd like to get HiRise imagery from this part of the planet ...")

<comment><USER10> They could have come down from an external source.

<comment><USER8> Yes, they could. But can you include some reasoning with _how_ they would have done that? Some sound more likely than others.

The panspermia theory [1] is based on the idea that perhaps some forms of life could exist in space as it transits from place to place. One of the things that has always bothered me about that hypothesis is the orbital mechanics. Which is to say if you posit a supernova or other energetic event that accelerated a planet (or fragments of that planet) into space, and somehow the life on those fragments survived both the radiation and the effects of vacuum on volatiles, and then it arrived in our solar system, what would the relative velocities be of that material with respect to our planets? And then when that material impacted a local rocky planet how much energy would be released and how would it survive that?

The 'primordial soup' theories have thus always held more interest for me as being more probable. With papers like this one: [http://arstechnica.com/science/2012/10/simple-reaction- makes...](http://arstechnica.com/science/2012/10/simple-reaction-makes-the- building-blocks-of-a-nucleic-acid/) lending a bit of narrative around how it might have occurred. But the primordial soup theories also need evolution to get from a happenstance chemical mixture into something like multi-cellular organisms.

So follow your chain of reasoning and see what questions it leads you to:

"down from an external source" ...

From where?

How did the plant get there to come down?

What is needed to survive a fall from space? At what velocities?

Etc.

[1] <https://en.wikipedia.org/wiki/Panspermia>

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> A good image of the formations is on Wikipedia:

[http://upload.wikimedia.org/wikipedia/commons/0/0c/PIA11858_...](http://upload.wikimedia.org/wikipedia/commons/0/0c/PIA11858_Starburst_Spider.jpg)

<comment><USER12> That looks _so much_ like mold.

<comment><USER13> It really does. However, one should keep in mind that humans have overzealous pattern-matching engines. We are really good at erroneously seeing things that we recognize.

<comment><USER14> And when it comes to Martian geography, we are hopelessly bad at judging scale. It's very easy to be several orders of magnitude off without a guide or legend.

<comment><USER15> _Google Mars_ , the hero Gotham deserves, but not the one it needs right now.

</comment></comment></comment></comment></comment><comment><USER16> "Surely I'm not the only one thinking spiceblows..."

\-- a commenter on that page, Melissa Swanson

<comment><USER17> context: <http://dune.wikia.com/wiki/Spice_blow>

<comment><USER18> I'm waiting for the sandworms

<comment><USER19> So THAT'S where all the water on Mars went...

<comment><USER20> The spice must flow

</comment></comment></comment></comment></comment><comment><USER21> > they might be colonies of photosynthetic Martian microorganisms, warmed from > the sun, now sunbathing in plain view.

That's incredible. Is that really possible? I wonder why the rover doesn't check them out? It seems weird it's digging through soil looking for chemicals possibly related to life when there's potential life out in plain view.

NASA has some very strange priorities.

<comment><USER22> When planning a landing site for each rover mission, NASA considers a variety of factors and makes a best-guess as to the fruitfulness of each site from a scientific perspective.

Clearly a team of brilliant scientists has not failed to consider the possibility of exploring these strange spidery features, but they have decided against it for the time being.

It doesn't really make sense to assess their "strange priorities" as an outsider looking in with very limited knowledge as to how their decision making process actually works.

<comment><USER23> Yeah; just for starters, such a sandy area seems like a serious risk on its own to a rover, never mind the risk actual geysers would pose. The geysers are interesting, but are they worth jeopardizing an entire rover expedition for?

<comment><USER24> You don't have to use a rover. What about a quadcopter or balloon filled with heated gas?

<comment><USER25> Good luck.. the highest atmospheric density on Mars is equal to the density found 35 km above the Earth's surface

<comment><USER26> I think a latex balloon filled with hydrogen could achieve positive buoyancy. Just bring a little bit of water and you can make your own hydrogen.

<comment><USER11> I don't know of many latexes that are springy at -100 C.

<comment><USER26> Touché. See Camper Bob's response for something that would make more sense.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> Depends on your point of view I suppose, all of Mars is dangerous (100% lethal!) if you're a human.

<comment><USER28> Unlike Tellus where nothing is lethal.

</comment></comment><comment><USER29> Could they not simply be rocky outcrops that are covered and uncovered by seasonal sandstorms?

<comment><USER30> If that were the case, they would cast shadows.

<comment><USER31> I see some shadows in the bigger dune at the bottom-left (crossed by the yellow line).

<comment><USER29> Yeah these do kind of look like they have shadows. Plus a rocky outcrop could still be fairly flat and cast minimal shadows. I say it's rock and call Occam's razor on the other theories.

</comment></comment></comment></comment><comment><USER32> It would seem David Bowie knew about these way before the rest of the world

</comment><comment><USER33> Nope, black spidery things on Mars aren't dangerous at all. [http://images2.wikia.nocookie.net/__cb20100117081507/babylon...](http://images2.wikia.nocookie.net/__cb20100117081507/babylon5/images/c/c8/Mars_Dig_02.png)

</comment><comment><USER34> Dangerous how? Toxic to humans? At risk of unsettling sand around a rover/human? Is the question asking if they are something that would consciously attack someone?

Everything is dangerous. The key to mitigating that danger is planning ahead for it. A leaf seems harmless, but infection from a cut the leaf gave you could kill you. A marshmallow is fluffy and soft, but if you swallow it without chewing, it could expand and suffocate you.

Asking if something is dangerous is ridiculous. Asking what it is and how to safely handle it is not. The article does a much better job portraying this than the headline does.

<comment><USER35> Betteridge's Law of Headlines is an adage that states, "Any headline which ends in a question mark can be answered by the word 'no'".

<http://en.wikipedia.org/wiki/Betteridges_Law_of_Headlines>

<comment><USER36> We know.

[https://www.google.com/search?q=site:news.ycombinator.com+be...](https://www.google.com/search?q=site:news.ycombinator.com+betteridge&tbs=qdr:m)

It's been mentioned 19 times already in the last month according to Google.

<comment><USER37> I didn't. First time I read about it.

Either way it doesn't seem very constructive - or gentlemanly - to downvote an informed - and depending on the reader informative - comment.

<comment><USER36> I downvoted because it's not relevant to its parent. As freehunter points out, the answer's not "no" it's "please refine the question". Perhaps you found my mini-analysis on the frequency of Betteridge references informative, in which case I welcome your upvotes.

</comment></comment></comment></comment></comment><comment><USER38> The top comment here and on reddit is the same!! Either kaax is martian, or just a plagiarist. Here's the link:

[http://www.reddit.com/r/science/comments/10vrag/are_those_sp...](http://www.reddit.com/r/science/comments/10vrag/are_those_spidery_black_things_on_mars_dangerous/?already_submitted=true)

<comment><USER39> It is a spammer that takes HN comments and reposts them at Reddit. Someone should report that behaviour at <http://www.reddit.com/r/reportthespammers>

<comment><USER38> I checked that guy's profile, he's not a spammer, just a karma whore.

</comment></comment></comment><comment><USER40> It feels weird to realize that according to Mars, we're the aliens invading the planet. Makes me wonder about all the extraterrestrial "rovers" on our planet.

</comment><comment><USER41> Without a scale those images are largely useless.

<comment><USER36> I can't quite figure this site out, but if I've got it right, should be around 10 miles.

<http://hirise.lpl.arizona.edu/ESP_024736_2565>

Edit:

Ahah, here we are, about 1km:

[http://hirise- pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_024...](http://hirise- pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_024700_024799/ESP_024736_2565/ESP_024736_2565_MIRB.abrowse.jpg)

</comment></comment><comment><USER42> This is such a trip! It kind of pisses me off that I'll die long before we gain a thorough understanding of this kind of stuff.

</comment><comment><USER43> Crazy, looks like vegetation from 200 miles up but if the theory regarding CO2 is correct that is pretty crazy!

</comment><comment><USER44> WTF. How have I not heard about this, until now?

</comment><comment><USER45> only Ziggy Stardust knows

<comment><USER46> Him and Andrew Basiago

[https://www.youtube.com/watch?v=iwE8m50sbWk&playnext=1&#...</a>

</comment></comment><comment><USER47> David Bowie has built a fortress of solitude out of these at the Martian South Pole.

<comment><USER17> context: [https://en.wikipedia.org/wiki/The_Rise_and_Fall_of_Ziggy_Sta...](https://en.wikipedia.org/wiki/The_Rise_and_Fall_of_Ziggy_Stardust_and_the_Spiders_from_Mars)</comment></comment>


Flip Founder: People Still Want Single Purpose Devices - <AUTHOR> http://gigaom.com/video/flip-founder-people-still-want-single-purpose-devices/ <comment><USER2> People are willing to pay a premium for a high-end single-purpose device (eg: a Nikon camera or a Sony professional camcorder).

But they don't need a cheap single-purpose device. Especially since their smartphone (which they are carrying anyway) is good enough.

I bought a Flip camera back in 2008, but it was the first and last one I ever bought. Flip and Cisco's mistake was thinking that the brand would carry the day.

<comment><USER3> _But they don't need a cheap single-purpose device._

I do.

 _Especially since their smartphone (which they are carrying anyway) is good enough._

No it's not.

I have a G2, it plays music, movies, yada yada yada. So it would make a usable Mp3 player. Except, _because_ it is a multi-purpose device, the controls for Mp3 playing are intertwingled with controls for taking and making calls, reading mail, launching other apps. That makes it really awkward to use without looking at it.

Stuff like pausing or skipping a song is iffy if I try to do it while driving or running. Yeah, I know, I could probably get some special cord or something that gives me tiny controls that are slightly less awkward to use without looking.

However, I have a nice Sansa MP3 player. Takes an SD card so I have around 6GB for music on a $50 device. It's _really_ easy to use blindly.

In fact, I have about five MP3-player-only devices. One is for audio books. One is for practicing violin. One has white noise to help me sleep. They're cheap and do just what I want them to do. That's a big win.

<comment><USER2> You're right, a single-purpose mp3 player has a lot of utility for many of the reasons you say.

* Easy of navigation when exercising/driving. * Cheap enough so you won't cry when it dies. * Cheap enough so you can buy multiple for different purposes.

In fact, my favorite MP3 player of all time is a 2nd Generation iPod shuffle. It's lasted for years, it survived going through a washing machine, and it's tiny.

OTOH, I'll argue that a good MP3 player isn't a "cheap single-purpose device", it's just a quality single-purpose device that happens to be inexpensive. The price of all MP3 players are so low that the difference between a really "good" one and a really "cheap" one is 20 bucks.

You can't say the same thing about still or video cameras. The "cheap" Flip camera has less utility than the camera on my smartphone for one reason only: I always have my smartphone on me.

I think stand-alone GPS devices are the next thing that will be obsoleted by smartphones. I don't see TomTom or Garmin being competitive with a smartphone with the same satellite reception and the same maps. If I were Garmin or TomTom I'd start putting all my eggs in the software basket rather than the hardware basket.

</comment></comment></comment><comment><USER4> How come I don't wear a wrist watch? And I can wait to get rid of my plastic credit cards.

Device convergence sometimes actually happens - and is good.

Sour grapes, in my opinion.

<comment><USER5> Actually Swatch is still doing very well (as well as other brands) — a watch is an fashion accessory as much something with functionality. Flip understood that as brand, and was a notch above what you'd get on a cell phone. That gap has narrowed, but had Cisco invested in the product my bet is that their bet would have paid off. The problem was that Cisco had a larger agenda which didn't match the camera. By the way as digital dominates you'll see a specialty market for analog — everything from vinyl to paper books (just ask any hipster kid).</comment></comment>


C++ Compilation Speed - <AUTHOR> http://www.drdobbs.com/blog/archives/2010/08/c_compilation_s.html <comment><USER4> My guess for most slow compiles (yes, pulled out of my ...hat):

1\. Templates

2\. No pre-compiled headers

3\. Bad header-organization

We have a reasonable sized desktop application 5 mb (release) / 19 mb (debug) that fully rebuilds in 10 s / 12 s (incremental < 2 s usually).

Yes, we have optimized using a RAM disk etc, but the main reason for the speed is No Templates and combining precompiled headers with efficient header- organization.

Some interesting links:

\- [http://gamesfromwithin.com/physical-structure-and-c- part-2-b...](http://gamesfromwithin.com/physical-structure-and-c-part-2-build- times)

\- [http://developers.sun.com/solaris/articles/CC_perf/content.h...](http://developers.sun.com/solaris/articles/CC_perf/content.html)

<comment><USER5> Except that templates give you runtime speed and our customers care about runtime speed, not compilation speed.

<comment><USER6> What kind of speed increase are you talking about? Your comment's logic seems to suggest that, for instance, C (a language without templates) is inherently slower than C++, which is not the case. Can you back your statements up with evidence?

<comment><USER7> Speed increases like those explained in [http://www.tilander.org/aurora/2007/12/comparing-stdsort- and...](http://www.tilander.org/aurora/2007/12/comparing-stdsort-and- qsort.html), which compares qsort to std::sort.

Because templates are basically automated code copy-paste, the compiler can more easily inline at compile-time. Unfortunately, it also translates to lots more compiled code, which means slower compile times and fatter binaries. Still, writing something like the STL library in C with the same performance characteristics would be much more difficult, if not impossible.

I'm not a C++ expert, but that's my understanding of things, at least.

<comment><USER8> If you are worried about the performance hit caused by function calling through a function pointer you might want to give a look at <http://sglib.sourceforge.net/>.

</comment></comment></comment></comment></comment><comment><USER9> I trust the people who care already know about distcc on Linux and Incredibuild on Windows, but I thought I'd mention them just in case.

<comment><USER10> Don't forget ccache - storing the cache on a fast disk, it can easily speed up a build by 10x.

</comment></comment><comment><USER11> I still remember the day I compiled an example program that came with Borland's Turbo Pascal and Turbo C++ compilers. This program was designed to showcase Borland's text-mode user interface library called Turbo Vision, and apart from the programming language used, it ran exactly the same.

Turbo Pascal took just a few seconds to compile the example (no surprises there), but Turbo C++ took several minutes. This was back in the 90's. It seems nothing has changed since then. Sad.

<comment><USER12> That's because those languages haven't changed or only been extended.

</comment></comment><comment><USER13> Had nobody ever attempted to fix these problems in a non-backwards-compatible way? I'm imagining a new "almost-c++" that ditches the preprocessor for something better and makes a few other changes with the goal of vastly improved compile times. Then it should be possible to produce a GCC or Clang++ plugin that translates from C++ to "almost-C++" automatically, making it trivial to switch.

<comment><USER14> Yes, they have. It's called D: <http://www.digitalmars.com/d>

It doesn't have an automatic translator, but it's design does follow a rule of "If a piece of C code is dropped into a D compiler, either it compiles with the same semantics, or it doesn't compile."

BTW, Someone needs to fix the CSS for this text-entry box. Someone set the text color to black, but forgot to set the background color too. So on my light-on-dark system, I get Invisible-text-syndrome and have to edit in notepad and copy-paste into the text-box. Wheee!

<comment><USER15> Also note that the author of the article is also the author of D.

</comment></comment></comment><comment><USER16> I sat throught he pain of configuring\testing boost on a set (non GNU\GCC) dev tools for embedded platform and the build times were painfully slow - <USER2> 15 minutes was common even for reasonable sized tests. A fresh build of the boost libraries themselves - hours.

<comment><USER17> It's unfortunate that Boost is an all-or-nothing set of libraries, and the meta-programming in there can be brutal to compile, so for that kind of platform you'd really need to weight the pros and cons of what you're using out of Boost vs. compile times.

However, building the library set and examples and tests is a one-time cost for the non-header-only libraries. And you don't need to compile the examples or the tests. Or the various debug-release combinations.

Plus, why wouldn't you cross-compile, anyway? I do lots of embedded sensor work and I wouldn't think of compiling anything directly on the hardware itself.

<comment><USER16> This was cross-compiled. We had just implemented the full (as opposed to abridged) C++ libraries so obviously we decided to make sure that our customers could use them fully, however given that this was new support there was a distinct lack of test cases. Someone suggested that Boost exercised this functionality pretty well (some customers previously complained that they had been prevented from using boost before due to our only supporting the abridged libraries so this was actually a good idea), someone decided that I should be in charge of this.

What it amounted to was debugging horrible compiler crashes, broken library behaviour and spending a long time deciphering huge template names. This caused me to hate C++ more than you can ever imagine. I swear whoever decided to stitch templates together in the way Boost does has never had to debug a development compiler, this broke almost every part of the toolchain.

Ugh.

</comment></comment></comment><comment><USER18> This to me is one of the best arguments for a new language that takes over the traditional role of C++ - writting programs in it is just too slow.

I can't even imagine what it would be like on a 100hz computer.

<comment><USER19> D and Go are the two languages poised to take over the roles of C and C++. They both have very fast compilers and numerous other advantages compared with C and/or C++. I've looked at both of them quite carefully, and decided that D works better for me (an important factor for me though was that D2 recently stabilized with the publication a couple months ago of Andrei Alexandrescu's excellent new book "The D programming language"). There's an interesting recent thread debating the merits of the two languages at the golang-nuts mailing list.

<comment><USER20> > languages poised to take over the roles of C and C++

D has been around for ages, during which time C++ usage has grown quite a lot, essentially at the expense of C and assembly.

First of all, I don't get the sense people are actually casting about for a C++ replacement. Secondly, garbage collection makes D a non-starter in probably over half the areas C++ is used.

<comment><USER19> Given that Andrei Alexandrescu, who is one of the best-known C++ programmers in the world, co-designed (with Walter Bright) the new version of D, I would say that there are at least some C++ programmers looking for a better language. I think there's also a lot of C programmers looking for a better language but unwilling to deal with C++ (I'm in that category myself). Garbage collection in D is optional.

<comment><USER20> I'm not poo-pooing D at all, it just it seems to compete more with Java/C# than C++.

C++ is now really for closer to the metal, where garbage collection is truly a non-starter and nobody cares that std::string is awkward because they don't use it.

<comment><USER21> Can you explain why, if garbage collection is a non-starter, _optional_ garbage collection should have any negative impact?

<comment><USER22> I would say it depends on what the libraries do expect, especially the D standard libraries. If those work with and without garbage collection it probably doesn't matter so much. If those expect garbage collection then I suppose D2.0 will have a hard(er) time luring that many c++ guys over.

Does anyone already know how the new standard libraries which they wrote do work?

<comment><USER19> Andrei Alexandrescu addresses the issue of programming in D without garbage collection in this interview from yesterday: <http://www.informit.com/articles/article.aspx?p=1622265>

Notice in particular that he says "Furthermore, you can use malloc() and free(), along with the rest of C's standard library, ..., without any overhead. Then, a D primitive called emplace allows you to construct objects at specified memory locations (a la C++'s placement new operator)".

The emplace function is in the std.conv library and is the basis for constructing objects outside of the control of the garbage collector.

My understanding is that most library functions do not care about whether you are using garbage collection or not. Library functions are usually written in a parameterized way such that you can use any appropriate object; so long as it has the right methods.

Take a look for example at the std.algorithm library: <http://www.digitalmars.com/d/2.0/phobos/std_algorithm.html> I don't think anything there cares whether you use garbage collection for your types or not.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> Great article. I guess there would be an article about linking C++ code - <USER3> that's something that's hard to parallelize.

The IncrediBuild guys have some success there, but you have to link from the .obj files, not .lib (okay if your project is setup like that, but also it does not work always).

We have found that heavy templates usage creates lots of symbols that point to memory get coalesced later, and this also slows down the linker.

<comment><USER4> For more about Incredibuild:

\- <http://gamesfromwithin.com/how-incredible-is-incredibuild>

My summary of the article (I haven't tried it myself): \- can improve a full build compile time \- will probably slow down incremental build compile time

<comment><USER23> I have interoperability mode turned on, so I can both compile with IncrediBuild and normally.

But IB does not treat everytime in the .vcproj file as MS does. For example we used to link statically to certain libs, and later added them with the sourc code, and put dependancies in the .sln file. Well we forgot to remove the references, and guess what - MS ends up with one version, IB the other.

In our case IB was ignoring the .lib files, but taking directly the .obj files and linking with them (this has other side effects, for the globally initialized C++ objects).

But still it's time saver. We often have bad .pdb, .obj files produced, locked situations, etc.

We even use it for Makefile builds, but again such issues are popping out.

It's a clever system, that wraps the whole I/O and runs any process on a different machine, but all I/O is still done on the machine it's coming from... I wish that was somehow built in modern OS's.

</comment></comment></comment><comment><USER24> Hm, small point, but the linker may not actually fold identical templates. Visual C does; gcc sometimes does not.</comment>


Scaler Ayush Gupta Shares His Amazon Interview Experience - <AUTHOR> https://www.youtube.com/watch?v=fi_xv0qrrw8&t=813s <comment><AUTHOR> Hailing from a small town in Uttar Pradesh, Scaler Ayush Gupta has bagged a job offer as an SDE at Amazon. In this video, he talks about his Amazon Interview experience, sharing some useful resume building tips, his preparation for the interviews & the process after the interview till the final offer.</comment>


Ask HN: Is Apple nuts for discontinuing 11" MBA? - <AUTHOR> <comment><USER2> I previously used the 11" MBA as my dedicated "running around to meetings" machine, and basically just used Evernote and MS Office on it. When the new MacBook came out, I switched to it.

The keyboard on the MB takes some serious getting used to (actually, in the ~8 months that I used that computer, I never became fully used to the keyboard), but the screen and physical size of the MB was better than the MBA. (Of course, the processor was noticeably slower... so YMMV.)

So IMO, they did the right thing, there was too much overlap between models. The MB still needs to get faster and come down in price, but I do think it will be just as ubiquitous as the MBA within a few years.

I agree with others that the current line up is sorely lacking an affordable laptop, but that will likely change (slowly; hopefully) as manufacturing & component costs come down.

</comment><comment><AUTHOR> I bought my wife a 11" MBA this year, cost was $900. She didn't want me to buy it for her but I insisted.

Apple should have a mid priced laptop for casual users.

<comment><USER3> A $900 11" Macbook Air is really hard pressed to a better option than a $250 13" Chromebook for the types of low-end user that these appeal to.

Yes, there are those dedicated few who would prefer an 11" over a 13" model but, still do advanced computing on it but, those people aren't enough for a market.

Apple is letting the low end of the market get gobbled up by Google like they have everywhere else. Chromebooks now dominate in schools where Apple used to shine.

That isn't even to mention the effect of advanced mobile apps have had on our need for low end computing. Even the differences between 2012 and now is pretty stark. There is basically an app for everything that a casual user would do on their computer in a mobile device and that syncs up to the web. Google Docs, photo editing, light video editing and now what people mostly do is browse the web and consume various kinds of content online and games.

There simply isn't the market for a small laptop like there used to be.

Lastly, with a 20% reduction in volume with the 13" MBP, the distinction is more or less gone. The only thing is the price-point. There is nothing to fill that void.

<comment><USER4> > really hard pressed to a better option than a $250 13" Chromebook

Right because no one who wants a cheap laptop also values their privacy or wants to have control over their documents.

<comment><USER5> IMO, ChromeOS shares way too much information with Google by default. (And saying that this is okay because you can turn it off is complete bullshit. It is evil for Google to set a sharing default to favor themselves over the user).

Even worse, the last time I used a Chromebook two years ago, I couldn't even create a local user account without Google's consent. On a machine I supposedly owned.

I like ChromeOS itself, but as configured, it is a user hostile operating system.

</comment></comment></comment></comment><comment><USER6> The keyboard on the MB takes some serious getting used to (actually, in the 8 months that I used that computer, I never became fully used to the keyboard), but the screen and physical size of the MB was better than the MBA.visit here: [http://www.bestessaywritingservice.co/](http://www.bestessaywritingservice.co/)

</comment><comment><USER7> No, there was too much overlap between the 12", the Air, and the Pro. I guess the iPad Pro is now Apple's sub-$1,000 laptop.

<comment><AUTHOR> I love my iPad Pro and keyboard, use it all the time, but not a laptop replacement for strenuous programming.

</comment></comment><comment><USER8> Waiting eagerly for shit on a stick at $999!</comment>


Systematic Inventive Thinking - A systematic way to be creative - <AUTHOR> http://www.sitsite.com/app/methodGeneral.asp

<comment><AUTHOR> While this is the website of a commercial company, it does have interesting material and examples. It is a variation on TRIZ <http://en.wikipedia.org/wiki/TRIZ> ("The innovation algorithm"). Another variation is USIT [http://en.wikipedia.org/wiki/Unified_Structured_Inventive_Th...](http://en.wikipedia.org/wiki/Unified_Structured_Inventive_Thinking)

It is sort of a "Design Patterns" for creative solutions. While they are always non-trivial, there are shared principles that come up very often.</comment>


New Mirai Variant Has a Domain Generation Algorithm - <AUTHOR> http://blog.netlab.360.com/new-mirai-variant-with-dga/ <comment><USER2> What software is that? I always see that decompiler software in posts like this.

<comment><USER3> My guess would be IDA[1]. It's the de facto industry standard for reverse engineering binaries.

[1]: [https://www.hex-rays.com/products/ida/](https://www.hex- rays.com/products/ida/)

<comment><USER2> Is it as cool/intuitive as it looks? Lol... I also just saw this from this morning:

[http://www.welivesecurity.com/2016/12/06/readers-popular- web...](http://www.welivesecurity.com/2016/12/06/readers-popular-websites- targeted-stealthy-stegano-exploit-kit-hiding-pixels-malicious-ads/)

It looks almost like english. It makes me want to learn it for fun.

More than likely though I would go to decompile something and it would be infinitely complicated and years of learning to know what I'm doing. Perhaps I shall youtube some intro videos.

<comment><USER4> It's definitely cool, but it's far from intuitive. Worse, the licensing is nearly impossible to deal with as an individual.

If you're interested in getting started with reverse engineering, I recommend Binary Ninja [0]. It's a newer platform, and you may run into bugs, but the team behind it is super responsive to feedback, and they've done a great job of taking a traditionally very arcane UI, and making it into something that's a joy to use.

[0] [https://binary.ninja/](https://binary.ninja/)

<comment><USER5> Eh, Hex-Rays eased up on the licensing a lot in the past few years, IIRC, and it's much more tolerable for individuals. These days, from what I understand, as long as you basically email them from your corporate, work email address -- they'll let you purchase a permanent, individual license that way, even with their digital downloads. So you don't need physical shipment or anything like that, they just need to make sure they aren't sending it to a rando email address.

In the past it was a lot more difficult since as an individual they'd want to physically ship you the software on disk, so they'd only send it to offices, trusted addresses, etc which complicated it a lot. I never really had to deal with this since I think their strategies changed a bit by the time I got licenses at my last job.

Of course, just emailing them from your work addr won't totally cut it -- you also have to pony up the few thousand USD to get IDA, and near $10k if you want all the decompiler tools, as well... IDA Pro itself is relatively 'cheap' by itself if you just want disassembly, though, and you actually do it for a job.

</comment></comment></comment></comment></comment><comment><USER6> Wow, that's a particularly silly domain generation algorithm.

Do these kids even use some sensible crypto for the C&C? If not, anyone running their own mirai net can steal these bots just by running .dns on their C&C domain and registering one of the generated domains :)

<comment><USER7> > ...used it to predict all 365 possible DGA domains. When looking up their > registration information, we found some of them have been registered by the > MIRAI author...

Not so fast. This is just so that malware reverse engineers can't run strings on the executable (note also where they say this executable is stripped but not packed) and then block/tip the handful of hard-coded domains.

Anti-forensics is an arms race, and especially for a botnet like this the goal is to do just enough that you can spread (see also: premature optimization). You'll see it (mirai) get progressively better as the authors are forced to work harder.

<comment><USER6> >This is just so that malware reverse engineers can't run strings on the executable (note also where they say this executable is stripped but not packed) and then block/tip the handful of hard-coded domains

Nothing to do with `strings`. The purpose of domain generation algorithms is simply to prevent bot loss from domain suspension/C&C takedowns.

Unless these guys patched mirai to authenticate the server somehow, this is a really easy way for them to lose all of their bots.

As I stated earlier, this enables any competing botmaster to easily steal their bots simply by taking down the nameservers for their main domains. Mirai has built in functionality to do that, the ".dns" command.

Even without that flaw, it's also a really bad way of keeping the bots alive since 365 domains will be trivial for the registry to blacklist.

<comment><USER7> > Nothing to do with `strings`. The purpose of domain generation algorithms is > simply to prevent bot loss from domain suspension/C&C takedowns.

The purpose of DGA is also to make it harder to identify the domains the malware will use. One of those ways is to run strings on an executable and look for domain names. As they made no attempt to move off their main domains, we can assume that wasn't the goal. Rather, the goal of this is pretty clearly to add a few new domain names which are not as obvious and thus less likely to be blocked. Certainly not the perfect solution, but see my previous about premature optimization.

Also, I think you're overestimating the ease of taking over someone else's registrant account. Possible? Absolutely. Easy? Well, that depends on a great many things, but typically not easy without a court order.

<comment><USER6> Are you just coming up with new uses for domain generation algorithms to refute my comment for the sake of refuting it, or do you personally know the developer? Or do you at least personally know developers who have used DGAs for that?

I've seen lots of DGAs, but I've never seen one being used for the purpose you're describing.

You're suggesting a pretty novel use case here, why is that?

>Also, I think you're overestimating the ease of taking over someone else's registrant account. Possible? Absolutely. Easy? Well, that depends on a great many things, but typically not easy without a court order.

While it's not at all what I was referring to, many domain registrars are actually surprisingly happy to just hand over malware domains to "whitehats".

See goatsis comment for the issue I was originally referring to.

<comment><USER7> My experience differs from yours. Apparently goatsis has heard of you, so good work on that? The logical fallacy of either/or doesn't advance your argument as much as you think it does.

In my experience, malware authors care about beating the defense more than they do about having their domains taken down by some "whitehat". Although if you think that's easy, by all means please do. The Internet will thank you.

<comment><USER6> Instead of relying on the fallacy fallacy could you try to back up your point of view somehow? Share your differing experiences and give us some examples.

The idea of using a DGA to _hide_ your C&C simply isn't a very good one. It's not going to work, anyone running a packet capture will still see where your bot connects.

Using a DGA to protect your C&C from being taken down? You can easily make it impossible for any domain registry to shut you down. It'll also protect you from server suspensions as you'll just be able to update your DNS records.

One of these actually works, one doesn't. For hiding your C&C you'd want to use tor hidden services instead. Generally C&Cs are disposable though, so there's no need to hide them in the first place.

>In my experience, malware authors care about beating the defense more than they do about having their domains taken down by some "whitehat".

I don't really understand what you mean here. "beating the defense"? Are you suggesting that whoever did this mirai edit was trying to evade antiviruses or any sort of "defense" in that matter? On iot devices and routers?

I'm _sure_ they weren't hoping that whatever analyst finds their binary isn't going to find their C&C... Which seems to be what you're suggesting.

But if they aren't worried about their C&C being taken down by some "whitehat" then why on earth would they want to hide it in the first place?

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Are these domains for free? Is it possible to bypass a registrar and register a domain for free like this?

<comment><USER9> They aren't free, no. But the algorithm creates one predictable domain per day.

So, the author of the code doesn't need to register all of them. Just one for each day he needs a backup c&c network.

</comment></comment><comment><USER10> so apparently this is not about a Toyota.

<comment><USER3> It _could_ be, if you connected your Toyota to the internet.

</comment></comment><comment><USER11> If the author's Gmail is known, shouldn't it be trivial for the authorities to find out who registered the domains and arrest them?

</comment><comment><USER12> Still from Ukraine</comment>


Ask HN: Who should learn how to program? - <AUTHOR> I know my question might seem strange, it is not a traditional question of "how" one can learn to program but rather "who."
Firstly, I'd like to introduce myself. I have been lurking on HN for quite awhile, the topics and conversation on HN are intellectually interesting. But I do not know how to program, nor do I know if I should learn.
I'm drawn to famous stories of programmers having a large influence on the world (i.e., Bill Gates, Wozniak, Zuckerberg. Etc), and having the ability to create this kind of impact is what entices me to programming. Thus, is programming for me? A person who wants to help change the world, or would I be only wasting my time (given my age [early 20s] and other priorities in life)?
Thanks <comment><USER2> It seems these days everyone wants to be a programmer from all walks of life no matter what subjects they studied or if they are a dropout or something else.

I've worked with people who had PHDs in Computer Science and still didn't know how to program and I often had to debug their programs. They would make beginner mistakes over and over again.

I've also known people who dropped out of college and learned how to program on their own and gained a lot of experience and were better than me. Until the Dotcom age and requiring at least a bachelors to screen out applicants and then they couldn't get a programming job anymore and went to work retail jobs.

If you want to know who should become a programmer, it is a person with an interest in programming. Almost anyone can become a programmer, the hard part is learning how to debug and write quality code. Not many can master that.

You will find many MOOCs about learning programming, but you won't find many about debugging and quality control of code. When you get into a Hacker School or Hackathon most of what you will write is sloppy code because you have a time limit to get something done. Quality code takes a long time to get correct.

Most programmers are faceless, their company owns their IP, and their managers take credit for the code. Bill Gates and Zuckerberg are famous but had programmers work for them that made most of the stuff. Wozniak wrote his own code and designed his own circuits but was phased out when Apple got into the Macintosh era.

Programming is really hard and stressful work, you'll have times when you can't figure out what is wrong with your code and the clock ticks on your deadline for the project. You'll ask for help and even Google search and still not be able to figure stuff out. Then after hours of no solution, you'll figure something out and make the code work. It is not for the faint of heart, managers will treat you like something they scraped off their shoe, end users will cuss at you when something doesn't work right, you can't fight back and expect to hold on to that job. You have to be diplomatic about it. You have to learn how to deal with stress and failures.

</comment><comment><USER3> Here is my pitch: Software is not just about Computers and Code. It is a new paradigm(a new way of looking) for building any kind of systems. This idea is so general purpose that it will help you in any area or domain you want to pursue in your life. So yes, I would suggest go ahead and learn it, learn it in terms of a new way of looking at systems, learn it as a new outlook.

The only reason Software has so much impact on the world is not because it is some specific technology, but because it is a new paradigm and paradigm impacts everything.

You will probably start with a specific sub set of programming, like web app or mobile app and you may feel that it is all there is to programming. But if you continue to program other kind of systems like microcontrollers or embedded systems you will realize the true potential of it.

</comment><comment><USER4> Impact on the scale of Bill Gates, Steve Wozniak, or Mark Zuckerburg is far more about luck than about skill or choice of field. Sure, you have to be pretty skilled and choose a fast-growing field to achieve that. However, remember that the field of personal computing was tiny - barely existed, even - when Gates & Wozniak got started. The reason we view them as having had a large influence on the world is because computing as we know it largely grew up under their companies.

Instead, ask yourself if you'd be satisfied with the kind of impact and influence that, say, Paul Graham or John Resig or David Heinemeier Hansson or Patrick Mckenzie has achieved. _That_ is eminently doable with hard work, devotion to the craft, and smart choices.

And then ask yourself whether you enjoy the actual process of programming. That's the most important thing. It's very hard to be successful in a field that you don't enjoy, and even if you are successful, what's the point if you're not happy?

</comment><comment><USER5> Try doing simple stuff with programming for a weekend and see how you like it.

If you don't like it, well, it's just 1 weekend. If you do like it, could be worth trying more. If you aren't sure, could be worth trying more.

You don't need to take a class to learn to program. I've heard it said that really, all programmers are self taught, even if they do take a class.

Programming is basically putting things together, or feeding things into each other.

"Programming is like any other profession where you spend hours looking into a box cursing yourself for not thinking more like a machine."-swiftonsecurity

A word of advice though: Don't think you can make the next facebook as your first project.

However, try it out. It really doesn't require that much time investment to try it, and it certainly doesn't require much monetary investment (you don't have to pay anything except for the electricity you are already paying for for your computer).

Just try it, there's very little cost.</comment>


The Jessica Alba sexy walk story was a plant by a PR firm - <AUTHOR> http://www.badscience.net/?p=520

<comment><USER2> Jessica Alba sexy boobs a plant by...

Oh, hell. Why is this at the top of "Hacker News".

<comment><USER3> <http://www.paulgraham.com/submarine.html>

</comment></comment><comment><USER4> ...but where is the accompanying picture of Jessica Alba?

</comment><comment><USER5> I thought the "team of Cambridge mathematicians" that it took to conduct research on hip to waist ratios was a dead giveaway, no?</comment>


Why aren't distributed systems engineers working on blockchain technology? - <AUTHOR> https://eng.paxos.com/why-arent-distributed-systems-engineers-working-on-blockchain-technology <comment><USER3> >The blockchain community is immature and historically unwelcoming.

>It feels like a get rich quick scheme - [https://twitter.com/naval/status/878018839044161536](https://twitter.com/naval/status/878018839044161536)

This is what it comes down to IMO. Anything cryptocurrency related is just surrounded by a cloud of shady characters and scammers, even though the tech is legit. You just can't trust anyone, nor their intentions. Living your life and working in a constant state of paranoia like that is awful.

<comment><USER4> Even if the tech is "legit" it's encredibly inefficient. We're spewing off tons of CO2 just to verify the block chain, but we have plenty of technologies that can do the same with a minuscule amount of energy.

The problem is that they want a system that's trustless and that's simply not what most engineers care about. We want a system that's fast and efficient.

<comment><USER5> There are solutions to that though, like Proof of Stake. If distributed systems really cared about that, then that's exactly why they _ought_ to be working on blockchains, to make them more efficient.

<comment><USER6> Most of the bitcoin researchers have thoroughly convinced themselves that Proof of Stake is not achievable with acceptable levels of security, and for good reason. The reason you don't see more active research on Proof-of-Stake is that it is thought to only lead to dead ends.

<comment><USER7> The Ethereum team is serious about proof of stake.

<comment><USER8> Ethereum has not shown a particularly strong track record when it comes to security, so I think the comment stands until they address that or get replaced by the next hotness.

<comment><USER9> I think that statement is a little disingenuous. There haven't been any attacks that target Etherium proper, only bugs in smart contracts riding on top of Eth.

<comment><USER10> > I think that statement is a little disingenuous. There haven't been any > attacks that target Etherium proper, only bugs in smart contracts riding on > top of Eth.

This is a bit No True Scotsman. It's like "secured by math!" about Bitcoin - the ecosystem is rife with fraud and error.

So too with Ethereum. Given that smart contract functionality is literally Ethereum's unique selling point, you can't claim that is somehow not something that can be discussed as a problem with Ethereum. They _broke the immutability guarantee_ for one bad smart contract, after all.

You really can't say "Ethereum is completely secure!! Except for everything that people actually use it for" without being more than a little disingenuous yourself.

<comment><USER5> It is, thus far, completely secure. The fact that SQL injection bugs exist does not negate the security of HTTP. The fact that stack overflow bugs exist does not make x86 insecure. The primitives you are provided are secure - <USER2> you use them may not be.

Now you _may_ legitimately argue that Ethereum is poorly designed to encourage secure contract authorship. And I would agree with you in many respects. But that is a distinct concern from the security of Ethereum itself. Conflating the two is at best confusing and at worst maliciously spurious.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Proof-of-work blockchains were developed to solve a problem that only exists in a small percentage of distributed engineering use-cases. Unless you need to build a "censorship-free" peer-to-peer ledger distributed among untrusted, anonymous participants, the complexity costs and latency and computation costs simply aren't worth it.

It's the same reason that Ford doesn't build a tunnel under the US/Mexico border to ferry car parts to America.

<comment><USER12> Proof-of-work is simply not sustainable (energy-wise), IMO, for the foundation of a global system. The stability of whole ecosystems is predicated upon those ecosystems being attractive to people who want to make money by competing to solve hard problems by brute force.

That's a lot of energy going into a system that can commit a new block of transactions once every 10 minutes on average. It solves a problem in an interesting way, but it's nowhere near quick enough or efficient enough to solve 99% of engineering problems. That's why only 1% of engineers are working on it.

<comment><USER13> > Proof-of-work is simply not sustainable (energy-wise), IMO, for the > foundation of a global system.

Visa, MasterCard, AmEX, &c along with each individual bank, not to mention the intermediaries and gateways all of them use also consume a tremendous amount of power. It's not as if our current system uses a negligible amount of power, not to mention the number of steps and entities a transaction needs in order to be finalized.

<comment><USER11> > It's not as if our current system uses a negligible amount of power

Our current system does in fact use a negligible amount of power. Each $2 latte you put on a credit card uses an amount of electricity so infinitesimal that it can only be measured in the aggregate.

The percentage of the power used to generate a single bitcoin block for a single transaction can power an average US household for (approximately) an entire week.

To put it in perspective: If the bitcoin network scaled up to the size of the VISA network it would require 100% of all energy used for all purposes planet- wide, from transportation, manufacturing, agriculture, etc. Everything you could possibly want to buy with bitcoin would be unavailable, as 100% of all human activity would go to powering the miners.

<comment><USER14> What if you also include the energy consumed by the employees and facilities of Visa, including their commute-to-work energy? And the energy used to construct their facilities, improve network infrastructure, etc? Now are we getting within an order of magnitude of the energy consumption of an army of ASIC miners, and the people who farm them?

<comment><USER15> On a per-transaction basis? No.

Those costs specifically end up being reified in the fee those processors charge to their customers, so we can determine an upper limit to how much is spent on energy in that way.

<comment><USER14> The same is true of bitcoin transaction fees, no? Miners set the minimum fee that they will accept, and people tack a fee onto a transaction, large enough that a miner will likely process it.

<comment><USER15> No, because there is a block reward too that subsidizes the miners, so you have to account for that too.

We don't really know the relationship between transaction rate and electrical usage in a mature BTC system, because mining is mainly used to prevent double- spends and the minimum required mining rate to support a given transaction rate is a game-theoretical concern and not a technical one. We can only really observe what has happened so far in the Bitcoin ecosystem.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> I work in distributed systems, and I consider blockchain very interesting. It's so interesting I click on a lot of links on Hacker News, and sometimes I take an afternoon on a weekend or vacation to read through some of the papers.

I just have a well-paying job and I don't see any opportunities lucrative enough for me to jump away. Why? Bitcoin is an _experiment._ Reading through the paper, Bitcoin does not scale to general purpose commerce. All of the other technology appears to be "me too." When I first heard about Etherium, the bullshit smelt so bad that I couldn't even look at the paper.

What will get me really interested? Pay me to implement a real-world use case that fits the scalability constrains of blockchain. This isn't things like general-purpose currency, or general-purpose contracts. Someone needs to pay me to implement something that requires blockchain; instead of someone paying me to implement a blockchain and then going and finding a use for it.

<comment><USER17> > Someone needs to pay me to implement something that requires blockchain

It's difficult to find something that _requires_ a blockchain, because the unique distinguishing feature of blockchains is the lack of any trusted central authority.

If you have a trusted authority, then you can do anonymous currency, money transfers, smart contracts, or anything similar 1000x more efficiently with a single server, an API, and some backend logic. All the distributed effort goes into making these possible at all without any central authority who can ban or filter transactions.

And for most real-world projects, having a government agency or tech company working as the trusted authority works just fine. It's only shady to illegal businesses where the lack of one is _required_.

<comment><USER16> Which makes it look like blockchain is a solution looking for a problem.

I still believe that problem will come up, and/or we'll see technologies that borrow concepts from blockchain without being true "blockchain."

<comment><USER18> The problem exists for ages, from a libertarian point of view: the govs as oppressing power and the tax as a "legalised" theft mechanism to sustain only a few in power. And all related issues that come from it: corruption, lack of transparency and bureaucracy to name only a few.

The blockchain comes as the refactoring of this legacy system.

</comment></comment></comment></comment><comment><USER19> Distributed consensus algorithms are super interesting, but most distributed databases run in a trusted context. So instead of spending time optimizing a trustless system, database engineers optimize commit protocols like Calvin[1], because high-throughput scalable consistency solves so many business problems.

When you have a general purpose globally consistent distributed database, many of the problems that look like blockchain algorithm problems turn out to be standard application programming tasks. Eg a distributed ledger is just a table in a distributed database.

[1] [https://fauna.com/blog/distributed-consistency-at-scale- span...](https://fauna.com/blog/distributed-consistency-at-scale-spanner-vs- calvin)

<comment><USER20> I just wanted to drop appreciation for this answer. I never thought to see the blockchain from this perspective.

</comment></comment><comment><USER21> Here's one take DLT and Blockchain: [https://hbr.org/2017/01/the-truth-about- blockchain](https://hbr.org/2017/01/the-truth-about-blockchain)

TL;DR, it's gonna take a real long time to make blockchain useful, if it even is.

Further, I have yet to see a real production application of blockchain that isn't a crypto-currency. Everyone and their grandmothers has invested in it, or started a company or w/e. But has it actually been used to solve another problem? Blockchain was the SOLUTION to the PROBLEM of how do I make a cryptocurrency. It now seems that some folks are trying to make a PROBLEM out of a SOLUTION in every other domain.

<comment><USER22> Blockchain is not the solution to the problem of how to make a crypto currency. Blockchain is the solution to the problem of how to cooperatively timestamp documents.

<comment><USER23> Completely agree. A true crypto-currency would not be "quasi-anonymous". Bitcoin is a government's wet dream, a near-complete map of every dark web transaction globally.

<comment><USER24> For now yes. More privacy features are on the road map though. You can always easily convert Bitcoin for a more anonymous eccentric currency and then convert it back to Bitcoin if you want to hide your trail if you need to.

</comment></comment></comment></comment><comment><USER25> I had the same observation that the blockchain is "just" a distributed log database with horrific performance overhead...

...but it's not true that nobody's working on it: quietly, Serious Engineers(tm) working for blockchain companies and you can expect big improvements in the next few years.

This rant is nearly isomorphic to the whining in the early 90s by the academics and SunRPC & CORBA fanboys vs HTTP and HTML, which its insane parsing and communications overhead. Serious Engineers(tm) showed up, made the early web work, it took off, and... you don't see many HN job posts asking for CORBA engineers.

As with the web, blockchains are exciting because they're a 'looser' and more open protocol than other systems.

<comment><USER26> Can't remember how I stumbled across this article, but I thought it was a good summary of Bitcoin works in spite of some glaring flaws.

[https://www.gwern.net/Bitcoin%20is%20Worse%20is%20Better](https://www.gwern.net/Bitcoin%20is%20Worse%20is%20Better)

</comment></comment><comment><USER27> Because I have yet to find an actual legitimate use-case for a blockchain. Every task in our modern business world actually _requires_ a central trusted authority.

Edit: not to mention that mining is an incredible waste of time and energy that can instead be put to good use.

<comment><USER24> Good use is subjective, plenty of people are using the blockchain as a speculative asset and willing to pay transaction fees for it.

<comment><USER16> It's a great way to hide a pump-and-dump scheme. Although blockchain is a legitimate undertaking, if you're good at surfing hype, you'll know when to get in, get out at a profit, and then leave all the other suckers holding worthless bitcoin.

</comment></comment></comment><comment><USER10> Because it turns out the good bits are the ledger of transactions made tamper- evident in a Merkle tree, and we had that with Git in 2005 and it works great thanks.

The bit Git doesn't do: distributed consensus via Proof of Work, because it turns out that a bit of trust is fabulously more efficient.

I predict any good and useful product labeled "Blockchain" will be the cryptographically tamper-evident ledger of transactions, and not any of the stuff that makes a blockchain different to Git.

(Researching the book, I had one developer admit that his "blockchain product" was pretty much a simplified Git in terms of what it offered ;-) )

</comment><comment><USER28> Too many crooks. Too much hype. Too much ignorance of how the real world works.

I'd be interested in working with large and boring financial institutions on those sorts of projects, because they don't offer the failure modes as above.

</comment><comment><USER29> I don't really get this article. The transaction rate limit and the wastefulness and limitations of PoW as a fault-tolerance mechanism are brought up but then just hand-waved away.

If we had discussed proof of stake or theorized about how some of these other hurdles like transaction rate could be leaped then sure. Otherwise it's just a list of things any distributed system has to solve for, demonstration that blockchain solves for them (inefficiently) with the undertone of "I bought in on the hype, and you can too".

</comment><comment><USER30> DLT strips away almost everything that makes blockchain compelling.

Why would a distributed systems engineer work on what amounts to a really shitty database?

<comment><USER31> See also the crazy cash they can make building distributed machine learning/big data systems at next to zero risk...

<comment><USER32> This is just incorrect. Making money on a distributed product is just as hard as on anything else if not harder and riskier, because everything takes more time.

<comment><USER31> Tell that to my bank account.

We live in a world where most current and future performance benefits come from understanding how to program both parallel and distributed algorithms in an age where almost everyone is either a single-threaded Java or Python programmer relying on OSS frameworks and packages to do the distributed dirty work for them.

And that's made it nearly free beer right now to have gone against the above curve and stayed current on C++ and multi-core/distributed algorithms so one can build those frameworks and packages. That will probably change now that GPUs are a hot commodity as opposed to nerdy gamer stuff, but chance favored the minority of prepared programmers here.

Further, I have zero interest in the blockchain. There's interesting technology there, but it is of zero use to me or any of my life goals. Also the hucksters and low-information sorts trying to make me believe I can't live without it are driving me even further away from it.

And before you downvote me for negativity, this thread did ask why distributed system engineers aren't interesting in this, yes?

</comment></comment></comment></comment><comment><USER33> The goal of the article is to get distributed systems engineers excited about blockchain and invite them to explore positions at Paxos. Ironically none of the open positions are actually for distributed systems engineers :)

I think it's funny the author chose to center the article around that assumption. IMO most engineers related to distributed computing (not necessarily themselves distributed systems engineers) are actually quite aware of the technology and many of the challenges.

</comment><comment><USER34> Why isn't X working on blockchain technology?

Maybe instead of asking this, we should ask the cryptocurrency enthusiasts what area of technology _won 't_ be dropped-and-replaced by blockchains, because so far it seems apparently applicable to every single use case in every single industry... By the way, did you guys hear this thing is an immutable ledger?

<comment><USER35> That's a complete strawman.

There is very little overlap between _cryptocurrency enthusiasts_ and _those who think blockchain technology will take over everything_.

<comment><USER34> > There is very little overlap between cryptocurrency enthusiasts and those > who think blockchain technology will take over everything.

Do you really believe that? Because from the outside, it seems that the only people talking about "blockchain technology" are those who have a significant amount of money invested in it.

This article is a blockchain banking service saying, "hey, other people should use this solve-all technology that is definitely the future too!"

<comment><USER35> Yes, I really believe that.

The people who are into "blockchain banking" are not actually into cryptocurrency. Cryptocurrency is about decentralised, trustless, permissionless, peer-to-peer networks. "Blockchain all the things" is decidedly not.

I acknowledge that this can be hard to see from the outside.

Edit: And at risk of "no true Scotsman"... the people talking about "blockchain technology" are not cryptocurrency enthusiasts.

</comment></comment></comment></comment><comment><USER15> My observation is this:

The "killer app" of Blockchains are the trustless nature of the system. In most practical application, allowing actors without a trust relationship to interact with the log is not a significant requirement of the system. Once you remove that requirement, there are technically superior approaches to maintaining a ledger.

<comment><USER26> That's why I've never understood all this talk about "private blockchains." Why? What's the point? We already have distributed database systems that are light years faster than blockchains. The ONLY benefits of a blockchain-based approach are censorship resistance and not having to trust the actors in the system. If you don't need either of those two benefits, then there are far better existing solutions for record keeping.

<comment><USER36> Private blockchains have a use case where you have a central authority coordinating many participants that don't trust each other - if the central authority periodically publishes the signed blockchain ledger/update, it enables "shared truth" that every participant can use, and each of them can verify that noone has "altered history", that particular constraints have been met, etc.

In essence, it can be used as a versioning + signing mechanism for a shared database that ensures authenticity and non-repudiation even in the absence of trust.

<comment><USER37> > ...if the central authority periodically publishes the signed blockchain > ledger/update, it enables "shared truth" that every participant can use, and > each of them can verify that noone has "altered history", that particular > constraints have been met, etc.

In other words, something like [http://ledger-cli.org/](http://ledger- cli.org/) stored in a git repository with some input validation and signed commits would suffice.

Proponents call this "blockchain technology" because it sounds advanced. They can because nobody has a definition of what "blockchain technology" is. In my mind, if it could have been designed by any competent engineer prior to Bitcoin, then it isn't "blockchain technology". But that's just me.

</comment></comment></comment></comment><comment><USER38> Because we got better things to do than wasting time on bullshit blockchain tech in a bullshit company filled with suits [0] who can produce only... bullshit

[https://www.paxos.com/our-team](https://www.paxos.com/our-team)

</comment><comment><USER39> Where's the data, or at least arguments suggesting that no distributed systems engineer is working on blockchain technology?

If anyone could point to me what's the name for this fallacy. Lile when you ask a question that tricks people in assuming the premise.

</comment><comment><USER40> [https://github.com/kadena-io/juno](https://github.com/kadena-io/juno) actually this is poc research from jp morgan into using another bft algo: raft.

<comment><USER41> RAFT is not BFT. You need nodes to cooperate. If the nodes lie, the system will collapse.

</comment></comment><comment><USER42> Answer: because most distributed systems are operated by a single entity and don't need to solve the trustless consensus problem.

</comment><comment><USER43> From OP: [https://twitter.com/naval/status/878018839044161536](https://twitter.com/naval/status/878018839044161536)

The cynic in me thinks "it's a scheme by oligarchs and tyrants to get rid of troublesome /fully anonymous/ cash sold as a utopian scheme to those who are motivated by the promise of a quick rich scheme."

</comment><comment><USER44> The choice of font and lack of contrast make this nearly unreadable for me...

<comment><USER45> The text is #0 on a #F background for me?

<comment><USER44> I was reading on Android. Perhaps the colors are different there.

</comment></comment></comment><comment><USER46> I mean, you read the most ridiculous things happening in those circles. Not sure why most talented engineers would be interested in associating themselves with that.</comment>


Segment SQL, Powered by Amazon Redshift - <AUTHOR> https://segment.com/blog/segment-sql-amazon-redshift/?utm_source=newsletter&utm_medium=email&utm_campaign=redshift

<comment><USER2> Interesting development for a lot of the in-database visualization players (Chart.io, Looker, RJMetrics etc) - a lot of the older and weaker players have depended on lock-in and inertia to keep them around; this squarely puts them in a bake-off similar to what's happening in the hosted analytics / customer communication space.

I, for one, welcome our new database overlords.

Segment integration has driven more refugees from other analytics platforms than a lot of other channels

More competition in this space is better - let's compete on value for our customers, not lock-in and hostage-taking.

<comment><USER3> I totally agree, columnar databases have rendered "traditional" BI tool irrelevant and required the analysis and visualization layer to adapt to billions of records accessible via SQL.

We (EverythingMe) open sourced our own internal data visualization and collaboration tool which is used with our own Redshift setup - [https://github.com/EverythingMe/redash](https://github.com/EverythingMe/redash)

<comment><USER4> I see your point, but what you are saying is very extreme.

Look no further than Tableau's valuation. The "traditional" BI market is still huge, and if anything, direct SQL-level access benefits a small portion of the entire BI user universe.

<comment><USER3> I might have taken it to the extreme (always a good discussion kick-starter), but aamof we did try Tableau an a range of other tools, and being a startup that uses data and most if not all of its people are OK with SQL we managed to be a lot more productive and transparent with re:dash.

There's a blog post about the motivations behind building it here - [http://geeks.everything.me/2013/12/05/introducing_redash/](http://geeks.everything.me/2013/12/05/introducing_redash/)

</comment></comment></comment></comment><comment><USER5> We love what Segment is working on. It's a big step towards different companies sharing a common schema, which means that analysis built on that schema can be portable across companies, and doesn't have to be redone by everyone. To that end, we partnered with Segment by released a series of open- source queries and visualizations that work for any Segment customer (or anyone with a similar schema): [http://about.modeanalytics.com/playbook/](http://about.modeanalytics.com/playbook/)

</comment><comment><USER6> A few more details about how it works and our new partners here: [https://segment.com/redshift](https://segment.com/redshift)

</comment><comment><USER7> "For the first time ever, you can go all the way from user tracking on your webpage or mobile app to an enterprise-grade, SQL data warehouse with just a single line of code"

You've been able to do this with Treasure Data for months now, and we're schemaless. (Full disclosure, I work there and was the one that built the JavaScript SDK.)

</comment><comment><USER8> We're very happy to be partnering with Segment for Segment SQL - it saves our Redshift customers a lot of work.

Just an FYI - we're offering a 30 day free trial for Segment customers. Just sign up here: [http://www.periscope.io/#signup](http://www.periscope.io/#signup)

</comment><comment><USER9> Was just telling someone yesterday how SQL is eating the world. Good job guys!

</comment><comment><USER10> We have put multiple man months into the same effort - data and BI integration into Redshift for all the data visualizations, etc. This is truly is promising.</comment>


Ask HN: Selenium like solution but for win apps/games - <AUTHOR> Hi, is there a way to run a game fullscreen in windows and make use of the ui/buttons etc with just some script or similar ?
So without any human interaction. I would like to automate some process of playing replays of a game which i need to record.
thanks. <comment><USER2> Autohotkey could work, at least if you hardcode the coordinates where to click at.

The problem with games is that the UI is often rendered by the game engine to a canvas, so outside software doesn't have a representation of discrete UI elements to click on, as opposed to a browser where every element is part of the DOM and can be targeted by CSS selectors.

<comment><AUTHOR> i see, ok thx</comment></comment>


Ask HN: What do you do with your dead projects? - <AUTHOR>

I think anyone got dead or not anymore interested projects.<p>What do you do with them? Let them rot on your file system? Make them public? Upload them somewhere? github? <comment><USER2> They tend to rot on my system. The problem is that no-one really wants to pick up someone else's half-finished work unless they know the person really well and believe in the project, which is unlikely since they'd already be working on it and it wouldn't be dead if that were the case.

</comment><comment><USER3> [http://sideprojectors.com](http://sideprojectors.com)

is something I've launched only a few days ago. Received a number of great feedbacks from different developers & entrepreneurs.

Plus we have had close to 70 projects and have 3 known projects sold (many more in the process).

Would love to discuss what I've learned and even more, would love to host your side projects that you would like to sell. :) Or come check them out!

</comment><comment><USER4> I keep them. Some of them I revive a few years later (possibly on a different OS). Some others that don't get revived may still have useful pieces of sample code.

</comment><comment><USER5> If I can't properly develop and support them, they go to that big hard drive in the sky. I take the approach of failing as fast as possible. If code is in this state, it is now failing. It's time to move on to bigger and better things and not waste mental cycles (even minimal) or resources maintaining.

</comment><comment><USER6> They go on my GitHub. Most as public, some as private. The only ones that stay private are the ones that have some code I worked on for weeks solving a very specific problem that I may use at some point in the future for a business.

</comment><comment><USER7> sell or partner: [http://news.ycombinator.com/item?id=6075273](http://news.ycombinator.com/item?id=6075273) [http://www.sideprojectors.com/project/home](http://www.sideprojectors.com/project/home)</comment>


FCC Votes 2-1 to kill Net Neurtrality this morning - <AUTHOR> https://consumerist.com/2017/05/18/fcc-votes-to-move-forward-with-process-of-killing-net-neutrality/ <comment><USER2> Rules as important as these shouldn't be left to the whims of the FCC or any other federal agency. They should be set into law.

If Democrats actually believe in these rules, then they should pass a law including them as soon as they dominate the government again. It can still be repealed, but it won't be easy, it won't happen too fast, and Republicans or whoever will want to repeal it will have to expend significant political capital to do it.

The same should happen with the broadband privacy rules. The Republican-led Congress recently made it so that the FCC won't even be allowed to pass those privacy rules again anyway. So only a law can bring them back.

<comment><USER3> > The Republican-led Congress recently made it so that the FCC won't even be > allowed to pass those privacy rules again anyway. So only a law can bring > them back.

A few states and cities have passed or are working on passing ISP privacy rules. The Republican-led FCC apparently is planning to deal with that [1]. Commissioner O'Reilly has said he is circulating a proposal to stop such state/local privacy regulation.

He described those supporting net neutrality and privacy rules as part of a "progressive agenda to vanquish capitalism and economic liberty."

[1] [http://www.dslreports.com/shownews/FCCs-ORielly-Wants-to- Ban...](http://www.dslreports.com/shownews/FCCs-ORielly-Wants-to-Ban-State- Broadband-Privacy-Protections-139597)</comment></comment>