Ask HN: Learning Hardware Help - <AUTHOR>

Can someone please break down the comprehensive things I would need to learn to be able to start building things in hardware? Total newb here. I would love to be able to self teach myself.
I am looking for something that's the equivalent to what would be the following in terms for programming:
Front End - HTML/CSS/Javascript + jQuery
Backend - Python + Django
Database - Postgres
Other - CLI
With the above list, and work and dedication, someone can go from nothing to semi-decent beginner and prototype something in 6 months to a year (or sooner) for the web.
Can someone give me the equivalent for someone who wants to be a self-taught hardware hacker. I get the whole learn by doing and I plan to do that. I am looking into things like Arduino (or plan to), etc... But it doesn't seem like anyone has a comprehensive list of things to learn (like the above) or an order in which you need to learn them. I've seen recommendations for one off subjects or a link to an MIT course or something, but I don't think thats enough (albeit its a good start). What I'm pretty much begging for is a comp list like the above for hardware. I should also note I want to learn to be competent enough to do most things in hardware, not just projects with arduinos but I get thats a starting point.
So far I got:
Need to learn how to solder properly... That's it. Is there even an equivalent of subjects, order, etc...
It would be really nice to have a list of things if possible. I know nothing on the hardware side. Thanks so much. <comment><USER2> Hi,

I Hardware is not something which you can just decide to learn one thing after another. It is an intuitive and hands-on session requiring Labs in most case.

I can try to tell you how you can do it, but you need a lot more than a computer and just few components.

Also when you mean hardware, it covers a lot of subjects. So I think you want to understand difference between Hardware and Electronics (no, its not same)

I will start with Electronics. You need to start with electronics more or less in the following sequence 1\. Basics of Electronics - Fundamentals like Voltage, Current, Power, Frequency 2\. Electronics Components - Active and Passive components 3\. Analog and Digital electronics 4\. Electronic Circuit Analysis & Design - Transistors, MOSFET's etc) 5\. Analog Circuits 6\. Digital Design and Logic Circuits 7\. Motors - Now this is tricky, as there are so many types of motors. But if you are interested only in digital, focud on DC , Servo and Stepper motors 8\. Sensors - Types, working, usage etc 9\. Microprocessors and Microcontroller 10\. Computer Architecture and Organization

I can go on, but I think it will be a few years for you to get to these.

The above mentioned track will get you started in Digital Electronics, for analog electronics you need to dive deeper into Power Electronics, AC Machines, etc.

I have also left out signal processing and communication topics. Digital Signal Communication is something you might want to get familiarize with for wireless technology like ZigBee, Bluetooth, WiFi etc

With Digital circuits, you may or may not need a lab environment, but for any AC related stuff, Lab is a must. Do not even try it at home without guidance.

For skills you need to acquire: 1\. Component Identification 2\. Breadboarding 3\. Electronic tools and devices - Wire cutting tools, stripping, soldering iron, de-soldering, heat gun, hotplate soldering. 4\. Electronic Measurement devices - Oscilloscope, Multimeter, Logic Analyzer etc. 5\. ELECTRICAL SAFETY TECHNIQUES. - A bad code won't kill you, but a bad circuit can

<comment><AUTHOR> Thank you so much. This is exactly what I was looking for.</comment></comment>


Results of massive NO2 measurement experiment in Flanders (map+graph,Dutch text) - <AUTHOR> http://www.standaard.be/curieuzeneuzen/map/ <comment><AUTHOR> Some background information: in attempt to gain insight into air quality, 20k people installed NO2 measuring devices in front of their homes for a month. Spread out throughout the northern half of Belgium.

NO2 is only one aspect of air pollution, but it's a pretty good proxy for for general air pollution. Most airborne NO2 comes from internal combustion engines, which are also a significant source of other kinds of air pollution (particulate matter etc).

The results are pretty disturbing. Most people in Flanders essentially don't breathe clean air.

<comment><USER2> > _The results are pretty disturbing. Most people in Flanders essentially don > 't breathe clean air._

But in the autotranslation of the page with more details that I could find is not so bad: [https://translate.google.com/translate?sl=auto&tl=en&js=y&u=...](https://translate.google.com/translate?sl=auto&tl=en&js=y&u=http%3A%2F%2Fwww.standaard.be%2Fcnt%2Fdmf20180928_03792243)

> _2.3 percent of the measuring points, or 410 locations, is above the norm. > Up to 150,000 people live up to Flanders. Exceedances occur in a third of > all municipalities. Although the question is how relevant that limit is. The > WHO is currently in a process to review the recommended exposure limits. The > outcome is only expected in 2020, but it is probably going to 30 μg / m3. > That changes the picture for Flanders. 12.5 percent of the measuring points > are above 30 μg / m3, which corresponds to the residence of about 813,000 > Flemings. An orange ball in the street is not immediately reassuring. In > addition, the WHO uses a 'threshold value' of 20 μg / m3. From then on, > health effects occur. 60 percent of the measuring points are above the WHO > threshold._

<comment><AUTHOR> Those 800k people are about 1/7th of the population in the area. So it's not super reassuring.</comment></comment></comment>


Show HN: Business Vertical Forums - <AUTHOR> https://docs.google.com/spreadsheet/ccc?key=0Ara_YbXDNXjrdEUwY3RNaEllZmdOSHBZcnR4R0IwNnc&usp=sharing&authkey=CJ2-tPoJ

<comment><AUTHOR> Quick intro: I (and contributors) made this list a while ago for technical entrepreneurs who want to identify startup opportunities in other industries but lack exposure to them. Anyone can edit the sheet so contributions are welcome.</comment>


Sega's Plans for World Domination (1993) - <AUTHOR> https://www.wired.com/1993/06/sega/ <comment><USER2> It amazes me how Sega failed so spectacularly and repeatedly. First they tried incremental updates to the Genesis with the CD and 32X and failed to bring anything worthwhile. Then they had the disaster of the Saturn, which was so complex that few developers were able to release any appealing games. Sega themselves didn't even manage to release a flagship Sonic game.

The Dreamcast had so much potential, a year's head start over the PS2, a decent selection of launch titles, and online games, but I guess the damage was already done. They struggled to put their own franchises to good use on other systems since then, and now mostly seem to survive as a publisher and owner of a few third party developers.

In hindsight, perhaps it's more accurate to look at Sega as a company that had one good breakthrough with the Genesis that they could never replicate, rather than a once great company who failed. It was a long series of bad decisions after that, not just a single failure.

An interesting excerpt from the article:

"Just some of the developments coming to an Electronic Boutique near you: Truly interactive game movies starring hot Hollywood stars; immersive 3-D game environments using cheap VR technology; and motion-sensing technology that places you directly into the game"

Maybe they really were just ahead of their time, with the biggest companies still trying and failing in these areas. Or maybe it just shows they're just plain bad ideas.

<comment><USER3> > The Dreamcast had so much potential, a year's head start over the PS2, a > decent selection of launch titles, and online games, but I guess the damage > was already done

The damage was done with third party developers. I think the public was ready for the Dreamcast/PS2 showdown, but the Dreamcast barely had games that anyone cared about. Nintendo had clearly dropped the ball with the "hardcore" (for lack of a better term) game audience by this point, so the real battle was supposed to be between Sega and Sony.

I can't remember if the story was that Sony had effectively bought everyone's loyalty, or if the devs had decided they hated Sega.

<comment><USER4> > "the Dreamcast barely had games that anyone cared about"

I'm guessing you didn't play one. The Dreamcast had an amazing game library, especially considering the short time it was actively supported. Admittedly 3rd party support was thin on the ground, but the games that did make it to that system were some of the best of that generation IMO.

> "I can't remember if the story was that Sony had effectively bought > everyone's loyalty, or if the devs had decided they hated Sega."

My understanding was that 3rd party devs had been burned three times in a row by Sega on products that were poorly supported by Sega (MegaCD, 32X, Saturn). There was also the piracy problem on the Dreamcast, and the fact that the PS2 was a DVD player as well as a games console. If the Dreamcast had used a DVD drive instead of the GD-ROM option they went with I could see it easily adding another 2 years onto the Dreamcast's life.

The silver lining is that the piracy issues also helped the Dreamcast be one of the best supported homebrew gaming platforms.

<comment><USER5> > I'm guessing you didn't play one. The Dreamcast had an amazing game library, > especially considering the short time it was actively supported. Admittedly > 3rd party support was thin on the ground, but the games that did make it to > that system were some of the best of that generation IMO.

The Dreamcast had an amazing game library, true, but it almost entirely consisted of niche games that the general public didn't care about. The Sonic Adventure games were the only ones with mainstream appeal.

The market then was different from the market now. Nowadays, Steam is full of awesome quirky niche indie games that are successful, and if a console launched now with that kind of library, it would probably be successful, but back then if you didn't have AAA games with name recognition, you were dead in the water. You'd only recognize how awesome the Dreamcast's library was if you were interested in taking huge gambles on stuff you've never heard of before.

<comment><USER4> > "You'd only recognize how awesome the Dreamcast's library was if you were > interested in taking huge gambles on stuff you've never heard of before."

You didn't have to take a huge gamble, you just had to play one to see quality that was on offer.

As for games with mainstream appeal, aside from the Sonic Adventure games there were a number of decent sports titles for the system (Virtua Tennis 2 probably being my personal favourite, but the 2K Sports franchises seemed to make amends for the lack of EA support). I'd also say games like Soul Calibur, Crazy Taxi, Metropolis Street Racer and Tony Hawk Pro Skater 2 had broad appeal.

Think about when the PS2 was released, what was the big draw at the time? Tekken Tag Tournament is the only thing that sticks out as a memorable PS2 exclusive in the initial period when it was competing with the Dreamcast. I personally don't think the PS2 had the superior game library at the time the Dreamcast was discontinued.

</comment></comment></comment></comment></comment><comment><USER6> Console wars aside, it's interesting to note that they put a lot of hope into arcades/movies/amusement parks... all of which have not seen nearly the growth rates as home entertainment.

[http://www.theverge.com/2013/1/16/3740422/the-life-and- death...](http://www.theverge.com/2013/1/16/3740422/the-life-and-death-of-the- american-arcade-for-amusement-only)

<comment><USER7> Well, that was their heritage. Not shocking.

</comment></comment><comment><USER8> Sega's strategy for battling Nintendo. Let's add some more details about the console wars too:

1\. The Untold Story of How Sega Nearly Won the Console Wars - [https://www.wired.com/2014/05/console-wars-book- sega/](https://www.wired.com/2014/05/console-wars-book-sega/)

2\. Console Wars: Sega, Nintendo, and the Battle that Defined a Generation - [https://www.amazon.com/Console-Wars-Nintendo-Defined- Generat...](https://www.amazon.com/Console-Wars-Nintendo-Defined- Generation/dp/0062276700)

<comment><USER9> Console Wars paints a great picture on how philosophical differences between Sega of Japan and Sega of America destroyed the success they had.

<comment><USER10> Can you expand on that? I'm curious

<comment><USER11> Here's a couple interviews with Sega of America's CEO at the time where his frustration is very apparent:

[http://www.seganerds.com/2015/02/23/kalinske-sega-seem-to- ha...](http://www.seganerds.com/2015/02/23/kalinske-sega-seem-to-have-made- the-wrong-decisions-for-20-years/)

[http://www.seganerds.com/2015/05/11/former-sega-president- gi...](http://www.seganerds.com/2015/05/11/former-sega-president-gives-his- thoughts-on-the-saturns-launch/)

</comment></comment></comment></comment><comment><USER12> For a company to be so visionary and forward thinking on the arcade front, being a pioneering force of 3D polygonal games, it is astonishing that they released the Saturn in the form they did. You had to be a assembly savant to get decent 3D performance out of the Saturn that your average programmer could easily obtain on the Playstation using C. The VDP2 was pretty impressive though...

<comment><USER4> My understanding was that Sega had intended to focus on 2D gaming for the Saturn, but after realising what hardware was in the PlayStation they bumped up the specs to compete by adding in extra processors.

The 2D performance of the Saturn appears to have been better than the PlayStation (the RAM expansion probably helped here too), but the 3D capabilities couldn't match up to the PlayStation (I suspect that would've still been the case even if the Saturn was easier to program for).

<comment><USER13> I believe it was always designed for 3D but they made the 3D aspect more powerful as they saw what Sony was pushing. I get the feeling it was to be a sort of hybrid 2D/3D system instead of a straight jump into 3D.

But the multi-CPU thing was a mess. Sony had a very simple architecture that could still do a very good job. Sony made that mistake with the PS2 but still survived (momentum + sales as a DVD player) and the PS3 which hit them hard (Xbox 360 was much easier, got a big win for it). As of the PS4 they've learned their lesson.

</comment></comment></comment><comment><USER14> Wow, all this talk about VR in 1993 ... it would be interesting to read the history on that. Either the world wasn't ready for it or the implementation was very lame (something like Nintendo StarFox or worse yet ... BattleZone)

<comment><USER15> Sega VR was never released due to many of the same issues that made Nintendo's Virtual Boy a failure. Among these were how expensive the unit was, its poor graphical capabilities and most notably its eyestrain / headache inducing effects after a short period of play time [1]. However, as with all things SEGA at least we got a cheesy keynote presentation out of it [2].

[1] [https://web.archive.org/web/20100114191355/http://sega-16.co...](https://web.archive.org/web/20100114191355/http://sega-16.com/feature_page.php?id=5&title=Sega%20VR:%20Great%20Idea%20or%20Wishful%20Thinking)?

[2] [https://youtu.be/yd98RGxad0U](https://youtu.be/yd98RGxad0U)

<comment><USER16> To be blunt, it made people sick. I was there, I saw the queazy faces at the end of the demo. I was "hardware boy" in the producer ranks and when that came up, I passed. I'm not sure they would have given it to me, but I made it clear I would not want to work on it.

</comment></comment></comment><comment><USER17> According to the book "Console Wars," rivalry between Sega Japan and Sega USA was a major factor in the decline of Sega post-Genesis.

Sega Japan delayed the release of the SegaCD due to the politics of setting up alliances with other Japanese manufacturers and was also directly responsible for the complex design of the Saturn.

Sega USA stole a lot of thunder with the Genesis and Sega Japan wanted to take control back. Sega USA had an alternate design in the works, but Sega Japan insisted on the Saturn.

Up until that point, the "friendly rivalry" between Sega USA and its parent Sega Japan had been mostly beneficial. For example, Sonic would have turned out very differently if it were 100% developed in Japan or 100% developed in the USA. The back and forth on Sonic really benefitted the character and the game.

</comment><comment><USER18> Well it's not been mentioned on this page, but without Sega, Alien Isolation would never have been made. Without doubt one of the scariest games I have played, and as a fan of the first Alien film, I feel they beautifully recreated the atmosphere of that masterpiece.

Without Sega I don't think the game would ever have been made, it was in development for years and they developed their own engine for it. Unfortunately it only just broke even, I think maybe they went slightly too far on the fear side. It really does take you to the edge whilst playing it and often feels like you're having to will yourself forward rather than having an enjoyable experience.

Having said that, I'm glad I finished it and props to Sega for funding it.

</comment><comment><USER19> I remember the Dreamcast launch campaign, 9/9/99\. very cool.

The platform was hurt big time by the lack of EA support. That being said, it did seem like everyone on MTV Cribs had one in their home.

</comment><comment><USER20> I barely knew about Sega early history (only that SeGa was US based arcade makers), and it was surprisingly twisted.

Also, so many attempts that are nowhere now (Edge16 wasn't a bad idea). Markets are funny.

ps: To think that Nintendo Hubris gave birth to the competing Playstation which ate Sega's market.

</comment><comment><USER21> They made one big bugaboo that doomed them for sure. They didn't make the Dreamcast black.

You think I'm joking? You should read about consumer testing studies.

<comment><USER22> But the PlayStation wasn't black either...

<comment><USER23> Wasn't the Dreamcast the same gen as the PS2, not PS1?

<comment><USER7> It is kind of a weird in-between.

<comment><USER4> Many people see it as the start of the 6th gen.

[https://en.m.wikipedia.org/wiki/Sixth_generation_of_video_ga...](https://en.m.wikipedia.org/wiki/Sixth_generation_of_video_game_consoles)

</comment></comment></comment></comment></comment><comment><USER24> How the mighty have fallen.</comment>


Pastebin which is able to run your code. Accepts 40 languages. - <AUTHOR> http://ideone.com/

<comment><USER2> I don't want to test on somebody's server and cause them to have a bad day, but does this thing have proper stack overflow/memory protection?

      #include <stdio.h>
      int evil(int y)
      {
          char *x = (char *) malloc(y);
          return(evil(y+1)-evil(y+2));
      }

      int main(int argc, char **argv)
      {
           int a = evil(1);
           return 0;
      }

<comment><USER3> It won't compile ;) (no stdlib.h/string.h)

And it won't crash the server (at least... should not). There is a fixed limit on how much memory a process can allocate. This program will crash, but not because of malloc, just because the recursion gets too deep (stack overflow).

<comment><USER2> Maybe it won't compile, but:

      /spoj/c_run: line 5:  3844 Segmentation fault      ./prog

is the error I got, and that doesn't look like a compile error. (Also, just to be pedantic, I had noted the stack overflow possibility in my original post).

<http://ideone.com/view/09u9091w9h#> is the snippet.

</comment></comment></comment><comment><USER4> Is there a description of the sandboxing and watchdogging performed that we can read?

Are said components open source?

I cannot find this information about SPOJ. It is a black box.

<comment><USER3> Unfortunatelly for the readers it is closed-source, and part of the security model is obscurity. The core service has been developed for <http://spoj.pl> \- a bit ancient-looking repository of algorithmic problems.

<comment><USER5> Security by obscurity is not security at all. You should seriously consider opening up the source.

As my great aunt Ada used to say, "more eyeballs are better than your eyeballs."

</comment></comment></comment><comment><USER6> "But a pastebin like no other in the Internet."

Isn't this pretty much a reimplementation of codepad.org? So that's not entirely accurate...

<comment><USER7> # run your code on server side in almost 40 programming languages # and do it all with your own input data!

</comment></comment><comment><USER8> It would be nice if the languages in the sidebar on the left were in some non- abitrary order, preferably alphabetical :)

apart from that, a definite improvement on the languages <http://codepad.org/> supports

Chromium and Firefox 3.5 on Ubuntu just sit there "Loading...waiting for compilation"

</comment><comment><USER9> I like this and also really like <http://codepad.org> before it, but all I really want added is an embed feature. So you can post code snippets on your blog, and as people read the examples they can run the code.

Consider this a feature request for either service, it would be great.

<comment><AUTHOR> Please have a look at Scarky (scarky.com) - is it the style of embedding you would accept?

</comment></comment><comment><USER7> @onewland : feel free to test it ;) it's still in beta version, so any suggestions (even evil ones :D) are welcome!

@est: yeah... :)

@philjr: first ten languages are most popular ones, the rest is in the alphabetical order (between them is a special one - TEXT)

@philjr: we upgrade the servers - till 6 p.m. (CET) (planned)

<comment><USER10> I'm guessing you're the owner of the site. Question - Is 'Clips' supposed to be CLisp? There is an article about a CLIPS programming language on Wikipedia, but I couldn't find anything else for Common Lisp on your site.

<comment><USER7> CLIPS != CLisp

<comment><AUTHOR> Yes, CLIPS is CLIPS ;)

</comment></comment></comment></comment><comment><USER11> <http://codepad.org> is better, I don't have to see "Loading... waiting for compilation"

<comment><USER7> come back in a few hours, sorry for inconvenience

</comment></comment><comment><AUTHOR> Thank you for inspiring comments and some tricky codes you have submitted to the site - this is also helpfull.

</comment><comment><USER12> Great, now all we need is an online IDE that supports editing SVN and GIT directly.

<comment><USER13> Try <http://www.coderun.com/ide/> As I understand, SVN support will be added next week.

</comment></comment><comment><USER14> C# fails : Mono requires /proc to be mounted.

</comment><comment><USER15> Java fails:

/usr/lib/jvm/sun-jdk-1.6/bin/javac: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory</comment>


What really happened in the Christmas truce of 1914? - <AUTHOR> http://www.bbc.co.uk/guides/zxsfyrd <comment><USER2> If anybody hasn't listened to Dan Carlin's Hardcore History series on WW1 called, "Blueprint for Armageddon," I can't recommend it highly enough. He goes into very good detail about the war, including the Christmas Truce, and it is fascinating.

Blueprint for Armageddon is currently in the RSS feed, but if you wait too long you'll need to drop some $ to buy it. I listened to it for free but paid the man anyway because it's incredible.

<comment><USER3> There's some challenges to the accuracy of his analysis. [1]

Robert Newman in his History of Oil [2] proposes an interesting alternative interpretation / explanation of the events around the start of WWI. Also very highly recommended.

[1] [https://amp.reddit.com/r/badhistory/comments/3v63nh/dan_carl...](https://amp.reddit.com/r/badhistory/comments/3v63nh/dan_carlins_blueprint_for_armageddon_has_7/)

[2] [https://youtu.be/Qu47fIkIsY8](https://youtu.be/Qu47fIkIsY8)

<comment><USER4> The only challenges to the accuracy of Carlin's showa are pedantic and nitpicky.

<comment><USER2> I agree. You can tell he puts a tremendous emphasis on accuracy and quality, but sometimes you make mistakes when you are operating on a shoe-string budget.

Overall his stuff is pretty accurate. When doing a series that's like 20 hours long, you're bound to say _something_ inaccurate from time to time. While he does do a tremendous amount of research for the shows, and he tries hard to be accurate, he is also a master story-teller.

I surprises me a little that he didn't make a big deal about it. I would think he would correct it. In fact often he opens a podcast with correcting any errors from the previous one. Not sure I fully buy that. Would like to hear Dan's side of the story.

</comment></comment></comment></comment><comment><USER5> What a weird and needless article, it clearly had the agenda of de- romanticizing the truce events, but basically goes on to confirm that everything, you think happened, actually happened.

Obviously you can view history from different social constructs, but for me at least, this article did little but waste the time it took to read. I do realize that having studied history and being interested in this event in particular, I was probably going to know what the article contained, but I was still disappointed by it.

<comment><USER6> > Obviously you can view history from different social constructs, but for me > at least, this article did little but waste the time it took to read.

Well, the fact that these were some of the _LAST_ temporary truces and that the high command was actively terrified by these kinds of events and raised them to court martial offenses was something I hadn't known before.

<comment><USER7> There's also - not mentioned in the BBC piece - a class/political component to that.

The left end of the political spectrum was holding on to "proletarian internationalism", and agitated for workers of one nation refusing to shoot at workers of another.

The fears of the top brass came into being in Russia, where the Bolsheviks used the war as the main lever to gain power in November 1917, because the democratic parties didn't end the war in the February revolution.

(Unexpectedly, really, the prime target for revolutionary upheaval was industrialized Germany.)

</comment></comment></comment><comment><USER8> > Back in Britain, German battleships shelled the coastal towns of Whitby, > Hartlepool and Scarborough, killing 122 and injuring 450 civilian men, women > and children.

My grandparents had a piece of one of the shell mounted on the wall in the dining room, and it's now in mine. Someone made a small hexagonal wooden plaque and mounted a bit of shrapnel in the middle of it.

[https://en.m.wikipedia.org/wiki/Raid_on_Scarborough,_Hartlep...](https://en.m.wikipedia.org/wiki/Raid_on_Scarborough,_Hartlepool_and_Whitby)

</comment><comment><USER9> Putting a recommendation here for the "Extra History" cartoon video series, which has a couple new videos about the Christmas Truce:

Part 1: [https://www.youtube.com/watch?v=WUlPNWDvk-c](https://www.youtube.com/watch?v=WUlPNWDvk-c)

Part 2: [https://www.youtube.com/watch?v=9Pey- HmXGfs](https://www.youtube.com/watch?v=9Pey-HmXGfs)

The artwork is fun and the creator treats the historical material with a decent amount of respect (which might be surprising considering the cartoon nature of it).

<comment><USER10> While i love the series, and their orignal Extra Credits series on gaming, i can't shake the feel that the quality has been sagging as of late. Their latest show, Extra SciFi, comes across as almost "metaphysical".

</comment></comment><comment><USER11> I always like to plug my favorite YouTube series The Great War, they had an episode on this: [https://youtu.be/SpqVblMPRB4](https://youtu.be/SpqVblMPRB4)

</comment><comment><USER12> I had the honor this month of playing a bugle call in a production of All is Calm, which is a musical/radio show about the Christmas Truce. Essentially all of the dialog comes verbatim from the journals and letters of the soldiers who were there. If you're interested, I suggest listening to the recording of the original production: [https://www.youtube.com/playlist?list=PLCF720B19AE784B23](https://www.youtube.com/playlist?list=PLCF720B19AE784B23)

</comment><comment> cirrus-clouds A British supermarket chain (Sainsbury's) created an expensive Christmas advert on this topic in 2014:

[https://www.youtube.com/watch?v=NWF2JBb1bvM](https://www.youtube.com/watch?v=NWF2JBb1bvM)

</comment><comment><USER13> If I understood correctly there's no evidence for such a football game. In the new Doctor Who episode from today – funnily being set around this event – they show a scene in which soldiers play football together.

<comment><USER14> No evidence of a full game, but "kick arounds" are mentioned as having happened.

</comment></comment><comment><USER15> Clickbait title, but apparently has some interesting material.

The best things, however, remain the letters and memories of soldiers.

</comment><comment> LV-426 > The few reports of a football match between forces have endured for a > century, but what has contributed to the focus on this part of the story?

Because it's passed down through generations, told in schools, appeared in the video for Paul McCartney's hit song _Pipes of Peace_ and _is a remarkable example of humanity and unlikely camaraderie in an otherwise monstrous 4-year slaughter_.

Very modest of the BBC to suggest it's because of a BBC comedy series from 1989, though, which I don't remember even depicting a football game.

<comment><USER16> The Blackadder episode in question is renowned for being seen as so poignant it was repeated as part of BBCs Armistice Day coverage that year. I can't find viewership numbers but I'd be surprised if the Paul McCartney video in question has been viewed anywhere near as much. If anything many have accused the Blackadder series in question of largely shaping modern perception of WWI

You don't remember it depicting a football game because it didn't - it comes up as one of the characters reminisces about the Christmas truce.

That said the article gives that as just one of a number of examples of how the story has been perpetuated.

</comment></comment><comment><USER17> It's a long way to Tipperary? By Christmas 1914 the war's brutality was not yet in full effect. Within one year of the Christmas truce neither side would be particularly interested in splitting a bottle of Sherry. Poison gas came on the menu instead. By 1918 they were shooting at each other within minutes of the scheduled final ceasefire, when there was literally nothing to be gained beyond watching an enemy die one last time.

I'm not sure why the Christmas Truce continues to fascinate...it amounted to nothing in the grand scheme of the conflict other than to expose the final shred of naivete on both sides.

<comment><USER18> Not sure why you were DV'd. We all have some insight on events that happened a long time go and yours is not unreasonable.

</comment></comment><comment><USER19> "This content is currently not available on this device. Please try again later."

VPN time I guess...

(Location: Sweden)

<comment><USER8> Working from New Zealand - I have a VPN specifically for BBC content but it's not on at the moment.

<comment><USER19> Maybe it's a Commonwealth thing? :)

<comment><USER20> <humor>There's plenty of opportunities for former members (e.g. USA) to re- apply to join in the post-Brexit world. One of the many benefits could be access to the BBC iPlayer !</humor>

<comment><USER21> We will be happy to accept application for statehood from England. I expect Scotland to rejoin the EU.

?

<comment><USER22> OT: I wonder why there's a skull/question mark overlapping where the reply button should be? Something something Unicode, but for static text like "reply"? iOS 11 on an iPhone 6.

EDIT: page refresh and the reply button shows up, still with the unrendendered Unicode bit.

<comment><USER23> It's a sequence of Unicode characters that's supposed to render as the Welsh flag. The first character U+1F3F4 BLACK FLAG seems to be missing (at least when I copy and paste it); that's followed by "tag letters" from the U+E0061-U+E007A spelling "gbwls". See [https://unicode.org/reports/tr51/#valid-emoji-tag- sequences](https://unicode.org/reports/tr51/#valid-emoji-tag-sequences)

I think the BLACK FLAG is getting removed by HN's emoji filtering, but the modifier characters after it are remaining.

<comment><USER22> Thanks for the explanation. On my phone, so tools for diagnosis are lacking, but it sounds like you might know your Unicode better than I do anyway. :-)</comment></comment></comment></comment></comment></comment></comment></comment>


Rethinking the VLC's mirrors infrastructure - <AUTHOR> https://blog.l0cal.com/2013/05/02/rethinking-the-vlc-mirrors-infrastructure/

<comment><USER2> Couldn't they just use a CDN?

<comment><AUTHOR> VideoLAN is a non-profit organization made of volunteers. Who's going to pay?</comment></comment>


Silicon Valley's child soldiers.  - <AUTHOR> http://www.businessweek.com/technology/content/apr2011/tc20110412_222218.htm The vast majority of them will fail miserably. Then they've screwed up their careers. <comment><USER2> I know my comments questioning the background of parents for young startup successes was roundly criticized here a few days ago, but I can't help but bring up those points whenever I see articles like this which substantiate my assertions.

 _"I was surrounded by tech everyday for so long that I gained a natural interest for it," said Daniel Brusilovsky, an 18-year-old from San Mateo, California, whose upbringing by a software-manager father and Oracle Corp. veteran mother led him to found two startups before he was old enough to vote._

We tend to forget that most of the successes where the "founder" is very young seem to be attributable to parents with significantly more resources than the average person or who are in the industry and have resources and/or also connections.

I don't intend to dismiss the accomplishments of people like this, but these reports often try to present a case that young people are succeeding left and right in ideas simply because of technological advances and easier access to a computer. They don't often seem to make more than a glancing nod toward the fact that the parents are there to provide financial resources to get them started. Or in some cases, connections to get them started and skip ahead of the hurdles other children that you don't hear stories about would encounter.

I'd be more interested in stories where the kid isn't from a family where dad is a wealthy lawyer and the kid has a sure thing at a prominent university ahead of him and where the kid's mom and dad aren't professionals in the industry that are available to encourage, advise, support, and assist on behalf of their child. I'd be more interested in the seeming lack of stories where the kid with an absentee dad and a mom on welfare or toiling in a minimum wage job to provide for them and their siblings while attending a mediocre public school who has no mentor or support or resources creates the next Facebook or Windows or Angry Birds.

<comment><USER3> To be fair this is true of most people who end up succeeding in any walk of life, as a child/teen or adult..

</comment></comment><comment><USER4> The idea that one can never again obtain formal education if he drops out of college is absurd, and I hope the quote about "screwing up one's career" was taken out of context. Many universities require that all credits for a degree be earned within N years of each other, but N is usually a very large number compared to the timelines of 20 year-old dropouts. Furthermore, who would want a "career" where those evaluating you looked negatively upon having once done a start-up.

Are there any universities which, in practice, will not take back a student who left on good terms (passing grades, left at the end of a semester vs. in the middle, etc.)? My guess is that the real risk is that scholarships would not be renewed and the returning drop-out would have to pay full fare.

<comment><USER5> The only thing to worry about is student loans; you typically have to start paying them back 6-12 months after dropping out.

In general, though, you're right. The credits at my university are good for 11 years (after you stop going.)

</comment></comment><comment><USER6> This headline is linkbait. While there is a quip about "child soldiers" I don't think that's really what the article is about.

<comment><AUTHOR> I tried to type more in but it only let me use 80 characters so it ended up with just the child soldiers part. Honestly not sure what you mean by linkbait in this context, unless you mean from the original source's perspective.

</comment></comment><comment><USER7> Can people under the age of 21 even sign term sheets? I apologize for my ignorance, I'm just unsure of the wisdom of someone seeking VC funding before he can sign the paperwork.(I'm 29, BTW)

<comment><USER8> Contracts aren't enforceable unless they are over 18. This is where the parents come in as a proxy.

Anyway, most of these uberkids have the same story, mom or dad is a VC or SV entrepreneur. The kid relies on family connections to get their idea out there and raise capital. Rinse and repeat.

I'm not saying it as a bad thing, but stories like this tend to read like the NYTimes lifestyle sections.

<comment><USER9> Yeah, but did you notice the kid in charge of TechKids(?) finally is repairing is damage to his name for his TC debacle(ipad for article) and is starting again to get press for his efforts.

<comment><USER10> Backstory, anyone?

<comment><USER8> You can catch up on it here:

[http://www.aolnews.com/2010/02/05/tech-site-apologizes- for-c...](http://www.aolnews.com/2010/02/05/tech-site-apologizes-for-conflict- of-interest-again/)</comment></comment></comment></comment></comment>


Ask HN: Why hasn't Vine built a platform for discovering vines in browser? - <AUTHOR>

I would assume Vine is eventually getting around to building a better web based discovery experience for vines.
Currently all they have though is the ability to view 1 vine at a time in browser and that's assuming you have the URL to the vine.
So a friend and I decided to build a better viewing and discovery experience of Vines in your browser.
We launched http://www.vined.co yesterday and would like your feedback. We used the Twiiter API.
Go ahead and search for a popular hashtag like #mardigras #carnival #magic #howto etc and we pull in all the vines for you.
You can also search for a twitter @username and we will pull in all their tweets that include a vine.
You can play and pause the videos by clicking on the videos themselves.
Please let me know if you have any questions or feedback for us. <comment><USER2> Vine seems best suited to be a content creation tool for twitter. I would be very curious to see data on traffic for vines from twitter vs. all other sources.

</comment><comment><USER3> They are probably doing this right now, don't you think.

<comment><AUTHOR> I wouldn't be surprised at all, but we wanted to take our own stab at it to see how people might respond to it.</comment></comment>


ZFS Root Filesystem on AWS - <AUTHOR> https://www.scotte.org/2016/12/ZFS-root-filesystem-on-AWS <comment><USER2> I'm currently managing a Postgres cluster with a petabyte of data running on ZFS on Linux on AWS. Most of the issues we've come across are around us not knowing ZFS.

The first main issue was the arc_shrink_shift default being poor for machines with a large ARC. Our machines have Arc at several 100GB, so the default arc_shrink_shift was flushing several GBs to disk at a time. This was causing our machines to become unresponsive for several seconds at a time pretty frequently.

The other main issue we encountered was when we tried to delete lots of data at a time. We aren't sure why, but when we tried to delete a lot of data (~200GB from each machine which each contain several TB of data), our databases become unresponsive for an hour.

Other then these issues, ZFS has worked incredibly well. The builtin compression has saved us lots of $$$. It's just the unknown unknowns that have been getting us.

<comment><USER3> Agreed, ZFS has its caveats, but feature-wise and stability-wise ZFS is to -- a large degree -- what BTRFS _should_ have been.

The licensing is _incredibly_ unfortunate, though. (I don't care about the reasoning for the license, it's just _bad_ that it isn't GPL-compatible so that it could be compatible with the most prolific kernel in the world.)

Anyway, back to BTRFS-vs-ZFS. It seems abundantly clear that a filesystem is (no longer) a thing where you can just "throw an early idea out there" and hope that others will pick up the slack and fix all the bugs. There's just too much _design_ (not code) that goes into these things that it's not just about code any more.

My (small) bet right now as to the "next gen" FS on Linux is on bcachefs[1, 2]. It sounds _much_ sounder from a design perspective than BFS, plus it's built on the already-proven bcache, etc. etc. (Read the page for details.)

[1] [https://www.patreon.com/bcachefs](https://www.patreon.com/bcachefs) [1] [https://bcache.evilpiepirate.org/Bcachefs/](https://bcache.evilpiepirate.org/Bcachefs/)

<comment><USER4> According to Canonical, it _is_ GPL compatible. Either way, that shouldn't get in the way of the best file system in existence being used with the kernel of last resort.

<comment><USER5> The CDDL is incompatible with the GPL license. The GPL however is not incompatible with the CDDL.

This means Linux copyright owners could sue ZoL binary distributers, but Oracle could not.

However no one is shipping ZoL binaries, only the source code. The code itself is 100% conflict free.

<comment><USER6> Canonical ships ZoL binaries as of April 2016. They claim doing so doesn't violate the GPL since they are shipping it as a module rather than built into the kernel.

<comment><USER7> So you're saying it's only going to be available in user space and never in the kernel? Why don't oracle just relicense it?

<comment><USER8> No, they're supplied as kernel modules, packaged separately from the kernel. Before Ubuntu 15.10 you could still install it as a DKMS module (such that it compiled on the system it's being installed on). Now they just ship the pre- built .ko's, saving the user compilation time. There are still userland tools to interact with it zpool, zfs etc.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> This is quite a bit easier to do with Btrfs since there are installers that support it; but also with two neat features lacking in ZFS.

1\. Reflink copies. Basically this is a file level snapshot. The metadata is unique to the new file, but it shares (initially) extents with the original.

2\. Seed device. The volume is set read-only, mounted, add a 2nd device, remount rw, delete the seed. This causes the seed to be replicated to the 2nd device, but with a new volume UUID. Use case might be to do an installation minimally configured so as to be generic, and then use it as a seed for quickly creating multiple unique instances.

Another use case: don't delete the 1st volume. Each VM has two devices: the read only seed (shared), a read write 2nd device (unique). The rw device (sprout) internally references the read-only seed, so you need only mount by the UUID of the sprout.

Seed-sprout is something like an overlay, or a volume-wide snapshot.

</comment><comment><USER10> I have an Ubuntu image for a thumb drive that I made that does both mbr/efi boot with root on ZoL. I've used it to install ~10 computers now by booting, partitioning, attaching the internal disk to rpool and then detaching the thumbdrive and then installing the bootloader without ever rebooting to have a fully working install after that. It is pretty slick.

</comment><comment><USER11> I thought you shouldn't be running ZFS inside a virtualized environment?

<comment><USER12> Why?

<comment><USER13> Ideally, ZFS has exclusive control over the storage. When it's virtualized, it doesn't and there may be various HBAs, raid controllers, etc., in between ZFS and the actual disks. These can (do) "get in the way" and you (can) lose one of the biggest features of ZFS (data integrity and error correction).

<comment><AUTHOR> The keyword is definitely "ideally" :-) With a cloud provider like AWS, storage is always virtualized - so we've always got that working against us. I see ZFS in AWS more about flexibility than data integrity, although having said that ZFS should do just as well or better (certainly no worse) than EXT4, XFS, or BTRFS for reliability. The ability to add storage dynamically without having to move bits around is powerful.

<comment><USER14> And I've actually had (a couple times now) random _hardware_ failings, with random notification emails from Amazon, on EBS storage on AWS, with accompanying data loss.

Might as well treat your zpool like it's on real hardware and configure raidz accordingly. The cloud does have real, problematic hardware behind it, and it's important to remember that.

[edit] especially if you can configure your block devices such that you know they're sitting on different _physical hardware_ at the cloud data center, you _will_ gain that benefit of ZFS

</comment></comment></comment></comment></comment><comment><USER15> I've been waiting for Ubuntu to finish getting the native installed to do simple ZFS-root installs for a while now. This document is basically the same process: bootstrap linux on a supported FS, then use user space tools to make a ZFS fs on a new block device, copy linux there, adjust the boot system's pointers, and reboot.

<comment><USER16> I've used this guide and it works fine:

[https://github.com/zfsonlinux/zfs/wiki/Ubuntu-16.04-Root- on-...](https://github.com/zfsonlinux/zfs/wiki/Ubuntu-16.04-Root-on-ZFS)

It however advises to use blockid, not device-id, for mounts.

Any idea if this doesn't apply to AMIs?

<comment><USER15> My point is I want the installer itself to lay down the original disk FS as ZFS in the installer.

<comment><USER16> Considering how the current installer supports btrfs, it really doesn't seem like it should take too much effort. Someone however, will have to put in that effort.

And maybe people using ZFS want proper volume/subvolume management as good as support for traditional partitions or LVM volumes? If so, it will probably take a while longer to land.

<comment><USER15> Right; Canonical is expected to do this work, as they already added ZFS as a supported filesystem to Ubuntu.

<comment><USER16> In that case: Prepare to wait. Canonical has delayed lots of things lately in their eagerness to launch Unity 8 ;)

<comment><USER15> i've been waiting years now, not really a problem. When it's available I will install it on a test machine and make a copy of my live server's data there and then test it for a year.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> Can someone explain why the author is aligning to 4096 sectors (2M) boundary. While most tools (gdisk et al) default to 2048 sectors?

<comment><AUTHOR> I can (I'm the author). The partitions are aligned to 2048 sectors (4096 is evenly divisible by 2048). But also note the first usable sector is 2048, not 0 - so the first partition, although we tell sgdisk to start at 0, actually is from sector 2048-4095. I don't know the exact reason why the first usable sector is 2048 - I believe it has to do with legacy support and MBR compatibility - but I'm not sure of the details.

<comment><USER18> I was intrigued by the first usable sector exact reason and found out this link that might be an interesting read

[http://jdebp.eu./FGA/disc-partition- alignment.html](http://jdebp.eu./FGA/disc-partition-alignment.html)

</comment></comment></comment><comment><USER19> Is it ok to run ZFS without ECC RAM?

<comment><USER6> Yes. It always has. The "ZFS needs ECC RAM" meme comes from the fact that on many systems the (non-ecc) RAM is the weakest point in the data integrity path if you are running ZFS.

For an analogy, consider a world where car engines have a non-trivial chance to instantly explode when involved in a crash. Then someone comes out with an engine that doesn't explode. People say "you should wear seatbelts if you use this non-exploding engine," but your car has no seatbelts; clearly you are still safer with the non-exploding engine, but all of the sudden, seatbelts are more likely to save your life than before.

<comment><USER20> In think the concern is more that if you encounter a bit-flip checksumming a block on write, then ZFS will mark the data corrupt on read; and thus, make good data unreadable.

A non-checksumming FS would not be vulnerable to this particular issue. On the other hand, would undetected corruption through bit rot be a worse problem? Almost certainly.

And considering how vanishingly unlikely such a scenario is, I do agree with your sentiment.

That said, I'm not sure if my understanding of the issue is complete and would welcome an explanation of the failure scenarios that [very] occasional RAM bit-flips expose ZFS to.

<comment><USER21> It all depends on the relative probability of those two scenarios occurring, though. And the problem with ZFS is that each time you are scrubbing you are essentially rolling the dice, so you are rolling them a lot more times.

Let's say that you have a 99.9% chance of the scrub running correctly on a big pool with non-ECC memory (0.1% chance of a bit-flip during the scrub). Any single scrub is extraordinarily likely to succeed, but if you run a scrub every day then over the course of a year then your chance of your pool surviving falls to 0.999^365 = 69.4%.

Pick your favorite numbers here, 0.1% failure chance per scrub is probably way high. With five nines your yearly survival rate is 99.6%. But do remember that soft errors are fairly rare in modern servers _mostly because they use ECC RAM_ , you can't look at data with ECC and assume you'll get comparable results by using non-ECC RAM.

In general, if you scrub infrequently you are probably going to be OK. (but then why are you using ZFS instead of LVM?) If you live at high altitude, however - let's say in Denver - you are also facing significantly increased soft error rates. The extra atmosphere at sea level does make a strong difference in shielding, something around 5x reduction in strike events.

On the plus side - the SRAM and some parts of the processor do use ECC internally, which is good because fault rates increase with reduced feature size and increased number of transistors. The CPU is potentially the most sensitive part of the system per unit area, so it's very important to protect against errors there.

And on the other hand - disk corruption or failure probably outweigh those kinds of concerns in practice. But it's not like it's expensive to get a system with ECC. An Avoton C2550 runs like $250. So why take the risk anyway? Your data's worth an extra $100 in hardware.

Heck, you can run ECC RAM on the Athlon 5350 and the Asus AM1M-A motherboard. Boom, ECC mobo/CPU combo for under $100. It's just a little thin on SATA channels. It's a shame there's no "server" version of this board with dual NICs, IPMI, and an extra SATA controller tossed on there.

</comment></comment></comment></comment><comment><USER22> > We also allow overlay mount on /var. This is an obscure but important bit - > when the system initially boots, it will log to /var/log before the /var ZFS > filesystem is mounted.

You shouldn't need to in a systemd based distro: journald logs to /run until /var comes up. (and then flushes across) See [https://www.freedesktop.org/software/systemd/man/journald.co...](https://www.freedesktop.org/software/systemd/man/journald.conf.html#Storage=)

<comment><AUTHOR> Shouldn't, perhaps, but we definitely have to (and are running with systemd)! I have not made any effort to understand what is logging early - there's not much that should happen prior to ZFS mounting everything.

<comment><USER22> Did you (accidentally) create the directory /var/log/journal in the rootfs? Make sure your /var is actually empty in the rootfs image.

<comment><AUTHOR> Yep, it's empty when the target was created/installed. It's something happening early at boot time, but I haven't diagnosed exactly what's going on. And now that I think about it, I've seen the same thing on local ZFS Debian installs as well - worth digging into when I have some time, likely a bug somewhere.

</comment></comment></comment></comment><comment><USER23> for less production instructions on ubuntu 16.04 - here is a simple guide - [http://www.howtogeek.com/272220/how-to-install-and-use- zfs-o...](http://www.howtogeek.com/272220/how-to-install-and-use-zfs-on- ubuntu-and-why-youd-want-to/)

</comment><comment><USER24> Anyone have thoughts on how to turn this into something more reproducible, like Packer? Love the idea but would hate to rebuild AMI's by hand every X time for Y regions.

<comment><AUTHOR> I definitely have thoughts about automating the process :-) - we certainly plan on getting the whole process into an automated, repeatable build.

<comment><USER4> (Disclaimer - I work at HashiCorp)

I'm working on a Packer builder type that will support this use case as we speak. The existing AWS `chroot` builder would likely be sufficient, but requires running from within AWS.

<comment><USER24> Seems like a perfectly logical pre-req. Easy enough to automate with say a Lambda function to spin up a pre-configured host instance to build the AMI's.

So... very exciting, looking forward to hearing more about when it "hits the streets"!

</comment></comment></comment></comment><comment><USER25> Anybody tried ZFS on Centos or other RHEL like distros?

<comment><USER13> cf. [https://github.com/zfsonlinux/zfs/wiki/RHEL-%26-CentOS](https://github.com/zfsonlinux/zfs/wiki/RHEL-%26-CentOS)

<comment><USER25> Thanks! I'd read that before, was more looking for anecdata from someone who'd tried it, especially in production.

</comment></comment></comment><comment><USER26> I have messed with ZFS on Linux on Ubuntu and I have to say that I would not yet trust it in production. It's not as bullet proof as it needs to be and still under heavy dev. Not even at version 1.0 yet.

<comment><USER27> Do you have any specific reasons not to trust ZoL?

ZFS-on-Linux devs say it's ready for production[1].

Lawrence Livermore laboratory stores petabytes of data using ZoL[2].

If we're sharing anecdotes, ZoL has served me fantastically for several years.

[1] [https://clusterhq.com/2014/09/11/state-zfs-on- linux/](https://clusterhq.com/2014/09/11/state-zfs-on-linux/) [2] [http://computation.llnl.gov/newsroom/livermores-zfs-linux- po...](http://computation.llnl.gov/newsroom/livermores-zfs-linux-port-hit-it- industry)

<comment><USER28> We have encountered a reproducible panic and deadlocks when a containerized process gets terminated by the kernel for exceeding its memory limit:

[https://github.com/zfsonlinux/zfs/issues/5535](https://github.com/zfsonlinux/zfs/issues/5535)

We're strongly considering using something else until this gets addressed. The problem is, we don't know what, because every other CoW implementation also has issues.

* dm-thinp: Slow, wastes disk space

* OverlayFS: No SELinux support

* aufs: Not in mainline or CentOS kernel; rename(2) not implemented correctly; slow writes

<comment><USER29> The issue you link to was opened a day ago.

If that were me, I'd see how quickly it was fixed before strongly considering something else.

<comment><USER28> Have you had any issues to report? If so, how quickly were they fixed? Knowing what the typical time is to address these issues would help us make a more educated decision.

<comment><AUTHOR> Yes, we've run into 2 or 3 ZFS bugs that I can think of that were resolved in a timely fashion (released within a few weeks if I recall) by Canonical working with Debian and zfsonlinux maintainers (and subsequently fixed in both Ubuntu and Debian - and upstream zfsonlinux for ones that were not debian- packaging related). Of course your mileage may vary, and it depends on the severity of the issue. Being prepared to provide detailed reproduction and debug information, and testing proposed fixes, will greatly help - but that can be a serious time commitment on your side (for us, it's worth it). Hope that helps!</comment></comment></comment></comment></comment></comment>


SQL vs. NoSQL Databases: What's the Difference? - <AUTHOR> https://www.upwork.com/hiring/development/sql-vs-nosql-databases-whats-the-difference/ <comment><USER2> I have issues with his "Reasons to use NoSQL"

* Making the most of cloud computing and storage

There are plenty of "cloud" hosting options for SQL databases, enough that a simple google search should make my point for me.

* Rapid development

This is a really common reason that I have heard for wanting to use NoSQL databases. It is flat out wrong.

While NoSQL databases may not force you into a schema for your database, you will pay a toll for this mutability in your application layer.

I have worked on several NoSQL backed projects, and nearly without fail development speed drops like a rock once you make changes to the way your data is persisted.

SQL migrations may seem tedious, but the process of planning your data model and having rigid definitions for your data types saves you huge amounts of time in the long run.

Data is the foundation of most applications, and if you can't rely on your data then you are building your application on sand.

<comment><USER3> _SQL migrations may seem tedious, but the process of planning your data model and having rigid definitions for your data types saves you huge amounts of time in the long run._

Your reasoning seems too black and white, most the of the time, you _can 't_ know your data model ahead of time, that's why prototypes are so useful, so just using your language data structures or some less rigid datastore lets you get quicker to your data model.

<comment><USER4> Having rigid definitions for data types doesn't necessarily mean the datastore is rigid. It just means that you know what type of data goes in each column. Like it or not, if you change your schema that change has to be handled somewhere - either you update the old data to the new schema (do this), or you handle old versions of the schema in the application (fundamentally non- scalable IMO). It doesn't matter whether they're values in a JSON object or columns in a relational DB.

Flyway is a fantastic tool for making changes to relational schemas. Your code is versioned, and you can just keep the schema migration scripts right next to it. If you need to upgrade an old schema, it just walks through the migration scripts until it's up-to-date.

If there is some portion of your model that really, truly, honestly consists of unstructured data, you can just put that in a JSON column.

<comment><USER3> That is why I mentioned prototypes, they are a quick messy hack that is not meant to scale, its purpose its to validate your ideas and decisions, what is going to become your MVP, which IMO is far more important than getting the perfect stack/tooling from the start.

<comment><USER2> We obviously value very different things in regards to software development.

You really seem to favor initial velocity and rapid iteration. Fair, I can totally understand why.

I favor planning, stability, and limiting thrash due to bad/uninformed decision making.

In my experience the rush to market only pans out when you plan on having a large influx of funding to rebuild your stack. Otherwise you are stuck holding a mess of code and trying to scale ideas that never should have gone to production in the first place.

There is a whole other side to the industry that demands provably correct solutions, and will not tolerate the "hacker culture". Not because of any petty reasons like work hours or perks, but because some applications require a level of accuracy that your average growth hacker can't meet.

</comment></comment></comment></comment></comment><comment><USER5> Why is this even on HN? There's no reason to debate this, it's a content marketing fluff piece for a company that has no technical pedigree, written by a freelance copywriter rather than an engineer.

It's also about 50% wrong. Let's just move on.

<comment><USER6> On some level I'm glad it is:

Things your boss or client will read, quickly turn into things your boss or client will say. I would rather be prepared for the wacky misinformed conversation that will happen, it helps keep down the laughter and frustration.

<comment><USER7> And on that theme, then get ready for when your boss gets to the part about how NoSQL gives you:

"Rapid development. If you're developing within two-week Agile sprints, cranking out quick iterations, or needing to make frequent updates to the data structure without a lot of downtime between versions, a relational database will slow you down."

Reminds me of this classic [https://www.youtube.com/watch?v=b2F-DItXtZs](https://www.youtube.com/watch?v=b2F-DItXtZs)

</comment></comment></comment><comment><USER8> The article read like it is written by someone who has never understood how to use a SQL database.

To quote Mr Torvalds himself:

"Bad programmers worry about the code. Good programmers worry about data structures and their relationships."

Something that i struggled with before i learned how to use a SQL/relational database was to actualy use the database relations in my code. I first specified the relations in the database then i basicly redid them in the code.

The way i tend to program these days is to have basically all my relations restrictions and relational rules in the database. Whenever i want to change something you just alter stuff in the database GUI. Most of the application code will just follow along.

<comment><USER9> In my experience, if you have the relational database model fully defined and correct then the rest of the application is pretty much designed. All the screens and elements you need are obvious.

<comment><USER7> Indeed, but if you are building in microservices, a new level is introduced.

If you can get your service boundaries and APIs fully defined and correct, then the relational database models (underpinning each of those services) just fall from the tree for you.

And then as you say the screens and elements are obvious.

<comment><USER9> Honestly I'd still prefer to go other way -- from the relational database models you get your APIs defined and correct and then the screens and elements are obvious.

I find if you start at the database model layer you much less likely to screw up the API design. The database model forces a bit of rigor that you can't get going the other direction.

<comment><USER7> IMO it's dead easy to create APIs from a database schema, where that schema underpins your monolith and you're opening said monolith up to the outside world, and you don't really care too much what goes on out there.

But if you're building a system which is not a monolith, and instead is made of up of, say, 20 services, then putting good boxes around those services and defining the lines that connect them (the APIs) is an essential prereq to designing the databases that sit inside the boxes.

(Though really what's happening, as always, is you're doing it all in parallel, just with more emphasis on the higher level stuff).

<comment><USER9> I can't really disagree with that. I usually design micro-services the same as do monoliths; it's just the client is different (another service).

</comment></comment></comment></comment></comment></comment><comment><USER10> Chuckling at: Your data is structured and unchanging. If your business is not experiencing massive growth that would require more servers and you're only working with data that's consistent, then there may be no reason to use a system designed to support a variety of data types and high traffic volume.

SQL Databases support a variety of data types and high traffic volume, they just dont allow you to change things without thinking a little more deeply on the problem.

This article is just fluff.

</comment><comment><USER11> Postgres is the last SQL DB thing mentioned?

No mention of RethinkDB ([https://rethinkdb.com/](https://rethinkdb.com/)) ?

SQL is good if your data is "unchanging"? Schema migrations happen, SQL can be sharded and scaled to multiple servers, and the fact is, unless you're facebook or google, you probably won't even need it. Didn't reddit run postgres since it began?

Glad I skimmed this.

<comment><USER12> Yeh seriously RethinkDB is the perfect hybrid of "NOSQL" document storage, with SQL like relationships. Been using it for all my projects the past year, and I love it.

<comment><USER11> Same here, I have no idea why it doesn't get more press, as far as I'm concerned it's the best document store out there.

Mongo has gotten away with some pretty substantial misses, yet still get considered every time NoSQL comes up (maybe first-to-market is really just that powerful), but RethinkDB rarely gets one, despite being so stable and having so many good features.

And when I say mongo has gotten away with substantial misses, I don't mean the documentation miss that lead to documents getting dropped, I mean core issues with their engine that necessitated the wiredtiger contributions/rewrite. Of course, mongo works very well generally, and they've definitely done their part when it comes to documentation and growing the community, and carving the path for what NoSQL document stores (in this day and age) look like.

</comment></comment></comment><comment><USER13> I personally think SQL v. NoSQL is less useful of the two dichotomies, the other one being OLTP v. OLAP. In the end, SQL is just an API. You can put SQL- like interface on NoSQL as well (like SlamData for MongoDB or Crate for Elasticsearch).

On the other hand, OLTP v. OLAP (transactional v. analytic) is directly tied to use cases and has more profound consequences as far as technical decisions go (data structures, algorithms, etc.)

<comment><USER14> This is very good point. For example, MongoDB and Oracle are not that different compared with Splunk.

</comment></comment><comment><USER15> This talk by Martin Fowler is a fantastic overview into the SQL vs NoSQL discussion : [https://www.youtube.com/watch?v=qI_g07C_Q5I](https://www.youtube.com/watch?v=qI_g07C_Q5I)

</comment><comment><USER16> There should be mentions about CAP theorem, and tradeoffs about consistency vs availability. Sometimes you dont care as much about CAP-consistency than availability or scalability.

</comment><comment><USER17> For me, the most important difference is that a SQL "Database" is actually an incredibly powerful application server, with a built in compiler for a data processing language, and many years of development on access strategies, whereas a NoSQL database is just a level above an http server with an index that scales really well. That's a bit of an exaggeration, but I find it helps new teams understand the big picture. In a microservice environment, I encourage my teams to think of their SQL database server as a microservice, not a persistence store.

</comment><comment><USER18> That happens, when a content marketer write about a technical topic... Just sad.

</comment><comment><USER19> Many databases considered NoSQL actually have SQL now. Cassandra for instance. Granted it's not as critical to the execution as SQL is for RDMS but I would much prefer the distinction to be: RDMS / Relational versus KeyValue / Document Stores. But I digress.

Some of the other criticisms in this thread are very valid especially in the area of why you should use one versus the other so I won't bother regurgitate them I just felt like a better distinction could have been used between what they were comparing.

</comment><comment><USER20> > _NoSQL data doesn't need to be prepped ahead of time._

Unless you're using CouchDB and you need to change some views, and then you have to re-index the whole thing, which can take forever.

</comment><comment><USER21> Bah. People keep confusing the syntax with the data model. SQL is simply a notation to express theorems in relational set theory. It's pretty much the only pure-functional, side-effect-free programming language that's actually gone mainstream [0]. If you look carefully at the APIs of the "No SQL" databases, you'll find them introducing relational set theoretic features.

To paraphrase Paul Graham's unbearably smug comment about Lisp: once you add filter, group by, and join, you can no longer claim to have invented a new query language, just another dialect of SQL. Math has this funny habit of remaining true no matter how many mean things people say about it on their blogs.

[0] I mean basic core SQL, not the vendor-specific stuff like PL/SQL.

<comment><USER22> This is interesting, but I admit I am a bit confused.

Having read "An Introduction to Database Systems" by C.J. Date ([http://www.amazon.com/Introduction-Database- Systems-8th/dp/0...](http://www.amazon.com/Introduction-Database- Systems-8th/dp/0321197844)), I have a tremendous appreciation for Relational Algebra and Theory which allows for the closed functional nature/syntax of SQL which holds true across the various normal forms (1st-5th).

Perhaps due to my own lack of understanding, I always assumed that without an underlaying relational model SQL loses its closure. So for me, I always thought the distinction between SQL and NoSQL was whether or not the underlying database model was relational.

Sure for many of the queries against a non-relational model you could adopt a SQL-like syntax (which many languages seek to do), but it would no longer be operating in the closed Relational Algebra space.

Could you comment on this and help me understand the finer points/where I went wrong?

<comment><USER23> Syntax and being relational are orthogonal.

You can set up non-relational data structures in SQL. You can set up a relational data structure in virtually any programming language.

However what the NoSQL people are learning is that smart developers really want relational models. So they are offering the features that can be used to achieve that.

<comment><USER22> That's where I think where most NoSQL proponents start to miss the value of relational models and the closed Relational Algebra it allows.

As I understood it, SQL was a language for describing the Relational Algebra which was a closed mathematical concept.

You can take the syntax, assign functions to produce output from a non- relational model, but it's no longer SQL...and it's underlying power (the closed Relational Algebra) is no longer present.

So in a sense syntax and being relational are orthogonal, but syntax isn't the defining characteristic of SQL (or why it's so powerful). I think a more insightful statement is: SQL (Relational Algebra) and being relational are codependent and relational and non-relational are orthogonal.

Which, if I am not mistaken (and again I am still trying to understand the finer points which is what motivated my original comment), NoSQL people fundamentally _cannot_ offer a query language similar to SQL based on the closed relational algebra.

They can mimic the syntax to make it more intuitive for new users coming from traditional RDMBS environments, but it's fundamentally _not_ SQL/relational algebra.

But again, I am just a cursory admirer/learner and I am still trying to iron out my own understanding of the underlying theory. So all additional information/clarifications welcome :)

</comment></comment></comment></comment><comment><USER24> SQL...?

<comment><USER25> not really, sql is usually used to refer to relational databases (and yes i am aware that sql is not fully relational)

to sql vs nosql

is more like relational vs other models

nosql can also be seen as domain specific databases some nosql options work great for specific types of apps but not others

and to conclude, the key feature of relational databases is integrity, your data is normalized, so you are guaranteed integrity, problem is, integrity is not free, this why we need nosql and other bi solutions like olap cubes

but olap cubes are different, since they dont replace relational databases, they complement each other ... olap can also be seen as domain specific

</comment></comment><comment><USER26> I'm always saddened when I don't see MultiValue[0] databases in the list, but the reality is that there's almost nothing that's open source in this space.

My first real job was doing development on a custom application built entirely in UniVerse[1]. It was a really interesting way to work and mirrors a lot of what the Open Source NoSQL databases do, though it does it differently. Instead of storing the schema with the records (e.g., a JSON document), a record was simply a list of data elements (fields), each field could have multiple values (or not), each value could have multiple subvalues (or not), and there was a lower level that you could go to in order to store multi-line text data.

There was a dictionary attached to each file that primarily drove the query tool. You could also build calculated fields (I-descriptors) to do primitive joins, among other things. If you had a file containing invoices, you might have two fields to list the item number and quantity (these would be repeated for as many items as are on the invoice). You could then use an I-descriptor to follow item number over to the items file and pull the description, price, etc.

The entirety of the application ran within UniVerse. When users logged in to the unix server, their shell would run a script that would set up the environment and fire up UniVerse. The UniVerse LOGIN paragraph would then show a menu system and allow them to do their thing. Everything was written as either a paragraph, roughly equivalent to a shell script that ran UniVerse commands, or a BASIC program. The dialect of BASIC natively understood dynamic arrays, which were a 1:1 match to the structure of the records on disk.

UniVerse also had a built-in way to execute SQL queries against the multivalued data. In the invoice example above, the item number and quantity would be associated in the dictionary. These would then be exposed as another table by the SQL engine. You could go "SELECT A.INVOICENO, B.ITEMID, C.DESCRIPTION, B.QTY FROM INVOICES A, INVOICES_ITEMS B, ITEMS C WHERE A.@ID = B.@ID and B.ITEMID = C.ITEMID" and it would know that INVOICES_ITEMS is really part of the data in INVOICES.

It was a really cool system and I wish there was something like it in the Open Source world. Sadly, development on MaVerick[2] seems to have stalled.

[0] [https://en.wikipedia.org/wiki/MultiValue](https://en.wikipedia.org/wiki/MultiValue)

[1] [http://www.rocketsoftware.com/products/rocket- universe](http://www.rocketsoftware.com/products/rocket-universe)

[2] [http://www.maverick-dbms.org/](http://www.maverick-dbms.org/)

</comment><comment><USER27> _Grabs popcorn_</comment>


Postgres Container Access with a SQL Client - <AUTHOR> http://chrisstump.online/2016/04/06/postgres-container-access-sql-client/ <comment><AUTHOR> Quick read on how to use a SQL client with the official Postgres Docker image

<comment><USER2> Solid technical writing. Might make a good StackOverflow/StackExchange question and self-answer...if you're into that sort of thing.</comment></comment>


Unusual Maps - <AUTHOR> https://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0002yI <comment><USER3> This is like lettersofnote.com, but with maps instead of letters - <USER2> interesting, feels like something you can dig into repeatedly, with many rabbit holes to follow. For anyone interested in this, you might also want to check out the book "The Writer's Map: An Atlas of Imaginary Lands" which contains maps from various authors for use in their books (mostly sci-fi and fantasy, since those genres are the ones that need a map that doesn't already exist).

<comment><USER4> today i enjoyed [https://www.armellecaron.fr/works/les-villes- rangees/](https://www.armellecaron.fr/works/les-villes-rangees/)

<comment><USER5> That's really cool and perhaps a be little useless, I'll try to make my own...

</comment></comment></comment><comment><USER6> My favorite unusual map is probably AuthaGraph:

> This rectangular world map called AuthaGraph World Map is made by equally > dividing a spherical surface into 96 triangles, transferring it to a > tetrahedron while maintaining areas proportions and unfolding it to be a > rectangle.

> The world map can be tiled in any directions without visible seams. From > this map-tiling, a new world map with triangular, rectangular or > parallelogram's outline can be framed out with various regions at its > center.

[http://www.authagraph.com/projects/description/%e3%80%90%e4%...](http://www.authagraph.com/projects/description/%e3%80%90%e4%bd%9c%e5%93%81%e8%a7%a3%e8%aa%ac%e3%80%91%e8%a8%98%e4%ba%8b01/?lang=en)

> It shows there are no "four corners of the earth" by arranging several world > maps without visible seams around a world map with color. You can see > Antarctica at the right bottom is close to not only South America but also > Africa and Australia.

[http://www.authagraph.com/products/map/product- article-01/?l...](http://www.authagraph.com/products/map/product- article-01/?lang=en)

<comment><USER7> The Peirce Quincuncial Map can also be seamlessly tiled: [1].

It's a conformal map, meaning that it preserves shapes. But strange things happen at the four corners of each diamond-shaped tile. If you go around one of those points on the map, you've actually gone around the real point on Earth _twice_. Also at those points, opposite directions on the map are actually the same direction on the Earth. The technical description of those four points is that they're singularities of the map projection (derivatives of the form d(location on Earth)/d(map coordinate) are undefined).

The map looks fine because the four singularities on each tile are in the middle of the ocean. But if you play around with the projection to put any of the singularities inside a landmass, your head will explode.

Looking at the AuthaGraph may you linked, it has at least two singularities on each tile.

1\. [https://en.wikipedia.org/wiki/Peirce_quincuncial_projection#...](https://en.wikipedia.org/wiki/Peirce_quincuncial_projection#/media/File%3APeirce_quincuncial_projection_SW_20W_tiles.JPG)

</comment></comment><comment><USER8> Edward Tufte's book "The Visual Display of Quantitative Information" is a classic that is still relevant today. It was written before Excel charts etc but the key concepts, especially "less ink is better", is something that everyone should subscribe to. It also contains my favourite chart which is Charles Joseph Minard representation of Napleons march (and subsequent retreat) to Russia. It shows the size of the army, relevant to location and temperature.

[https://en.wikipedia.org/wiki/File:Minard.png](https://en.wikipedia.org/wiki/File:Minard.png)

<comment><USER9> Actually, the key point is not that less ink is better -- the idea is that every bit of ink should be as _information-dense_ as possible, in order to communicate the points desired.

"Less ink" leads to people dumbing down plots for bad reasons. Or in the interest of "clean design" making charts that are uninformative.

Charts should be very detailed when they _need to be_. But the information should reveal and help the reader to draw conclusions visually, not obfuscate.

He gives these examples, which are highly detailed, and dense in information. Every piece of ink is informative, yet at multiple levels of viewer "zoom" there are meaningful takeaways that can be identified:

[https://i.pinimg.com/originals/c8/18/bc/c818bc89caa283bd4307...](https://i.pinimg.com/originals/c8/18/bc/c818bc89caa283bd4307b545c8b25d6c.png)

[https://www.edwardtufte.com/bboard/images/0003Kf-26845/VEp94...](https://www.edwardtufte.com/bboard/images/0003Kf-26845/VEp94.jpg)

</comment></comment><comment><USER10> The moon maps reminded me of porkchop plots, which are maps of a sort:

[https://en.wikipedia.org/wiki/Porkchop_plot](https://en.wikipedia.org/wiki/Porkchop_plot)

</comment><comment><USER11> Shameless plug: I used Sankey diagram to visualise country budget: [https://uk.wikibudgets.org/w/united-kingdom- budget-2015](https://uk.wikibudgets.org/w/united-kingdom-budget-2015)

</comment><comment><USER12> It's missing the greatest of infographics, by Minard. It's a clever representation of the Grande Armée's campaign in Russia, describing time, battles, temperature and casualties on a single graph.

[https://de.m.wikipedia.org/wiki/Charles_Joseph_Minard#/media...](https://de.m.wikipedia.org/wiki/Charles_Joseph_Minard#/media/Datei%3AMinard.png)

<comment><USER13> Tufte definitely has something of a soft spot for Minard. He discusses that particular map on page 40 - 41 of _The Visual Display of Quantitative Information_ (in the section "Narrative graphics of space and time"), and his site has a page devoted to it/the sources used to produce it: [https://www.edwardtufte.com/tufte/minard](https://www.edwardtufte.com/tufte/minard)

</comment></comment><comment><USER14> I'm a big fan of Edward Tufte after attending one of his courses and gaining a new appreciation of data presentation.

<comment><USER15> Likewise. I attended his seminar last year at the recommendation of a colleague and it was a day well spent. I assume he probably won't be doing such large courses this year, which is a shame. I'd recommend his course to anyone who gets a chance to attend whenever he starts them up again.

</comment></comment><comment><USER16> Chrome says insecure - is this a professional site?

<comment><USER17> This seems to be the offending image: [http://ianwojtowicz.com/Red%20Shift/Red-Shift- Earth-6400px.j...](http://ianwojtowicz.com/Red%20Shift/Red-Shift- Earth-6400px.jpg) which is now a 404 anyway (or rather, it's a 301 followed by a 200 with text explaining it should be a 404).

<comment><USER18> Working link for the above image: [https://ianwojtowicz.com/Earth%20Doppler/Red-Shift- Earth-640...](https://ianwojtowicz.com/Earth%20Doppler/Red-Shift- Earth-6400px.jpg)</comment></comment></comment>


Ask HN: How do you keep your brain fueled while cutting? (body building) - <AUTHOR> What does your diet look like when you need to be calorie deficit because you are in the cutting phase, but you also need to focus 8-10 hours per day on programming related work?
Put another way, if you are on a high protein, low-carb calorie deficient diet A) is that going to slow down your brain and B) if yes, how do you modify that diet to achieve your cutting goals but also not jeopardise your mental stamina?
Would love to hear HN's perspective on this. <comment><USER2> * Lots of water.

* Accept that you're not going to be 100%.

* It gets better over time. After 2 weeks, I didn't even feel drained on a 25g carb day (while carb cycling.)

* Carb cycling keeps the impact on work to one day.

* Work out in the evenings so you're not drained for the full day.

* Fats can give you a lot of energy if you use it well. i.e. eat good fats (ex. salmon, coconut oil, etc) and eat it evenly throughout the day.

<comment><AUTHOR> how many days on/off for the carb cycle?

<comment><USER2> My typical cycle is 1 week. 2 feed days. 5 days of depletion.

</comment></comment></comment><comment><USER3> I usually end up sleeping more.

I try and plan some work from home days and then I can take a quick nap over lunch-time and it also cuts down the commute time which I can use to take power naps!</comment>


Java 4-ever movie trailer - <AUTHOR> http://www.youtube.com/watch?v=6gbNZK60Xe4

<comment><USER2> Not being familiar with JavaZone, I am assuming that this must be a teaser for a short film to be played at a Java confab of some sort? Or is it just your typical spoof trailer?

</comment><comment><USER3> "Directed by Alan Smithee"</comment>


Git-hub – Do GitHub operations from the git command - <AUTHOR> https://github.com/ingydotnet/git-hub <comment><USER2> Why should I favor this over Github's hub?

[https://github.com/github/hub](https://github.com/github/hub)

<comment><USER3> > hub is best aliased as git, so you can type $ git <command>

I'd rather have a git subcommand to interface with github. The way hub works is to alias over git and make it do github things by default. That seems like an obviously wrong way to do it.

<comment><USER4> You could probably wrap it with another BASH script named git that looks for hub as $1, otherwise it passes its args directly into the git command. I haven't quite worked out how $PATH resolution would work in that scheme though.

<comment><USER3> Git already works like this. If you attempt `git foo`, your $PATH will be consulted for an executable with the name `git-foo`, and if found, it will be called with the rest of the arguments. That's why this command is `git-hub` and is invoked with `git hub`.

</comment></comment></comment></comment><comment><USER5> Wow, it's all written in bash. This has to be the biggest bash program (?) I've ever seen.

<comment><USER6> I think rvm [1] still holds that record for me.

[1]: [https://github.com/rvm/rvm](https://github.com/rvm/rvm)

<comment><USER7> Wait... rvm is pure bash?

Oh dear god. That's honestly terrifying. I've never bothered looking at it.

<comment><USER8> There was a crowd-sourcing campaign to re-write 2.0 in Ruby:

[https://www.bountysource.com/teams/rvm/fundraiser](https://www.bountysource.com/teams/rvm/fundraiser)

However, I haven't heard anything of it in a while.

<comment><USER9> That sound pretty crazy. The reason to use RVM is to be able to run Ruby programs with different Ruby versions... How would you run it in the first time if you have the wrong versions?

I guess bash is a good choice since it can be run pretty much everywhere.

</comment></comment></comment></comment></comment><comment><USER10> How many people do you know who think that Git and GitHub are the same thing?

<comment><USER9> Quite a few. Especially our designers/people that doesn't commit/use git very much but still have to use it, have a hard time grasping the difference. The git client they're using being called "GitHub" doesn't make it any easier!

</comment></comment><comment><USER11> This is great. I was just looking for a way to merge pull requests from the command line today. (By which I mean fetch the branch into my local repo and perform the merge with git, not just having a bash script to press the merge button on Github.)

<comment><USER9> I hope this is very ironic (?)

 _edit_ removed unnecessary comment. What I mean is that you can already do this with git, nothing else required.

git remote add fork email@example.com && git merge fork/pr-branch

<comment><USER12> Well actually you can do it without even adding a remote.

       git pull https://github.com/otheruser/repo.git branchname

so your example will become

        git pull email@example.com pr-branch

<comment><USER11> Yeah, I want to do it without adding a remote for every person who sends a pull request. I presume this is git with the "hub" wrapper provided by github?

Oh, and I know I can pull directly from the appropriate URL, but I still have to browse to the pull request to get the URL for the associated branch. At that point I may as well just hit the merge button while I'm there.

</comment></comment></comment></comment><comment><USER13> I was really lucky I could met Ingy at a Perl conference. He is a really kind person and a mighty coder. He wrote also many other creative pieces of software, very powerful stuff like IO::All.

Ah, and he is the creator of YAML! Big respect!

</comment><comment><USER14> [https://github.com/ingydotnet/git- hub/issues/160](https://github.com/ingydotnet/git-hub/issues/160)

<comment><USER15> GitHub's hub is a wrapper for the git command. This adds a subcommand.</comment></comment>


FriendCo.de: The social web code editor - <AUTHOR> http://friendco.de/?code=Huk0F0j9HJmvyxq

<comment><USER2> Does this support multiple people editing in realtime (like shared google docs)?

<comment><AUTHOR> Yes it does.</comment></comment>


Why Windows 8 scares me - <AUTHOR> http://www.youtube.com/watch?v=qIMuJTrxuhQ&feature=youtu.be

<comment><USER2> They really have a horizontal scroll for the OS? I thought it was general knowledge that horizontal scrolls should be avoided as much as possible, and should certainly not be implemented as a main feature.</comment>


Kotlin M2 is Out - <AUTHOR> http://blog.jetbrains.com/kotlin/2012/06/kotlin-m2-is-out/

<comment><USER2> It blows my mind that someone would post a release note without an easily accessible "About X" or "5 minute intro to X" link...

<comment><USER3> I'm wondering who is upvoting this article. This is the first time I heard of the language ... is it popular and I somehow missed it?

<comment><USER4> Most of us are likely involved with java in some way. Kotlin has received quite a bit of buzz lately as a saner-than-scala next-gen jvm language. I count myself as one of those anxiously awaiting it's 1.0 release.

<comment><USER5> I'm perfectly happy with Scala. Perhaps you could elaborate. Kotlin is clearly based on Scala, even down to many syntax details.

</comment></comment></comment></comment><comment><USER6> do intellij have their priorities straight? they don't have plugin support for c or c++, but they're throwing money at developing a new language? what happened to "do one thing well"?

<comment><USER7> C++ is a nightmare language for tools developers, and is in slow decline anyway.

Java and the JVM ecosystem is still the biggest market out there and none of the current alternative JVM languages has really nailed the complexity/usability tradeoffs. There's a lot of opportunity here and Jetbrains' experience building tools gives them a unique vantage point.

<comment><USER6> ["nightmare" - all the more reason to use a good ide, then...]

they are the first and third most popular languages, according to tiobe - [http://www.tiobe.com/index.php/content/paperinfo/tpci/index....](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)

even if that is somewhat wrong - say, that they are actually second and fourth - it's still _incredible_ that the best / most popular commercial ide (i buy and use each release) doesn't support them. <http://youtrack.jetbrains.com/issue/IDEA-86304>

<comment><USER7> I don't buy the TIOBE numbers.

But actually their AppCode IDE supports plain C quite well and C++ before the new standard and they say they intend to improve their C++11 support. Maybe this will eventually find its way into their other IDEs.

<comment><USER6> ah, thanks - i will try appcode.

<comment><USER7> It might not be too useful to you unless you're doing iOS development but it does show that Jetbrains can implement decent C/C++ support if they think it's worth their time.

However, I don't expect their C++ support to ever be as good as that of an IDE like XCode that actually embeds a real C++ compiler frontend (Clang) in the IDE. I think that's really the only way to deal with a language as pathologically complex as C++.

</comment></comment></comment></comment></comment></comment><comment><USER8> What value does this "new" language actually add to the world of computer programming? Don't we have enough subtly-different-yet-always-really-the-same- stuff out in the wild already?

99-bottles-of-beer.net has 1471 languages registered, 90% of them are clones of eachother.

Note: don't answer "it's supported on platform X" or "supported by tool chain Y". This is not an argument. You can just as easily take an existing language, even a subset thereof, and implement it, rather than come up with another mess.

<comment><USER9> Take a look around, you'll see: <http://confluence.jetbrains.net/display/Kotlin/Welcome>

As I see it:

\- The goal of Kotlin is to be as fast as Java and have full interoperability with it, but to be more concise and to be simpler than other JVM languages as for example Scala.

\- It's for people who want to code in a language with different syntax and features than Java, but don't want to leave the Java ecosystem (JVM, libraries, community...) and aren't satisfied (or enough impressed?) with the other JVM languages.

Oh, and that list with programming languages isn't really reliable. When I go to J in the table I see: Java, Java 2 Micro Edition and Java Servlet. Micro edition and Servlet aren't languages, all 3 entries should be merged into just one - Java. I can assume how many other errors are there. I see jQuery is a language too! :)

<comment><USER8> Given the absence of libraries which will follow Kotlin's philosophy of code structure, how does this improve anything? You could just use a simple subset of Java and not use any libs at all.</comment></comment></comment>


Application for registration approved – The Wikileaks Party - <AUTHOR> http://www.aec.gov.au/Parties_and_Representatives/party_registration/Registration_Decisions/2013/5145.htm

<comment><USER2> I looked around a bit, but I couldn't find any information about why they preferred to start a separate Wikileaks Party, rather than joining the already extant Pirate Party Australia. [http://pirateparty.org.au/](http://pirateparty.org.au/) Anyone know?

<comment><USER3> I'd think it is because the name "Wikileaks" has higher visibility and meaning to the typical Australian voter than "Pirate Party". Despite common ground, they also have a different highest priority, Wikileaks being transparency, Pirate Party's being copyright reform. Separate parties will avoid tension due to different priorities.

Having two parties is not too big a deal in Australia's preferential voting system, as each party will probably pick up the other's preferences, meaning their votes will get transferred if they get knocked out of the contest.

</comment></comment><comment><USER4> I apologize for being lazy. Can any Australian HNers describe what privileges are afforded to registered parties? I thought the proportional voting scheme in Australia was based on a party system but I did a little research and it seems that the votes are cast for candidates and not parties. Thanks for indulging my curiosity and laziness.

<comment><USER5> I believe one of the intentions would be that having a senator currently in political asylum and wanted by the US would create a major diplomatic headache for Australia and force their hand at actually addressing the issue of Assange. Until now they've been able to sit back and ignore him because he's locked away in the middle of London as a citizen. If he were to be a senator, that would make things significantly more awkward. I found this [1] interesting analysis of the situation.

As for how voting works:

For the House of Representatives [2], each person is voted in preferential order. Each candidate must be allocated a preference or else your vote is informal and not counted.

For the Senate [3], you may either vote 'above the line' or 'below the line'. Voting above the line involves voting for a party. That party then takes your vote and distributes it amongst the preferences they decide. You cannot indicate preferences above the line - you must vote for a single party and the party then does that for you.

Voting 'below the line' involves marking each candidate from each party. They are still grouped in parties but you may number them in any order, so long as you number them all.

I am not sure what being a party vs. being independent. Independents can be elected to both houses, so I do not quite know what being in a part achieves. The AEC website doesn't obviously offer any information detailing it, at a casual glance.

[1]: [http://blogs.usyd.edu.au/cru/2013/04/senator_assange.html](http://blogs.usyd.edu.au/cru/2013/04/senator_assange.html)

[2]: [http://www.aec.gov.au/Voting/How_to_vote/Voting_HOR.htm](http://www.aec.gov.au/Voting/How_to_vote/Voting_HOR.htm)

[3]: [http://www.aec.gov.au/Voting/How_to_vote/Voting_Senate.htm](http://www.aec.gov.au/Voting/How_to_vote/Voting_Senate.htm)

<comment><USER6> If senate candidates are not members of a party, they are listed below the line. This is somewhat of a disadvantage as only a small number of voters vote below the line.

For this reason the incumbent independent senator Nick Xenophon has registered his own 'party'[1] -- the Nick Xenophon Group -- and will now appear above the line as well.

[1]: [http://www.abc.net.au/news/2013-07-02/nick-xenophon-has- poli...](http://www.abc.net.au/news/2013-07-02/nick-xenophon-has-political- party-registration-accepted/4793116)

</comment></comment></comment><comment><USER7> It's correct Australian's vote in candidates, which in these circumstances would be great (not only for Assange's case) but more importantly to see greater diversity in our Senate, because the majority right now are Labor/Liberals.

Imagine in 100 years time, they become the major political party, forming government. It could possibly be something entirely different.

</comment><comment><USER8> Their website: [http://www.wikileaksparty.org.au/](http://www.wikileaksparty.org.au/)</comment>