Yahoo is killing off the Yahoo Directory - <AUTHOR> http://yahoo.tumblr.com/post/98474044364/progress-report-continued-product-focus?wow <comment><USER2> This is kind of a big deal - historically. Yahoo was the first website I ever visited, and I'm sure this is true for a great many people.

Though I was kinda surprised to discover that it still exists. I thought it had been killed off long ago: [https://dir.yahoo.com](https://dir.yahoo.com)

I was also mildly surprised to discover that dmoz, the Mozilla "Open Directory", still exists under the control of AOL after they purchased Netscape so long ago: [http://www.dmoz.org](http://www.dmoz.org)

<comment><USER3> Dmoz is still surprisingly productive. Definitely needs to some love though. The only modern directory that I can think of along these lines is the 'Hidden Wiki' for Tor.

<comment><USER4> DMOA edits I made when I was an editor in 2000 that are severely out of date still exist, for example

</comment></comment></comment><comment><USER5> The Yahoo Directory was Yahoo's first product.

This is a stark reminder that very few things last and maybe a point to reflect how Yahoo succeeded and failed to pivot into other directions.

Can you imagine Google terminating Search? Facebook terminating their home page? What else would they do and would they be successful?

In a historical context, back in the day directories were a big deal, it took a long time for search engines to become powerful enough to rival the usability. A piece of the old web is gone now.

<comment><USER6> The original "school networks" of Facebook are long gone; their vestigial remains insufficient too track down fellow alumni. The newsfeed, like the Yahoo portal content, was a later addition.

</comment></comment><comment><USER7> While this does offer some historical significance the cost to maintain old web properties can far outweigh the value in keeping them. I run an 18 year old site and lately I've found quite a lot of relief in removing older features. In fact I'm considering removing the very feature that "made" my site many, many years ago. It's certainly a necessary move if you want to stay relevant online. I'm sure there are some folks at Yahoo who are very excited to shut this down and close the book on what is likely a maintenance nightmare.

</comment><comment><USER8> Yahoo Directory has certainly been neglected and customers stopped using it in favor of search. However, I think there's still an opportunity for a directory 'done well'. Browsing hierarchically is a different mode of discovery. Customers approach it in a different way and that can help them to discover sites that they wouldn't otherwise find through search and news.

<comment><USER9> DMOZ is still around, but I think the best directories end up being the niche directories maintained by people who are really into something. Wikipedia also has some amazing lists.

</comment></comment><comment><USER10> At least it will live on at Archive.org; I'm sure Archive Team is going to get rolling on it shortly.

</comment><comment><USER11> You know a company is in trouble when the only way they can generate news about their products is by shutting them down.

</comment><comment><USER12> Not surprised to see qwiki there. For all the hype around it I never thought that it would be successful. All it really seemed to do was make clumsy automated videos that took a lot away but really didn't add anything to just reading a wikipedia article.

<comment><USER9> Qwiki pivoted in the past year or two. They made an iOS app with the tagline:

Share your life through brief, beautiful movies

"Qwikis" created in just one tap.

\---

Their blog shares several example "Qwikis" (videos):

[http://blog.qwiki.com/](http://blog.qwiki.com/)

</comment></comment><comment><USER13> A (well curated) directory can be a great tool to get to know new sites you might not be aware of. Pity that they are killing it off rather than re- imagining it. I don't really know what Yahoo! is supposed to stand for anymore.

</comment><comment><USER14> I wonder what the absolute traffic levels of the Yahoo directory are like these days compared to the directory's heyday. They're a much smaller part of the internet now, but the internet has grown so much larger.

</comment><comment><USER15> I guess older sites can drop the NOYDIR meta tag. A few weeks ago i noticed my site still has the NOODP tag. I have to think that Google doesn't even bother with that anymore.

<comment><USER16> Google's Webmaster Tools documentation claims it's still used, but I haven't seen it in ages.

[https://support.google.com/webmasters/answer/35624](https://support.google.com/webmasters/answer/35624)

</comment></comment><comment><USER17> As a reminder, Yahoo acquired Qwiki for $50M just one year ago...

<comment><USER18> Does any manager get fired for making the decision to buy Qwiki for $50 mil

<comment><USER19> Acquisition decisions are made at the highest levels of the company. So...

</comment></comment></comment><comment><AUTHOR> This was submitted a day ago, and attracted a little bit of attention (sort of... [https://news.ycombinator.com/item?id=8374830](https://news.ycombinator.com/item?id=8374830)), but I think it's actually a pretty big deal that they're killing off their original raison d'être. Hence the "editorialized" title[0] and resubmission.

0: "Yahoo is killing off the Yahoo Directory"

<comment><USER20> I honestly don't think this is a big deal. The directory has been defacto dead for a long time.

<comment><USER21> It's the end of an era...</comment></comment></comment>


Show HN: Aha.io Integrated with TFS 2015 - <AUTHOR> http://blog.aha.io/index.php/team-foundation-server-2015-integration/ <comment><USER2> Flagged for regularly misusing Show HN to promote your blog posts.

[https://news.ycombinator.com/from?site=aha.io](https://news.ycombinator.com/from?site=aha.io)

[https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)</comment>


The multicore crises: Scala vs. Erlang - <AUTHOR> http://www.infoq.com/news/2008/06/scala-vs-erlang;jsessionid=8F355412DA99858EE76DB6377D71FB25

<comment><USER2> Flagged for misleading headline. Why not use the actual title of the article?

<comment><AUTHOR> Because Erlang sucks.

<comment><USER2> No you suck.

See how much value I added to the discussion there?

</comment></comment></comment><comment><USER3> The multicore crises: Scala vs. Erlang

is the real title. It is a reasonable discussion of the differences between the two languages. As far as I can tell, no biases one way or the other.</comment>


How a Tweetdeck, UberMedia deal could cut down Twitter's bird - <AUTHOR> http://eu.techcrunch.com/2011/04/22/how-a-tweetdeck-ubermedia-deal-could-cut-down-twitters-bird/ <comment><USER2> This article is a huge, speculative waste of time. It's based on the assumption that UberMedia could convince Tweetdeck's "power tweeters" to switch from Twitter to some other platform if Twitter doesn't relent and accept advertising terms more to UberMedia's liking.

Is there a tension between Twitter and the companies that are trying to create (and capture) value on Twitter's platform? Of course. But this article reads like little more than over-the-top stream-of-consciousness link-baiting.

In other words, it sounds like TechCrunch circa 2011.

</comment><comment> brown9-2 _As a result, Uber has the power to say to Twitter "We have 20-30 percent of Tweets. So, are you feeling lucky? Are ya?"

Uber can then say "Unless you let us sell our own advertising, not yours, against those Tweets, we will have to migrate our user base onto a different platform."

Boom

This is the .44 magnum Bill Gross is holding to Twitter's head._

But why would those power users that use TweetDeck continue to do so if the owner of the app attempted to migrate them to a different service? Why would they be ok with being disconnected from the Twitter service they use so much of?

<comment><USER3> Totally agree. Also, he makes it sound that somehow creating a different platform - comparable to twitter in scale - is an easy task....

<comment><USER4> Not that I agree with article, but you have to figure that _if_ this were to happen, at least 50% of Uber users would leave the platform, so they'd really only need a service that can support 10% or less of Twitter's current load.

</comment></comment></comment><comment><USER5> The advertising power comes from the Twitter userbase. Who will Uber be advertising to if they migrate the power users (mostly non-consumers) off Twitter?</comment>


When announcing your new web framework, don't be a douche - <AUTHOR> http://jrmehle.com/2009/06/02/dont-be-a-douche/

<comment><USER3> I like the fact that neither person really has anything of value to say, and both end up doing it in a dick way. Also the ruby guy loses points for his blog exploding under the massive HN load, now the C guy (who's blog is still up) can use that as a point in this pointless argument.

<comment><USER4> Both blogs run WordPress, of course, so they're hardly representative of their respective positions.

</comment></comment><comment><USER5> Seems his blog is down. Should've used C.

<comment><USER6> Text only Google Cache.

[http://18.104.22.168/search?q=cache:2KAAnfh6M88J:jrmehle.com...](http://188.8.131.52/search?q=cache:2KAAnfh6M88J:jrmehle.com/+jrmhele.com&hl=en&client=firefox-a&gl=us&strip=1)

</comment></comment><comment><USER7> The product announcement this article is talking about is by far the most entertaining product announcement I've ever read.

[http://ediblepet.net/2009/05/23/web-applications-should- be-c...](http://ediblepet.net/2009/05/23/web-applications-should-be-compile/)

<comment><USER8> Indeed, the guy is delusional. C is the linga franca of computing? Ew, no thanks. How about we change the world for the _better_ instead of sticking to the same old junk?

</comment></comment><comment><USER9> If _you_ dropped your ego you wouldn't feel an urge to post a fluff piece to justify your decisions to random disparaging blog posts.

<comment><USER10> Flippant replies to "controversial" posts that made it big on HN always seem to do well here. People on HN like a catfight as much as anyone else, and if someone wants some free pageviews off the back of that, good luck to them.

If anything needs to be fixed, it's the idiots on HN who vote up response posts like this, but that's democracy for you.

</comment></comment><comment><USER11> Wait... you thought the C web framework guy was serious?

<comment><USER12> Haha, everyone knows assembly is the one true web framework.

<comment><USER13> Real web programmers use butterflies.

</comment></comment></comment><comment><USER14> "RoR in C" is intriguing; another one: "Sinatra in C".

They are partly a systemization of lessons learned in webapps, and this _particular_ aspect should be transportable out of Ruby.

<comment><USER15> I worked briefly on a C FastCGI that matched routes to function pointers, sort of like Sinatra.

I think the "real" way to do it is with Apache Axis2/C, though.

</comment></comment><comment><USER16> It's striking when you sit back and think about the meaning of the metaphors we use. For example, "pain in the ass" is an entirely unpleasant and graphic metaphor.

"Being a douche" is also graphic, and probably offensive to many people. Those using the term probably haven't thought about it much.

<comment><USER17> I often think that about stand-up comics. Then I remember that they're supposed to be funny. Blog posts, on the other hand, should never try to be funny. Especially if they have to do with programming. Programming is a very serious business.

<comment><USER16> But the blog post wasn't funny. It's like calling something 'gay' - <USER2> funny but largely devoid of descriptive meaning. I hope you weren't trying to say I have no sense of humor. I love low brow humor.

</comment></comment></comment><comment><USER18> The amount of yak shaving he'd do in order to web-program in C would be astounding.</comment>


Why Did Symbolics Fail? (2009) - <AUTHOR> http://danweinreb.org/blog/why-did-symbolics-fail/ <comment><USER2> Good article I hadn't run across before; thanks for linking it.

One interesting side story is the odd Symbolics foray into animation and video through the Symbolics Graphics Division, which afaict was reasonably successful for a few years. It seemed like the sort of application-oriented business that might let the Symbolics machines break out of single-purpose "AI machines" into being seen as general workstations, or at least dual-purpose AI/graphics workstations. But that business seems to have sort of evaporated along with the rest of their business, despite not being AI and there being no "graphics winter". Perhaps steamrollered by Silicon Graphics, and the same trends towards Unix and commodity CPUs? Or not marketed well enough, by a company whose public materials focused too exclusively on Lisp+AI?

Some bits from that era: the S-Package 3d modeling/animation system ([http://www.youtube.com/watch?v=gV5obrYaogU](http://www.youtube.com/watch?v=gV5obrYaogU)), the PaintAmation package ([http://www.youtube.com/watch?v=Cwer_xKrmI4](http://www.youtube.com/watch?v=Cwer_xKrmI4)), and the first HDTV processing on a workstation ([http://www.youtube.com/watch?v=KppVP8PiZag](http://www.youtube.com/watch?v=KppVP8PiZag)).

<comment><USER3> Sorry for the small plug: I gathered some videos and links about S-Graphics offsprings, mostly Mirai, done at Nichimen in [http://www.reddit.com/r/nichimen](http://www.reddit.com/r/nichimen)

Some of these videos are already in, but if anyone has other articles or papers about anything S-Graphics/Mirai, like news about the izware guys, feel free to post.

ps: in case the subreddit is locked, I'll take links here.

</comment></comment><comment><USER4> I knew several of the Symbolics founding group, especially the engineers, but several of the management team as well. The tl;dr in the article comes here:

 _Meanwhile, back at Symbolics, there were huge internal management conflicts, leading to the resignation of much of top management, who were replaced by the board of directors with new CEO's who did not do a good job, and did not have the vision to see what was happening._

Symbolics was supposed to be the consensus Next Big Thing. A rival to Sun. A gravy train.

There were titanic egos and divas among the engineers, too. A physical expression of which here: [http://en.wikipedia.org/wiki/Space- cadet_keyboard](http://en.wikipedia.org/wiki/Space-cadet_keyboard) But several of them are also remembered for big contributions to the industry.

<comment><USER5> Regarding the graphics, the whole lisp thing did not take off is what I think happened. When Symbolics began there was a lot of excitement - them, MIT, LMI, Xerox, even VAX early on. But it did not really catch-on, some of that was because of fighting about the code between Symbolics, MIT, and LMI that held it back. So when Symbolics had good stuff, it was pretty much just them at that point cause they had won the fights and unix vendors were coming along.

So for their price you could get a few Sun boxes say, and you could have a few users on it. Genera was terrible about that. You could only have one user logged in at a time and that guy could change anything in the OS or programs however he felt, and then the next guy has no idea why everything is different.

Basically the graphics stuff was for effects and animation, and that did well for a while, but it was so alien to what everyone else was doing at that point, no other vendors could really make sofware easily portable between Genera and other hardware/OSes. So they did not and the S- software was really expensive route, it made the most sense to run it on VMs in OSF/1 of all things!

The other angle they could have exploited was CAD, but again Genera was the thorn. There was no way a Pro/E or anything of that sort would make it. The C on Symbolics was some strange half dynamic thing with GC implemented in lisp. Again just so alien. Essentially Dassault made a CAD (ICAD?) for it and that was it. But it was sort of ahead of it's time (there are now add-ons to all the CAD software that do similar approach, but back then it was so much like simply drafting on a computer what all the software was doing) and viewed as odd. Again very expensive and with all single user drawbacks, for example AutoCAD on PC and Pro/E on Sun were so much more appealing. And again the whole lisp thing because it was abandoned made it so that even Dassault could never really port it to modern hardware and it was a big expensive golden goose so they tried but eventually killed it and created/bought other products.

</comment></comment><comment><USER6> I worked in an expert systems company in the 80s (one mentioned in the Phillips thesis referenced in the danweinreb article). Take all this with a dose of IIRC.

As part of out work, we evaluated and benchmarked Xerox Interlisp machines, Symbolics systems, VAXen, later Gold Hill etc. to find a cost-effective delivery platform. We even eventually funded the development of a delivery- focused subset of Common Lisp.

One aspect that Symbolics didn't seem to understand back then was cost of entry and deployment: the Xerox D-machines were (IIRC) around 1/3 the cost of the Symbolics. Perhaps not as speedy, but adequate for our day-to-day development work as well as for the end customer's needs.

Symbolics had great development systems, but the delivery answers were late in coming; too late to help us.

There's lots more to be said about the late 80s collapse of AI (ES) applications and expectations, but the margins here are too small to contain it....

<comment><USER7> You did benchmarking so you may be able to confirm/deny this: I've heard that Lisp machines went out of favor because Lisp just ran faster on a VAX. Was this the case?

<comment><USER8> Besides horrible management---echoing Zigurd, a friend and contemporary, I was at one point reliably told that manufacturing, R&D and marketing were paying no attention to each other, such that manufacturing had built a factory that couldn't make the latest hardware R&D had developed, which was done completely independently of what marketing thought was needed---they were killed by non- recurring engineering (NRE) costs.

Basically they couldn't amortize the NRE for their custom hardware and later most especially chips (from memory, first, a chipset that spread the CPU across several chips, rather like the one Western Digital did that among other things enabled the LSI-11, then of course an all in one chip) across the huge number of units that Intel and Motorola sold. They also canceled their RISC rethink of their basic low level architecture on the day it was supposed to tape out; don't know if it had a low enough gate count to be like the first SPARC processor, which was implemented on 2 20,000 gate arrays, one for the CPU and one for the floating point unit (gate arrays are all alike until a few layers of metal are put on top).

So soon enough you could run a full Common Lisp, almost certainly without as much run-time error checking, faster on cheap commodity hardware than on a Lisp Machine.

Something like that seems to have happened to Azul Systems, which apparently isn't developing any new hardware, but is selling their version of the HotSpot JVM to run on x86_64 hardware. A prior generation of their pauseless GC (vs. 1 second per GiB, a big deal if your heap is 100s of GiB) required a software write or read barrier that cost ~20% of performance (all this from memory). It's likely that soon enough, even if it perhaps ran slower than their custom hardware, it was a _lot_ cheaper to run it on commodity Intel/AMD hardware.

<comment><USER9> I can't find a reference for this, but I seem to recall that Azul uses virtualization features of modern CPUs to decrease the read-barrier overhead; if that is correct, then that's a case of the general-purpose hardware fortuitously getting features to out-compete special-purpose hardware.

<comment><USER8> No, the older version of their GC used bulk VM operations, but not virtualization features, and there was still a penalty reported ... errr, I can't find it now. Probably in a Clifford Click blog posting. I just skimmed the new edition of Jones' GC book ([http://www.amazon.com/gp/product/1420082795/](http://www.amazon.com/gp/product/1420082795/)), published before it could consider the newer one; it talks about the changes needed on stock hardware but I didn't see any estimation of costs while glancing through it. (I'm not searching any more right now because it's obsolete.)

The base papers are:

Pauseless GC, uses a read barrier instruction in their custom 64 bit RISC chips: [https://www.usenix.org/legacy/events/vee05/full_papers/p46-c...](https://www.usenix.org/legacy/events/vee05/full_papers/p46-click.pdf)

And the newer one that they're using in that old hardware and the software on commodity hardware Zing JVM, the Continuously Concurrent Compacting Collector (C4), which I have _not_ studied (the paper was published 2 weeks after the Joplin tornado trashed my apartment and rather disrupted my life): [http://www.azulsystems.com/sites/default/files/images/c4_pap...](http://www.azulsystems.com/sites/default/files/images/c4_paper_acm.pdf)

It's possible they figured out how to minimize or eliminate the penalties of the original software read barrier they applied to the Pauseless system in C4 (or perhaps in relation to their custom vs. newer commodity hardware); I just did a quick skim of the relevant part of the C4 paper and a few keywords and couldn't tell.

This is all great stuff that I hope to get back to soon....

</comment></comment></comment></comment></comment><comment><USER10> The dates on Dan Weinreb's blog are all wrong for some reason. This post likely dates back to 2011 or before. (EDIT: Ah, corrected by the moderators, thanks.)

I had the pleasure of meeting Dan at ECLM 2008, four years before his death. He was hacking away on his XO-1 and showing around fancy things. A very memorable man. He's missed.

<comment><USER11> Corrected by moderators? How corrected? The dates are still wrong

<comment><USER10> The original title didn't mention the date at all.

</comment></comment></comment><comment><USER12> Exactly why Java succeed - the world is dominated by mediocrity while idiots are mostly on management positions. This is why all we got nowadays are Windows PCs with Java. It "worth us" or "suits us well".

Designers were too smart (consider David Moon) while management was "as usual".

<comment><USER13> I think that's a bit harsh - I actually moved from mostly doing Common Lisp development (on DEC Alpha workstations) to Java development in early '95 and I _really_ liked Java back then - I was as passionate about it as people are today about Go/CoffeeScript/Haskell. Java, at least at the start, really was something fresh and good.

Sure it became a horrible bloated mess - but isn't that the doom that faces all succesful software eventually?

<comment><AUTHOR> Same here, I remember how fresh it felt by bringing GC to the masses and providing a more consistent experience across platforms than C or C++ were capable of, with their compiler specific behaviours, extensions and catching up with the ongoing standardization efforts.

<comment><USER14> Sorry but it was Visual Basic that brought GC to the masses.

</comment></comment></comment></comment><comment><USER15> Dan was the guy at Symbolics most commonly tasked with making me believe Symbolics would succeed. He succeeded at the task. I forgave him.

</comment><comment><USER16> For those that had no idea what the hell symbolics are/is (As I did) I think it is referring to the company: [http://smbx.org/](http://smbx.org/) has info

<comment><USER17> It's sad what's become of [http://symbolics.com/](http://symbolics.com/). I thought it would go to some Lisp-related project eventually.

</comment></comment><comment><USER18> I highly recommend the book _Patterns of Software_ for which the link is given here. It includes the story of Lucid's troubles, which were similar to Symbolic's, though Lucid was not in the hardware business. Quite apart from that, it is well worth reading.</comment>


Ask HN: Possible to filter duplicate Medium articles? - <AUTHOR> Article URL from Medium.com ends with an extra "#.xxxxxxxxx" for example:
https://medium.com/@XebiaLabs/you-are-ready-for-continuous-delivery-take-the-leap-75d591bf9ef#.pw87epg5g
One can reach the article with just the URL without this last segment. The problem is every time you visit the URL without the extra segment, Medium will issue a new segment to append to the URL, thus the same article will now have a different URL. (Any idea why Medium implement such feature?)
I understand HN has build in filter to disallow submitting new post that has already been submitted in the past. But it currently can not filter off the same Medium post with different URLs. It would save readers much time if these Medium duplicate posts can be detected and disallowed. Thank you. <comment><USER2> It would be great to be able to filter all links to Medium entirely. Most boring and extremely long posts about "How I use npm to download super-duper async integer summation framework for godart" are usually on Medium. It's like place for front-end fanfics.

</comment><comment><USER3> > (Any idea why Medium implement such feature?)

It's a method of tracking without using cookies and being forced to include that EU banner / can be used on browsers without JavaScript. Many other websites implement such a thing.</comment>


US military is a bigger polluter than as many as 140 countries - <AUTHOR> https://theconversation.com/us-military-is-a-bigger-polluter-than-as-many-as-140-countries-shrinking-this-war-machine-is-a-must-119269 <comment><USER3> I always liked this Clickhole piece on military/environmental issues:

5 Ways ISIS Can Reduce Its Carbon Footprint

"As ISIS continues to expand its operations in the Middle East, it is more urgent than ever for this group to enact sustainable policies that will have the least impact on our environment. Here are some expert tips to help the Islamic State go green!

Requiring cars to stop at a military checkpoint leads to fuel inefficiency and idling engines, especially if an ISIS agent has to search the vehicle. Limiting checkpoints to one every 20 miles provides similar security with significantly lower emissions!"

[https://news.clickhole.com/5-ways-isis-can-reduce-its- carbon...](https://news.clickhole.com/5-ways-isis-can-reduce-its-carbon- footprint-1825123209)

<comment><USER4> The Onion did it better in 2008:

"North Korea has one of the largest armies in the world, but they save consumption by simply not feeding them"

"Truly elegant in its simplicity"

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

</comment></comment><comment><USER5> US Military is a bigger _insert topic here_ than as many as _insert large number here_ countries. Whether that topic is economics, or employees, or technology, or any other metric you want to analyze...the US military is large.

Edit: It would be more interesting to compare pollution from the military vs other countries or other militaries as a function of their size. Similar problems often arise when comparing states - it's unsurprising when California is the largest and Wyoming is the smallest; please normalize your data! For example, the US military budget of ~$650B is comparable to the GDP of Switzerland or Saudi Arabia, or alternatively comparable to the GDP of the ~80 smallest countries. That 80 country GDP vs 140 country pollution difference is already more illuminating to me...

<comment><USER6> Actually, I find it surprisingly small when considering how powerful it is.

In terms of men (2.2M active and reserve), combat tanks (6,300), artillery (1,700), war ships (130), submarines (70) and fighter planes (2,400) it's dwarfed by militaries of the past.

Of course the firepower is much larger nowadays and nuclear weapons also make conventional military play a different role, and the US military - <USER2> engaged in several conflicts around the world - is mostly a peace time force, but I still find it amazing that the armies of the WWII era were so much larger.

<comment><USER7> Other countries with large armies tend to throw poorly trained, and in the case of NK, poorly fed conscripts at the problem.

The US regularly fights wars so the troops are not only well trained but there is a lot of individual and institutional experience.

<comment><USER8> > Other countries with large armies tend to throw poorly trained, and in the > case of NK, poorly fed conscripts at the problem.

This is a strange mischaracterization of Israel's and South Korea's militaries, which are two of the largest in proportion to population in the world.

Other countries with large armies don't have to pay for the enormous logistical tail the US uses to deploy worldwide, and the unique readiness levels and naval/air capabilities required to do so on reasonable notice.

<comment><USER7> Israel is not in the top 20 active duty, South Korea is. A good friend of mine was forced to go back "home" to do military service after we graduated high school, from what he told me after basic training he basically served his time doing nothing near the dmz.

Sounded like they didn't know what to do with the conscripts they were being served up by the system.

Maybe he was unique or maybe he exaggerated.

<comment><USER8> > Israel is not in the top 20 active duty

Well yeah, it's a tiny country. In terms of active duty personnel _per capita_ , it's fourth in the world (2.1% of population, as opposed to 1.2% for South Korea and 0.4% for the USA).

> from what he told me after basic training he basically served his time doing > nothing near the dmz.

The security strategy of Israel and South Korea is:

* Be able to call an army of ~10% of the population into being within 48-72 hours

* Have an active-duty military with the latest and most up-to-date equipment and training to hold the line until that enormous reserve is ready

* Have intelligence services capable of giving advance warning so the active-duty military doesn't need to hold out as long

So yes of course someone drafted into the ROK army will be trained for combat, and then spend several years on equipment maintenance and training waiting for The Big One to roll around.

Israel is a bit different in that, in addition to its preparations for high- intensity conventional war, its active-duty army is also involved in low- intensity conflict continuously. This is a major concern for the army, as it needs to make a tradeoff between levels of force to apply to the daily grind in the West Bank and the Gaza border areas, and the level of readiness for high-intensity conflict - Israel's poor performance in the 2006 Lebanon War was widely attributed within the Israeli military establishment to the reduced training for conventional warfare while the army was caught up in the counterinsurgency work of the Second Intifadah.

</comment></comment></comment></comment></comment></comment><comment><USER9> This could be a poster child for how you can be telling the truth, but obviously are biased.

Wikipedia lists 186 countries GDP [1]. The 46th (186-46=140) listed country is Romania, with a GDP of $239 billion. In 2018, the U.S defense budget was just under $700 billion. Spending more money, and especially on a Navy at that, will obviously lead to more pollution.

[1] [https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nomi...](https://en.wikipedia.org/wiki/List_of_countries_by_GDP_\(nominal\))

<comment><USER10> Right. Normalize the data or get lost.

</comment></comment><comment><USER11> I always have wondered how people calculate pollution from countries. I mean, that must be from data gathered from the government?

For countries/governments that doesn't even have or have a very limited garbage disposal, that must mean they pollute very little on paper when in reality people just throw stuff into the ground / ocean etc.

I don't really believe this article. It seems like a typical clickbait shit article actually. Pollution is not only how much CO2 you release into the air, just look at some rivers in India which are incredibly polluted or countries in Africa where people simply burn metal in hunt for rare metals which they can sell. That pollution is probably not included in this statistic which makes me call bullshit on this claim.

<comment><USER12> Dirty rivers suck, but humanity's big problem right now is global warming.

<comment><USER13> Well, we face multitude of issues. For example loss of biodiversity is likely as important as global warming.

<comment><USER14> Loss of biodiversity is in big part caused by global warming (temperature rising, ocean acidification etc.) Global warming is not caused by loss of biodiversity.

On top of that, many of things that need to be done to reduce global warming will directly positively affect biodiversity, such as reducing deforestation and thus habitat loss.

So no, fixing global warming is more important since its a prerequisite to stopping loss of biodiversity.

</comment></comment></comment></comment><comment><USER15> I think it's worth noting that many of the vehicles, ships, airplanes used now by the US military were designed in the 80s, and the last thing on the mind of the engineers were carbon emissions. Hopefully, Lockheed Martin, Northrop Grumman etc. start thinking about this stuff in the future.

Interestingly at one point, the US Navy wanted to go all nuclear. That would have helped carbon emissions. [https://www.wearethemighty.com/gear-tech/navy- nuclear-power-...](https://www.wearethemighty.com/gear-tech/navy-nuclear- power-cruiser-destroyer?rebelltitem=4#rebelltitem4)

<comment><USER16> There are also some extreme double standards within these organizations. On the one hand, the Navy has ambitious and impressive sustainability goals. And on the other hand, the Navy reportedly (I've heard this anecdotally from friends in the Navy) straight up dumps all the trash from their air craft carriers and ships into the ocean.

Also anecdotally - but maybe someone with closer knowledge can corroborate - army divisions (?) want to maintain their budgets from cycle to cycle, and to do so they need to prove that they _need_ that money. I have heard that the Air Force, as an example, will rapidly spend down their budgets at the end of a budget cycle by dropping jet fuel and firing off missiles willy nilly.

<comment><USER17> >Also anecdotally - but maybe someone with closer knowledge can corroborate - army divisions (?) want to maintain their budgets from cycle to cycle, and to do so they need to prove that they _need_ that money. I have heard that the Air Force, as an example, will rapidly spend down their budgets at the end of a budget cycle by dropping jet fuel and firing off missiles willy nilly.

This is true for all large organizations in existence, both on the military and civilian sides of government and in large corporations.

</comment></comment></comment><comment><USER18> This isn't surprising. The US military has 1.3 million people that are engaging in a lot of transportation.

If we look at list of countries by population, 140 countries have less that 10m people (90 have more than 10 million). So on a per capita basis, the US pollutes maybe 7x as much per capita but again, because the military is using so much transportation it's not surprising. I would bet CEOs have a bigger per capita carbon footprint.

</comment><comment><USER19> Yeah, and still the fact is that if US GHG emissions drop to 0, it won't do much for global warming. It was good that Biden brought up in last night's debate that the US produces 15% of global GHG emissions. Which is disproportionate to their population, but also small enough that unilateral actions by the US will not solve the problem.

</comment><comment><USER20> Wow, this thread makes me want to delete my account. People of the US are way too scary for my liking, makes me never want to land in your country. For me, if US doesnt stop playing the world cop position the worse this world will get.

</comment><comment><USER21> People don't remember Pearl Harbor much. Or even 9/11 anymore. Is the US supposed to bow our heads, and be vulnerable to attacks?

</comment><comment><USER22> We should go and force them to reduce it /s

</comment><comment><USER23> Considering the amount of money budgeted to military spending, this isn't too surprising.

</comment><comment><USER24> How about the USA rather starts a military intervention in whichever country is destroying the environment the most. Fighting for a habitable planet for all mankind sounds like a better idea than fighting for oil, no?

<comment><USER25> By the looks of it, it would probably be in India or China. [1]

1\. [https://waqi.info/](https://waqi.info/)

<comment><USER26> From what I've heard, container ships with their super shitty fuel may dwarf the pollution of the entire automotive fleet and probably plenty of industries.

Then, a good bet would be to assail the country that contributes the most to consumerism.

As a bonus, this would take out a large portion of the Southeast Asia pollution.

</comment></comment></comment><comment><USER25> Yet still smaller polluter than 55 countries.

</comment><comment><USER27> but we get taxed more :D and then they spend our pollution taxes on more pollution. What a wonderful world.. :D

<comment><USER28> There truly are few ways to waste taxpayer dollars more thoroughly than on the military.

Social security goes from taxpayer to retiree often to be spent immediately at market for goods and services useful to many fellow countrymen.

Medicare removes the burden of caring for your elderly from the lives of millions. Its a huge economic boom to not have your parents retirements costing you your time and productivity.

The military, the third largest expense, has three principle benefits - its a direct jobs program for ~3 million people (the enlisted proper military and their tertiary federal contractors supporting them). It keeps in business a dozen or so arms corporations that use their revenue to lobby congress to spend more on the military to make themselves and their investors more money. And it projects American power abroad to use gunpoint as a weapon of trade negotiation and to "maintain the peace" (even through ideological warfare) in our zones of trade globally.

The first two are obviously awful for what purpose they fulfill in a vacuum - you could much more cheaply just house 3-5 million people and give billionaires free money instead for a fraction of the actual cost of maintaining the US armed forces. And as a US citizen the idea that my tax money goes to maintain peace in the world for the benefit of all of mankind might be passably acceptable if there were no other choice, but organizations like UN peacekeepers exist (though palpably suck at) fulfilling a similar role except without the bias towards US economic interests. Perhaps without this one nation acting as world police collaborative organizations could fill the role, but probably not.

So it comes down to a moralistic argument - is it worth it to waste the time of millions of Americans to perpetuate a theater show dick waving competition with hostile dictatorships like Russia and China around the world for the express purpose of maintaining US economic imperialism. Because its really up to you - we slaughter hundreds of thousands of innocents in deserts and huts the world over but in exchange few nations have the spine to try engaging in organized warfare amongst their neighbors for fear of US intervention. There are benefits, its just if the costs we pay, and continue to pay and more each year, especially when any benefit that could generally be perceived as of universal benefit are things I would at least more generally like to see all of humanity not only pay but participate in the management of are worth it.

</comment></comment><comment><USER29> Our military (US) and military budget is just another cold war era echo which has been propagating for far too long. There are so many alarmist media outlets in this country who 'make their steak' off of fear mongering (looking at you FOX news) and what's more unfortunate is the general public's seeming endless supply of naive assent too their ideals and tactics.

It isn't the US governments fault the military industrial complex is so large, it's ours. So long as we continue to sheepishly abide by the ignorant notion that our public officials are moral actors whose ambitions and initiatives are driven and monitored by their superb ethical standards we are doomed.

We have to hold the women and men in office accountable not only for their actions but for our agenda. We have to stop living under the yoke of fear and distraction pumped out by the media machine. We have to be brave and fight back or else, when the shit hits the fan, we can only blame ourselves.

<comment><USER30> it's funny how most people forget that every single american president since georges bush junior has been elected on the promise of reducing us's involvment into foreign countries ( i'm old enough to remember people accused him of being isolationist), but have all been prevented to so by external events.

With the rise of China and its exponential military spendings, do you think that decreasing us military budget would be a wise strategic move ?

<comment><USER31> > With the rise of China and its exponential military spendings, do you think > that decreasing us military budget would be a wise strategic move ?

The budget is essentially unchanged[1]. The _value_ of that budget has increased exponentially because the value of Chinese currency has increased. China has not directed any more of its resources to its military.

Even more foolish is acting like the Chinese military is capable of threatening the US any time soon. Like fuck, at least we still kind of fight proxy wars with Russia; we do nothing of the kind with China. China is totally incapable of force projection outside tiny pacific islands. China is the only nuclear country that has a "no first use" policy on nukes. They have a _single_ aircraft carrier, compared to the US' eleven. The US has as many carriers (which are the single dominant mode of force projection) as the rest of the world combined.

The US military is so absurdly oversized that we would benefit strategically by spending the money on R&D or the economy instead. Until such a time as the US expects to literally fight China, Russia, and the EU at the same time, the military is massively excessive.

[1]: [https://en.wikipedia.org/wiki/Military_budget_of_China#/medi...](https://en.wikipedia.org/wiki/Military_budget_of_China#/media/File:China_published_military_budget_by_percent_of_GNP.tiff)

<comment><USER32> China is already nearly spending as much as the US is on its military once you adjust for the difference in the cost of personnel (which is half of US military spending), ie adjust for PPP. The US has the best paid soldiers in the world for any major military, which matches up with the US having among the highest median pay of any nation.

When China's economy is another 50% larger, matching where US GDP is at today, you can expect China's real military spending to considerably exceed the US today.

Thanks to drastically lower salaries & benefits, the personnel costs for the Chinese military is a far smaller portion of its total military spending as compared to the US share.

Adjusted PPP comparison: [https://i.imgur.com/SY22Whj.png](https://i.imgur.com/SY22Whj.png)

</comment></comment></comment></comment><comment><USER33> Surprise, surprise, the military-industrial complex is destroying our planet. How people can still support this is beyond me.

<comment><USER34> I think you have to balance that against not preventing instability around the world. What would it look like if China, Russia, Iran and many others were unchecked and we let them do whatever they wanted...

Now, the current admin is cutting back on involvement. Some candidates call for more interventionism. That we're retreating from "our duty" to be international police, essentially. So what is it?

<comment><USER35> I think you are living inside a big bubble. When was the last time China showed military aggresion outside its borders, especialy on the other side of the world? US doing the "checking" around the world left countless people dead for nothing, and a lot of countries ruined. Not to mention trillions od dollars spent on financing that. US complain about Russia meddling with US elections (through 150k worth of Facebook ads lol) but then proceeds to overturn number of democratically elected governments around the world. Hipocracry much?

<comment><USER15> China is showing force against Taiwan: [https://www.scmp.com/news/china/military/article/3004049/tai...](https://www.scmp.com/news/china/military/article/3004049/taiwan- blasts-china-reckless-and-provocative-fighter-jet)

China is building islands all around the South China Sea: [https://www.scmp.com/news/china/diplomacy- defence/article/21...](https://www.scmp.com/news/china/diplomacy- defence/article/2133483/china-has-built-seven-new-military-bases-south-china)

China now has a presence in Africa too: [https://www.nbcnews.com/news/africa/pentagon-accuses- chinese...](https://www.nbcnews.com/news/africa/pentagon-accuses-chinese- blinding-djibouti-based-u-s-pilots-lasers-n871096)

<comment> saiya-jin First 2 items are about their borders - not that I agree with the actions, but these are completely understandable.

The Africa still isn't a proper comparison - building few bases where you invest tons of money and extract crutial resources isn't the point here, bloody invasions that destroy whole region for generations and kill millions innocent are. And this is something specific to US, even Russia didn't do anything comparable.

Anything after WWII, maybe but just maybe including Korea is actively adding evil to this world. But I suspect not many americans are willing to accept truth here

<comment><USER15> Ask anyone in Taiwan, they'd have a strong difference of opinion on Taiwan being apart of any piece of China, or within the borders.

As for countries being militarily aggressive, and causing direct conflict since WW2, sure the US, but there have been numerous wars since. A few at the top of mind —-First Afghanistan War ( Russia), Battle of Falkland Islands (Argentina), Iran vs Iraq War

</comment></comment></comment></comment></comment></comment><comment><USER36> One thing that is always missing from these discussions is the whole picture.

You have to factor the pros and the cons in any situation. This kind of headlines and focus only focuses on the negatives with regards but forget to ask why we have a military, to begin with and what the cost would be if we didn't.

A much healthier approach IMO is to look at how we can improve energy production in general as that's at the heart of things here. And once we look at that we will quickly realize that we are already looking at that but finding out it's not as easy to improve the way we currently use energy as people might want it to be.

But then again that wouldn't create as many clicks.

Somehow that underlying reality is lost on a surprising amount of people.

Our relatively wealthy, safe, modern lives with all the bells and whistles and freedoms we in the west take for granted, only is possible because it ultimately sits on top of military dominance that allows us to secure acccess to the proper resources and gives us negotiation power.

<comment><USER37> > Our relatively wealthy, safe, modern lives with all the bells and whistles > and freedoms we in the west take for granted, only is possible because it > ultimately sits on top of military dominance that allows us to secure > acccess to the proper resources and gives us negotiation power.

This belief astounds me. Do you really think your material condition requires the constant death, destruction and turmoil inflicted by the US military around the globe?

We should ask the 1 million dead Iraqis and Afghanis what the pros and cons of the past 20 years of American military policy. How about asking the average Libyan, Syrian or Yemini if our actions were worth it for "access to the proper resources"?

Or ask your children, who will be saddled with tens of trillions of dollars of debt spent on the military industrial complex for decades to come - money that could have been spent on improving health and welfare domestically for them.

<comment><USER36> No but the treath of it does. Name me on other superpower that doesent rely on strong military.

<comment><USER38> Being aggressive and hateful to the entire world at once will tend to requires substantial bodyguard resources, and will eventually fail.

Peace based upon respect and respect for hard-won rules and structures is the right road.

Switzerland learned this lesson through bloodshed, after a disastrous campaign in which nationals supporting the Duke of Milan got caught in reprisals from his foes, thus beginning the great Swiss tradition of neutrality in foreign conflict.

While I won't argue about the relative morality involved in World War 2, I will argue that all ensuing wars the USA has been involved in have ultimately undermined it's prospects for future peace.

It seems like many of my fellow Americans need a history lesson vis-a-vis Iran.

The USA and UK conspired to overthrow the democratically elected Iranian prime minister Mossadegh, as he threatened to nationalize (their own) oil, which Standard Oil, among others, didn't like very much (Shades of United Fruit and Guatemala anywone?)

We then attempted to install the Shah (we knocked down their democracy because it was too lefty, then we put a king back on the throne.)

The 1979 revolution was a direct reaction to this, and could have been seen coming from a decade before.

This was initially a real revolution, but of course, they purged the lefties and students out and installed a right wing religious government, rather like many Republicans want for America.

And we have the nerve to hammer on them for desiring self-actualization... incredible.

Hypocrisy is not even the beginning of it...

<comment><USER36> CH is not a superpower and in fact helped superpowers. You are confusing what would be nice with what is a reality.</comment></comment></comment></comment></comment>


LibreOffice 3.3 Officially Released - <AUTHOR> http://www.phoronix.com/scan.php?page=news_item&px=OTA0Mw <comment><USER2> Semi-dupe: <http://news.ycombinator.com/item?id=2139972>

</comment><comment><USER3> I have to say I have been using OpenOffice/LibreOffice for the past 4 months on my office Windows XP machine for the last 3 months and have not needed Microsoft Office at all. It's nice to know that their good work is continuing.

<comment><USER4> I am a good couple years into using OOo and I am yet to miss Office.

If, for no other reason, if your company standardizes on OOo, nobody will sneak a SharePoint server into your organization ;-)

</comment></comment><comment><USER5> Phoronix is terrible, please use other sources if available. <http://h-online.com> is a good alternative for release overviews, etc.</comment>


RBC shuts down Ottawa Bitcoin account - <AUTHOR> http://www.obj.ca/Local/2013-04-29/article-3229285/RBC-shuts-down-Ottawa-Bitcoin-account/1 <comment><USER2> Banks and governments are concerned about bitcoin, i.e. they want to take their cut. I take this as a sign that this means bitcoin is here to stay (or at least the big banks and the government think so).</comment>


How do programmers in the west see programmers in the east? - <AUTHOR> http://programmers.stackexchange.com/questions/50831/how-do-programmers-in-the-west-see-programmers-in-the-east <comment><USER2> this was posted 4 days back.. <http://news.ycombinator.com/item?id=2256774></comment>


Show HN: My first weekend project. - <AUTHOR>

http://hiphopblend.com
The website is responsive, so check it out on tablet/mobile, too! I'm currently working on adding more features to the website. It's my first official project since I started to learn programming (PHP). I would love to get an audio player in the site, which would scrape the blogs for new audio, but I'm having some difficult getting there. I really appreciate any feedback about the site at all!
A little about me: I've been making Wordpress sites at a digital agency for almost 9 months now (from scratch). A few months ago I became really interested in learning programming. Prior to this, I didn't really see the point. I have to thank a friend of mine to helping me get started. My HTML/CSS skills are pretty high and I wanted to take it further. Making websites has always been a hobby, but I went into music in college. Graduation came and there was an opening for a Wordpress developer at a small company. I took a shot at the interview, taught myself to make custom themes by looking at their old dev's source code and now I am where I am today. I like the direction I'm headed. I'm in metro Detroit and dream of working out in Cali one day. Enjoy! <comment><USER2> For the lazy: <http://hiphopblend.com>

</comment><comment><USER3> Congrats on shipping your first project! This is very similar to something I built a few year back that aggregates music from blogs in the "college music" demographic (hip-hop + pop + electronic).

<http://www.thecollegecartel.com/>

Are you using Magpie RSS (<http://magpierss.sourceforge.net/>) or scraping more directly? I remember that was the first third party library I had ever used.

I found that the simplest thing was to split the list of posts out by site. I was thinking of having a "most recent" section at the top, but -- as others have mentioned -- I had trouble devising a good de-duplication strategy.

The other issue I struggled with was grabbing the actual music file from the site and potentially allowing it to be streamed on my site. I suppose there are a small enough number of embedded audio players used that I could have dissected each one and figured out how to pull the link to the audio file.

But, I grew bored with that project and moved on to other things. I'd love to lend a hand if you have any questions!

<comment><AUTHOR> Very nice! I'm actually using SimplePie (<http://www.simplepie.org/>) which I found a pleasure to work with.

I'll take your comments into consideration. I was thinking to try to sort the stories by popularity (measured by # of clicks?) as well.

I definitely would like to talk - you can shoot me an email, it's my username @gmail.com!

</comment></comment><comment><USER4> I like the UI. Really simple.

Maybe avoid duplicates across the tracks. Would require some hardcore regex because of the way all the different sites name the tracks.

Some of those sites have a direct DL link so you can scrape and provide a direct DL link instead of having to go to the page.

A category that says "music" and lists all the tracks and threads the same songs. So if 2dope and nahright have the same track it wouldn't show twice.

Anyways, this makes life easy for a lot of people I would bet. Cool idea, nice clean UI.

Edit: If you do get the direct links scraped and make them auto-play you can set it so I can click a site like "nahright" and listen to all the songs in a loop without having to leave your site or select songs. Then have a "download this track" option which would grab the songs I like only.

<comment><AUTHOR> I really like those ideas. I definitely want to get rid of dupes somehow, but as you said it definitely will take some work. Thanks!

</comment></comment><comment><USER5> How about adding a tag line in the header saying "Fresh hip hop music, news, videos and more" ?

I couldn't understand what the site was about. I'm still not sure.

What is it?

</comment><comment><USER6> I use SoundManager 2 for music playback on my site. It's flexible, it works well, and it has good cross-browser compatibility.

<http://www.schillmania.com/projects/soundmanager2/>

</comment><comment><USER7> i thought it was all music at first until after a few clicks, so perhaps an icon next to each link to discern music from articles from interviews?

for some of them (the reddit ones for example) they're already using a 3rd party player (youtube), so with a little extra scraping of the content you can grab the necessary info and embed the content yourself in lieu of your own player

also +1 the previous comment about duplicates

i like the concept as i enjoy finding new hip hop music but there's way too many places i have to visit to find them.

edit: grammar

<comment><USER4> I second separating the music from articles/interviews/misc

</comment></comment><comment><USER8> Great site, One nitpick: I found the font used for each section a bit hard to read. If I'm focusing on it, it's fine but when I'm scrolling through the page just skimming it's a lot harder to decipher.

<comment><AUTHOR> Thanks for the feedback.

</comment></comment><comment><USER9> Which agency are you at in Metro-Detroit if I may ask? I have friends in that area.

Sick site as well.

</comment><comment><USER10> > target="_blank";> Why the semi-colon?

Apart from that, grats on your first project!

<comment><AUTHOR> Thanks, still have some validation work to do as you can see!

</comment></comment><comment><USER11> It's kind of hard to understand what the site does exactly. Do you have an 'about' page?

</comment><comment><USER12> Congrats on shipping your first product!

</comment><comment><USER13> Congrats! Think it looks great so far!</comment>


Show HN: Outstanding Bar - <AUTHOR> https://outstandingbar.com

<comment><USER2> No e-mail validation. The idea is cool, but this is a basic feature for an e-mail subscription plugin.

<comment><USER3> Thanks for your feedback.

We went for the path of least resistance, but i totally get what you're saying. We'll definitely look at adding in as an option as soon as possible.

</comment></comment><comment><USER3> Morning all,

One half of CONTRAST here, the guys behind OutstandingBar.

We would love to hear your thoughts and feedback on OutstandingBar.

Mike</comment>


Salt: Like Puppet, Except It Doesn't Suck - <AUTHOR> http://blog.smartbear.com/devops/a-taste-of-salt-like-puppet-except-it-doesnt-suck/ <comment><USER3> I'm not a web developer but I have a side-project that runs on a cobbled together EC2 instance. The server state is in theory documented in a set of of shell scripts and virtualenv requirements files.

I know that I should be doing this in a more robust way but whenever I try and read up on configuration management tools like Puppet and Chef, they're all described in comparative terms - Puppet does X better than Vagrant which does Y better than Chef, etc. I quickly lose patience and get back to digging myself into a deeper technical hole.

Is there a non-recursive explanation of what these tools are able to do and where someone like me should start?

Edit: Thanks for the helpful responses!

<comment><USER4> if you're using EC2, why not just create an AMI and forget about configuration tools?

<comment><USER5> Having done this a dozen or more times... can you package your ami for your developers to use? Can you remake your image exactly the same way again as it was when you first imaged it should it be lost in the cloud (100% reliability isn't something AWS provides).

Provisioning tools let you create it, and incrementally update your image in a way that lets you redo it from scratch at any time.

That alone is the reason why I like the idea, not necessarily the resulting applications that have been created so far for the task.

Shell scripts could do the same and have for years if your only interested in from scratch setups.

<comment><USER6> This is not a difficult problem. I recently had to stand up a cluster of EC2 instances for a job that required a cluster of them and used these three steps:

1\. Write a script to configure an instance and run it when the instance starts.

2\. Clone the instance to an image

3\. Run instances based on the image.

It's quite straightforward to do. See [http://github.com/gyepisam/fcc- textify](http://github.com/gyepisam/fcc-textify) for more details.

</comment></comment></comment></comment><comment><USER7> I've used Fabric, Chef, Puppet, and Ansible, and have settled on Ansible; it's a sort of middle ground between Fabric and Chef that does more than just run commands on servers but doesn't require me to buy into a whole elaborate universe of configuration management servers and whatnots. Ansible is great.

The ZeroMQ stuff makes sense if you're pushing configurations inside a data center, but it's a dealbreaker for us having things hosted externally.

<comment><USER8> I don't understand why ZeroMQ outside of a data center would be a deal breaker for anyone. You do realize the data on the wire is encrypted right?

<comment><USER7> Awesome. How many people have reviewed it for flaws? How many people have reviewed OpenSSH?

<comment><USER9> How many people have reviewed Paramiko? In particular, how about that ecdsa patch[1] to Paramiko that you'll need to be accessing modern Ubuntu or Fedora (and before long, RHEL/CentOS). What about the python-ecdsa[2] (that paramiko's provisional support for modern Fedora and Ubuntu's default configs is based on)? This entry from its README seems pretty frightening:

        This library does not protect against timing attacks.
        Do not allow attackers to measure how long it takes you
        to generate a keypair or sign a message. This library
        depends upon a strong source of random numbers. Do not
        use it on a system where os.urandom() is weak.

I'm not saying Paramiko (or its patch sets) are insecure, just pointing out that the same arguments can be made against the libraries and code that Ansible is based on.

[1] - [https://github.com/paramiko/paramiko/pull/152](https://github.com/paramiko/paramiko/pull/152)

[2] - [https://github.com/warner/python- ecdsa](https://github.com/warner/python-ecdsa)

<comment><USER10> > Do not use it on a system where os.urandom() is weak.

So, don't use it in the cloud? [1]

1\. [http://harvey.binghamton.edu/~ychen/chen- kerrigan.pdf](http://harvey.binghamton.edu/~ychen/chen-kerrigan.pdf)

</comment></comment></comment></comment></comment><comment><USER11> Salt/Puppet/whatever. I ignore them all. Why? I have put a lot of thought in to this area.

IMHO, the _overwhelming_ problem with salt/cfengine/puppet style solutions (which I will refer to as 'post-facto configuration tinkerers', or PFCT's) is that they potentially accrue vast amounts of undocumented/invisible state, therefore creating what I refer to as _configuration drift_.

IMHO, a cleaner solution is to deploy configuration changes _from scratch_ , by deploying clean-slate instances with those changes made. In addition, versioning one's environment in this way creates an identifiable point against which to execute automated tests. (This class of solution I refer to as 'Clean-slate, Identifiable Environments' or CSIES.) Examples are Amazon AMI's, and any other kind of versioned/identified VMs.

PFCT's deployment paradigm tends to be relative slow and error prone. CSIE's tend to be fast and atomic. PFCTs are headed for the dustbin of history. They are temporary hacks that clearly grew from old-school sysadmins' will to script. CSIEs embrace modern day devops, as more holistic entities that embrace virtualization and recognize the integrity of the environment as critical to preventing ridiculous numbers of environment-induced, service- level issues that are an expensive tangent to service development, testing and deployment. Thus, I would argue that what we are looking at with PFCT's is a failed paradigm, and with CSIEs, the now real and current opportunity for something far more elegant.

(Disclaimer: Haven't tried ansible or vagrant first hand, but they do seem to be PFCT's to me.)

<comment><USER12> _a cleaner solution is to deploy configuration changes from scratch, by deploying clean-slate instances with those changes made._

All of us who have built big cloud-server clusters have dreamed of this plan at least once. But there are big practical problems.

Relaunching infrastructure is easy in theory, but from time to time it becomes very difficult. There is nothing like being blocked on a critical upgrade because your Amazon region has temporarily run out of your size of instance, or because the control layer is having a bad day, or because you've accidentally hit your instance limit in the middle of a deployment, or...

A much bigger issue is that bandwidth is finite, so "big" data is hard to move. This is a matter of physical law. It's all well and good to declare that you're never going to apply a MySQL patch in place: You're just going to launch a new instance with the new version and then switch over. But however fast you manage to launch the new instance (and you will be hard put to launch an instance faster than you can apply a patch and restart a daemon...) you will be limited by the need to copy over the data. Have you ever tried copying half a terabyte of data over a network in an emergency while the customer is on the phone? It is _very_ annoying. Because it is often physically impossible to do it quickly: Cloud infrastructure isn't generally built for that, and when it is it costs money that your customer will not want to spend for the luxury of faster, cleaner patch-application.

A solution to this is to use cloud storage like EBS. Now your data sits in EBS and you just detach its drive and reattach it to a new instance. That actually works okay, provided you're happy with the bandwidth and reliability of EBS, which lots of people aren't – and, as those people will cheekily point out, you have now solved the "relaunches are slow" problem by replacing it with an "everything is uniformly slow" problem. Moreover, detaching and reattaching EBS volumes isn't instantaneous either. You have to cleanly shut down and cleanly detach and cleanly restart, and there's like 12 states to that process, and all of them occasionally fail, and if you don't want your service to go down for thirty seconds every time you apply a patch you need a ton of engineering.

Which brings us to the other problem: Complexity. Most programmers are not running replicated services with three-nines-reliable failover that never breaks replication. But even if you are, because you've got the budget for excellent infrastructure and a great team, it will always - for values of "always" measured in several more years, anyway - be more complicated and risky to fail over a critical production service than to apply, say, a security patch to 'vi' in place on a running server. 'vi' is not in your critical path. If you accidentally break 'vi' on a live server ( _and you won 't, because vi is older than dirt and solid as a rock_), you will have a good laugh and roll it back. Why risk a needless failover, which _always_ has a chance of failure, when you could just _apply the damn patch_ and thereby mitigate risk?

At Google scale that argument probably stops applying. But most people don't run at that scale and it will take decades to migrate everyone to a system that does, if that even happens.

So, "dustbin of history", maybe, someday, but in the long run we are all retired, and I will be retired before our dream becomes reality. ;)

<comment><USER11> The bulk of your comment - your second, third and fourth paragraphs - focus on issues of speed, bandwidth and reliability in a third party hosting/cloud- based architecture, which are a design-time tradeoff, so I don't see them as strictly relevant (though anecdotally informative).

Your fifth paragraph describes problems related to operations process, which are entirely avoidable.

<comment><USER12> Well, okay. Give my regards to Saint Peter and all the angels!

</comment></comment></comment></comment><comment><USER13> IMO, ansible is even better:

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

It doesn't require any deamon and does all its work over the good old unix fashion way: SSH. And it's python too.

<comment><USER14> From the article:

"Chef works atop ssh, which – while the gold standard for cryptographically secure systems management – is computationally expensive to the point where most master servers fall over under the weight of 700-1500 clients. Salt's approach was far simpler."

Does that assertion about Chef somehow don't apply to Ansible?

On the use case:

"I have this command I want to run across 1,000 servers. I want the command to run on all of those systems within a five second window. It failed on three of them, and I need to know which three."

<comment><USER13> Well, ansible by default runs with paramiko which is a python implementation of SSH protocol. It will also keep connections open for multiple commands. It also has a pull mode and it also has a fireball mode which uses 0mq:

[http://jpmens.net/2012/10/01/dramatically-speeding-up- ansibl...](http://jpmens.net/2012/10/01/dramatically-speeding-up-ansible- runs/)

However, you're not forced to use this. In the beginning, you can just seed your CentOS or debian with a Kickstarter or seed file and then run your inital thing with ansible simply over ssh (using all the goodies, ssh-agent, password less ssh etc..).

One huge plus for ansible is also that it used yaml which is rather simple. I've been following both project for >1 year and it seems that recently ansible has picked up a lot and will probably make the "race" (IMO).

<comment><USER15> Salt also uses yaml for its configuration backend (by default). You can also write your state in Python if you prefer, with all the power that that brings (including pulling data from databases, remote API calls, or whatever you like).

</comment></comment></comment></comment><comment><USER16> I _was_ frustrated with Puppet when I first started. All I wanted was a VM to install a few things so I could do some development and not have to worry about managing my VM.

It turned out to be a rabbit hole. As soon as I thought I learned just enough to get it running, something else popped up that stopped me.

That's why I created PuPHPet [1]. So far the reception has been fairly positive.

At one point in my learning, I got fed up and tried Salt. I couldn't get the Salt hello-world running. I followed the directions to a T. If your tutorial is incorrect, or hard to follow just to get the most basic version up and running, it will turn people away.

Also, this was all on top of Vagrant.

[1] PuPHPet - [https://puphpet.com](https://puphpet.com)

<comment><USER17> PuPHPet looks really good. What's the default PHP setup? It would be great to be able to switch between and configure mod_php, fastcgi, fcgid, PHP-FPM, suPHP, suExec, etc.

<comment><USER16> Default is:

* Ubuntu Precise 64 Bit (12.04.2 LTS)

* Apache

* PHP 5.4

You can switch between Apache/Nginx and PHP 5.4/5.3 (5.5 coming today!)

</comment></comment></comment><comment><USER18> I think salt is neato, but I also find it very frustrating to use! (Possibly through no fault of salt itself - I feel like I must be missing something.)

I am generally able to SSH into a box and get things configured the way I need. However, I have huge amounts of trouble translating that into salt scripts.

Consider logrotate. Here is the only documentation I can find on the topic [1]. From this, I have _no idea_ what to put in init.sls to make sure a given log file is being rotated correctly. It seems this would work on the cmdline, but not necessarily in a salt script.

And that's just for logrotate! My uswgi + nginx configuration - <USER2> that into salt - I don't know where to begin.

How do I make sure things get installed in a certain order? (Answer seems to be having 10 directives, for 10 packages, each depending on another, to enforce order.)

Is there anything that more closely mirrors what I _actually_ do when configuring the box? SSH in, set certain values, etc? I guess I could write a shell script (or use fabric) but then I seem to have lost the point of configuration management.

[1] [http://docs.saltstack.com/ref/modules/all/salt.modules.logro...](http://docs.saltstack.com/ref/modules/all/salt.modules.logrotate.html)

<comment><USER19> Hey memset - these sound like pretty straightforward questions (with straightforward answers). Perhaps asking on the mailing list, or hop onto the #salt channel on freenode IRC?

<comment><USER18> That is a great suggestion. I almost never do this for fear of sounding like a noob, but I ought to try giving it a shot more often.

<comment> tech-dragon As one of the people on that list who may well respond there, I'll reply here as well so its on the record.

You will be very well off if you read and 'digest' the Salt docs on States first, before moving on to modules, pillars, grains, custom returners, etc.

What you probably need to do with logrotate is take the configuration that you normaly setup on your servers, then add it to your salt system. So top.sls calls 'logrotate' running the 'logrotate/init.sls' and that has a definition that says "I want logrotate installed, I want it running as a service, and by the way take the file 'logrotate/config.conf' and shove it in /etc/logrotate.d/ as <correct filename>, p.s. If i change that file, restart logrotate"

With States & the requisite declarations to enable salt to know what order things need to be in, you shouldnt have much trouble adding a simple service like logrotate along with a specific config file to use for that service.

</comment></comment></comment></comment><comment><USER20> I'm still looking for a configuration management system that doesn't assume that the first step towards managing servers is to add a new "master" server. From the thread, ansible looks promising. In the meantime I'll keep using chef-solo until opscode kills it.

<comment><USER21> You can run salt masterless. See the quickstart.

[http://docs.saltstack.com/topics/tutorials/quickstart.html](http://docs.saltstack.com/topics/tutorials/quickstart.html)

<comment><USER20> Thanks, it may even be that a salt master is lightweight worth configuring. But I should note there's a difference between "can run" and "intended to run."

It's as much a semantic thing as a technical thing. Instead of thinking about an unconfigured node as a "minion" awaiting orders and provisions from central command, I prefer to think of a node like a stem cell, fully capable of differentiating itself based on signals that it receives. You need a way to update the DNA and a way to send the signals, that's it.

This may seem like a meaningless difference, since there is still value in centralized services (package repositories, security, reporting, monitoring). But it's still a subtly different focus and over time yields different results.

For my part I think the distributed, organic "stem cell" way of thinking will win out over "master/minion" in the long run.

</comment></comment></comment><comment><USER22> The thing that bugs me about salt is the almost complete lack of testing/coverage. They had tons of egg-face releases for crypto bugs, upgrade issues, things a basic test suite would have solved. I'd rather not trust my production environments to something that's a roll of the dice of whether its working, secure, or upgradable on a given release.

</comment><comment><USER23> I used Puppet for a few years (and created a few modules for it [https://github.com/puppetmodules](https://github.com/puppetmodules)). I switched to Salt a year ago. My main motivation were its simplicity (YAML+jinja), lower memory consumption, easier source code both to read and contribute to, and its support for both push and pull based architectures.

If you want to get a feel for how salt looks like when managing some servers and laptops you can take a look at my states: [https://github.com/uggedal/states](https://github.com/uggedal/states)

</comment><comment><USER24> Is communication to/from ZeroMQ encrypted? If not it seems like this wouldn't be a very secure way to configure or distribute files over anything other than a VPN or LAN?

<comment><USER25> They use AES and RSA but their implementation has had vulnerabilities.

[http://docs.saltstack.com/topics/releases/0.15.1.html](http://docs.saltstack.com/topics/releases/0.15.1.html)

[https://github.com/saltstack/salt/commit/5dd304276ba5745ec21...](https://github.com/saltstack/salt/commit/5dd304276ba5745ec21fc1e6686a0b28da29e6fc)

Here's a good article( [http://missingm.co/2013/06/ansible-and-salt-a- detailed-compa...](http://missingm.co/2013/06/ansible-and-salt-a-detailed- comparison/)) with a comparison to Ansible that others are also mentioning here. Ansible uses KeyCzar which which seems more sane than rolling your own crypto as many readers here on HN know.

</comment></comment><comment><USER26> I just released a open-source package which enables you to create a Django centric stack on Vagrant with the help of Salt. It was indeed very easy to write. You can check it out here:

[https://github.com/wunki/django-salted](https://github.com/wunki/django- salted)

<comment><USER27> Same thing for Ansible: [http://www.stavros.io/posts/example-provisioning-and- deploym...](http://www.stavros.io/posts/example-provisioning-and-deployment- ansible/)

</comment></comment><comment><USER28> SaltStack also won at Gigaom Structure last week!

[http://gigaom.com/2013/06/20/devops-player-saltstack-wins- st...](http://gigaom.com/2013/06/20/devops-player-saltstack-wins-structure- launchpad-competition-and-investor-interest/)

(I'm a SaltStack employee)

<comment><USER29> Whole article about SaltStack winning the award, and not a link back to SaltStack website.

</comment></comment><comment><USER30> "Salt's approach was far simpler."

Funny, that's how I feel about Ansible compared to everything else including Salt.

<comment><USER31> Funny, that's how I feel about salt compared to ansible.

</comment></comment><comment><USER32> _Chef works atop ssh, which – while the gold standard for cryptographically secure systems management – is computationally expensive to the point where most master servers fall over under the weight of 700-1500 clients._

It doesn't have to be this way. The situation where one host repeatedly needs to talk to hundreds via SSH is precisely where the SSH ControlMaster socket shines. This saves you a _ton_ of overhead by not having to start up and tear down the session every time you want to issue a command via SSH.

I often use this trick on busy Nagios servers that execute many active checks via SSH -- it works well.

</comment><comment><USER33> Personally, I don't think puppet sucks

<comment><USER13> The problem is most dev-ops and sysadmins don't know ruby and that's a HUGE disadvantage. In the end configuration management will often by done by sysadmins.

<comment><USER34> I'm only managing 24 machines with puppet, so nothing fancy, but I managed to do all of the stuff I needed without writing a single line of Ruby code.

That was handy for me too as while I'm somewhat familiar with Ruby, I'm no expert at all. I can read Ruby no problem and I can write ruby that's not- quite-idiomatic and I'm terribly slow at it.

<comment><USER13> I forgot to mention that just installing ruby is a HUGE PITA on anything but the most common OSes. It took me 3h last week to get it on a CentOS installed. And I don't even want to try to get it running on our Solaris hosts...

Point is: Python is the number one scripting language (after bash) for sysadmins just like Perl used to be.

<comment><USER35> yum install ruby

took you 3h? It may take slightly longer if you want 1.9, but it still exists in fedora so it should not take 3h to solve.

<comment><USER13> Yes I needed 1.9.3 for this silly software. And I had a little special setup so rvm failed to compile. I'm also very overwhelmed by rvm,gem,bundler etc... Python has pip,easy_install(old) and virualenv. Which are just easier to understand for me. Ruby is too much magic and is trying to do everything automatically (IMO).

<comment><USER36> Red Hat recently released Ruby 1.9.3 packages as part of "software collections"; I assume CentOS is rebuilding these and making them available the same as they do for other Red Hat Enterprise Linux packages.

[https://access.redhat.com/site/documentation/en- US/Red_Hat_D...](https://access.redhat.com/site/documentation/en- US/Red_Hat_Developer_Toolset/1/html/Software_Collections_Guide/)

</comment></comment></comment></comment></comment></comment></comment><comment><USER37> This article makes a claim (...Puppet...Suck(s)), but does not take even attempt to explain what it is that sucks.

What, specifically, "sucks" about Puppet and Chef and what is so much "simpler" about Salt or Ansible? As an Ops guy who has been running Puppet since 2008 (and Chef most recently) against hundred of servers, I don't see the simplicity reflected in the documentation, nor do I find Puppet or Chef particularly complicated.

(Ok, Chef's attributes system is a bit confusing at first, but it is hugely powerful.)

<comment><USER38> From the article:

> Chef works atop ssh, which – while the gold standard for cryptographically > secure systems management – is computationally expensive to the point where > most master servers fall over under the weight of 700-1500 clients. Salt's > approach was far simpler.

I think I'm with you (without the experience): I find "it works over ssh" a lot simpler than "we wrote a custom protocol on 0mq." Simplicity apparently has lots of interpretations. I couldn't care less if ssh performs well enough to support a trillion connections. In practice, you only need a handful, usually one.

Maybe Salt is fantastic. I'm not really in a position to judge. The article made it sound interesting to me, but I'm not sure attacking Chef/Puppet was really necessary, especially since it wasn't really expounded on.

</comment></comment><comment><USER39> I much prefer the immutable server model [1] to the puppet model. Build a new tested server with the new config and roll that out.

[1] [http://martinfowler.com/bliki/ImmutableServer.html](http://martinfowler.com/bliki/ImmutableServer.html)

<comment><USER40> There's words written about "automatic configuration" in that link but I don't see any guidance or information on what those configuration tools are. The focus is certainly not on automatic configuration: the focus is on use and re- use of images, on taking images, doing something to them, and getting new images.

The notion is deeply flawed to me: using an image as a precondition for making an image, over time, becomes an intractable mess and requires very careful supporting documentation to prevent the scheme from devolving into a bunch of "buckets of bits" with no transparency into what work has gone on to make it that way.

The #1 thing that I enjoy about automated tooling is that I can take a bare OS and spin up a complete new system in a matter of minutes, and I get to watch that entire process happen before my eyes. There's no mystery, no external dependencies, no existing work I'm riding off of: everything that happens is visible to me in an immediate way.

There's a value & use to immutable images, but please decouple your image making from past images made: no one wants to root around to figure out what twelve horrible things you did to install Java 9 image instances back whenever, nor are they going to have any fun reproducing it on the twenty nine active variants of that ancestor image when there's a security fix to be done.

<comment><USER39> I think most people use puppet to build their immutable images at present. It is still rather different from running it on production. Sure you should not start from a non reproducible point.

</comment></comment></comment><comment><USER41> I use SaltStack for managing a render farm consisting of 73 Ubuntu nodes. My requirements are rather simple, really: most states just install some packages, put configuration files into place (sometimes using a template) and enable/start services. However, I can't recall a single problem when setting everything up. SaltStack is clean, simple, and just works.

</comment><comment><USER42> This is timely! I've just started writing a set of salt states to capture the set up of my new dell xps 13 (sputnik) so I never have to go through the pain of setting up xmonad, emacs and various other development environment stuff again.

What I really like about salt is that everything is in one place and all goes towards building the same data structure that everything runs off.

</comment><comment><USER43> Both Salt and Ansible look interesting. It's much easier to define system state using Ansible or Salt than Puppet.

However, I am not sure how would one use Ansible where VMs get launched dynamically (private cloud/virtualization fabric where devs can instantiate systems) and then receive their configuration without any manual steps.

For example, one can create kickstart/VM-images which get a hostname based on certain regex pattern, register with a Puppet master, the Puppet master auto- signs certs matching this specific hostname pattern and then client nodes receive their catalog. This is really useful pattern wherein systems pull their configuration state almost immediately after boot. It requires manual setup only while writing kickstart/VM-iamge profile and Puppet master configuration.

Ansible's SSH keys setup requires manual intervention, however, I think it can be automated using pre-defined keys in kickstart/VM-images. Haven't tried it yet though...

<comment><USER44> Yes, having predefined keys in your VM images does the trick, and is exactly what we do for (almost) zero-intervention deployments of our servers in my particular environment.

We tend to destroy and recreate servers more often than we scale out, so we haven't bothered to remove the manual step of adding the server's hostname to the ansible inventory_hosts file. However, that's easily automatable...

Ansible will _execute_ your inventory_hosts file if it's executable, and IIRC it just needs to return a JSON or YML data structure representing all your servers and the groups they're in. So, as long as you have a library which can query your infrastructure (e.g. boto for EC2 etc) it's not hard to automate this.

</comment></comment><comment><USER45> What I prefer about ansible above all others, besides its simplicity, is that its use case scales up and out. By that I mean ansible can be used for platform/app stack provisioning while OS/infra sys admins maybe another tool. To often an agent based approach causes a conflict with OS sys admins and platform/app team regarding ownership/sharing. I want to offer self service as much as possible. Further, most cfg mgmt tools are monolithic in that they want to manage all servers as tho a single team/overload manages them all, rather than various independent sys admin teams. With various independent teams its just too much hassle trying to share roles appropriately or setup separate master/agents. Ansible does not have these issues.

<comment><USER46> [http://docs.saltstack.com/ref/clientacl.html](http://docs.saltstack.com/ref/clientacl.html)

</comment></comment><comment><USER47> Puppet is mature and has tons of cookbooks & community. You may not like it but saying it "sucks" is not right. It works and is used tons.

Chef doesn't run over SSH in any environment I've used that wasn't a toy (vagrant w/ chef-solo). Please fact check.

Fanboy article.

</comment><comment><USER48> We're actually a Windows-centric shop and have been actively evaluating configuration management solutions for Windows-based virtual machines. Initially, we were only looking at Puppet, Chef, and a commercial product called uProvision along with Vagrant. I was surprised to find that Salt had a real community behind it.

Our greatest challenge has been coming up with a tool which can manage images for both VMWare and Microsoft Hyper-V. This article introduced a web integration between Salt and libvirt called Salt-virt. Has anyone tried this interface for managing images? Does it work better than the young integration between Vagrant and libvirt?

<comment><USER48> For anyone else looking, I just found Foreman. This seems to do exactly what we're looking for, but it uses Puppet instead of Salt. Even if it requires a Linux server, making our solution more complicated, it appears to meet our needs very nicely.

[http://theforeman.org/](http://theforeman.org/)

</comment></comment><comment><USER49> I use fabric for everything just because I dont have time to learn another one of these technologies. This salt article seems great - but at the end of the day (and I may be way off base here) all I want to do is install a given version of a piece of software on my server. I dont want to create a receipt (chef), or learn another configuration format (sounds like I would need to do this with Salt stack), etc. My fabric file really seems to do only three things: use pip to install shit that is python (I use Django), use apt-get to install anything that is ubuntu specific, and make wget calls to various pieces of software, pull them down, and build them from source. Until there is an easy way for me to do this without needing to learn yet another technology, I will continue to use fabric (or, until the job of doing this gets so big I can hire a dev ops guy that actually already knows, but I am not there yet :) ). Sorry for the rant, it's just every time I see these articles I wish I had time to learn the technology but then I realize I don't.

So - is it just me or is there seem to be a big/huge learning curve for all of these dev ops technologies?

<comment> tech-dragon Yaml is a hair above "properly indenting my templates" as far as complexity goes. You write django templates, you can handle Yaml ;-)

As current 'devops guy' on a django project myself, salt works wonderfully. Salt has states available that let you setup all that software, create the virtualenv you need (including telling it you want to use the requirements.txt that you pulled down with your django project source code - Salt gives me my own little Heroku :D ) and for anything left in those wgets you can throw a block of salt cmd.run calls using specified ordering to enable them to run neatly in the sequence you desire.

</comment></comment><comment><USER50> _> MCollective (which Puppet Labs acquired several years ago) was (and remains!) fiendishly complex to set up._

I didn't find MCollective hard at all - you just install some debs, a message queue server (Stomp was easiest at the time - it's now deprecated, but surely is not much different to RabbitMQ?) and it Just Worked for me. And there was a great screencast.

Did it get far more complicated since I used it last?

<comment><USER51> Well, rabbitmq is kind of a pain to get working with it. Additionally, the modules for rabbitmq and mcollective, for puppet, don't really work that well together (read: I had to re-write the ones I found to get them working).

<comment><USER52> I'm starting work at Puppetlabs in exactly a week's time as part of a brand new "module team" and I personally promise you here and in the open that I am going to tackle the puppetlabs-rabbitmq module and fix it so that it actually works and isn't an abandoned wasteland.

Come to that I'm hoping we can start building out a full set of mcollective modules to replace the existing ones that will be fully supported and kept up to date so that getting mcollective running will be as easy as including a class and waiting.

A huge part of this job is ensuring community patches get merged in and contributors get treated as I would like to be treated when contributing to a project. I hope we can reverse your experience with modules within a few months (I took this job because I've been in exactly your position, grabbing official modules and having them not work at all!)

<comment><USER51> FYI we've spoken in the #puppet channel about just this issue ;).

</comment></comment></comment></comment><comment><USER53> When used with Chef Server 11 (or Hosted Chef), Chef scales reasonably well. You install a client on each node, and the client speaks to the server via HTTPS + REST.

The unqualified assertion that Chef uses ssh is inaccurate. You can run chef- solo via ssh if you like, but you'll run into the same scalability ceiling as with any other ssh-based solution.

</comment><comment><USER54> Is there a comparable tool for Windows?

Powershell works great for executing commands on arbitrary servers (which sounds like the basis of Salt), but it'd be great to declaratively say "I want the server in this state" like the config management side of salt. I assume there is a tool built atop of Powershell like this somewhere?

<comment><USER55> As mentioned, this can be done with Chef, Puppet, and Salt, but be careful about how you go about it. It is important to recognize when it is best to leverage AD for your Windows configs.

It is easy to fall down the rabbit hole of trying to implement things in a CM tool/Powershell combo that could be done in AD far easier.

<comment><USER56> Genuine question: Why would you have Windows servers joined in an AD domain? Or are you talking about pushing changes to workstations?

<comment><USER57> Because the services you provide depend on a domain for authentication and configuration like Exchange, Citrix, IIS, Sharepoint, SCCM, and every other Microsoft server product.

I am dying for the chef/puppet/salt/ansible/cfengine recipe that will let me fully configure this stuff, including the domain memberships.

</comment></comment></comment></comment><comment><USER58> From skimming the top level of comments, it seems most people don't like these tools. Fair enough.

That said, on-topic, I just wanted to say that having tried Puppet, Chef and Salt, I've found Salt the easiest to use. Straightforward installation (no messing with Ruby versions/rvm/etc.), really simple setup (systemctl start salt-master; systemctl start salt-minion; salt-keys -L; salt-keys -A yourbox; done), and the YAML-based configuration syntax has been a breeze to work with.

Really quite pleased with it; it's made getting a few of my hairer boxes under control much easier than I expected (and much easier than I found with Chef or Puppet).

</comment><comment><USER59> Yet another un-googlable project name. Pretty much kills it for me.

<comment><USER8> Have you tried Googling salt stack? I've had zero problems finding tutorials and documentation.

</comment></comment><comment><USER43> Good to see tools that work as a system configuration framework and also allow command execution.

[ControlTier]([http://www.controltier.org/](http://www.controltier.org/)) had (don't think it's actively developed now) options to execute general system commands, configure systems and application deployment. But it was fairly complex and required [ant]([http://ant.apache.org/](http://ant.apache.org/)) skills.

</comment><comment><USER60> It seems most people miss the fact that any sufficiently large system is going to require _both_ a pull-based _and_ a push-based solution.

So, take ansible. Primary use: push. But has ansible-pull.

Look at puppet.

Primary use: pull. But has mcollective.

IMO, and I am not there yet but soon to be. The gold standard is to _combine_ two strong players that specialize one each in push/pull. For me, it is looking like ansible/puppet.

</comment><comment><USER61> For years I have been trying to spread the gosspel of bcfg2 because, while not perfect, I thought was a more complete system over Puppet or Chef. Bcfg2, however has some big warts of its own AND it never really caught on.

In the past few months I've been slowing converting to SaltStack and it really is everything I ever dreamed of for a CM system. Fast, easy, real-time. Lovin' it.

<comment><USER20> If bcfg2 was a complete system, it never caught on because the documentation was entirely missing. Every time I looked at it, I blocked on actually getting anything done because I couldn't find an equivalent to these reference manuals:

[http://docs.puppetlabs.com/references/latest/type.html](http://docs.puppetlabs.com/references/latest/type.html)

[http://docs.opscode.com/resource.html](http://docs.opscode.com/resource.html)

[https://cfengine.com/archive/manuals/cf- manuals/cf2-Referenc...](https://cfengine.com/archive/manuals/cf- manuals/cf2-Reference#Concept-Index)

</comment></comment><comment><USER62> I've recently been thinking I need to learn Chef or Puppet. This thread has convinced me to pick up and try Ansible first.

</comment><comment><USER63> [https://github.com/seattlerb/rake- remote_task](https://github.com/seattlerb/rake-remote_task) is all you need if you use ruby.

      require 'rake/remote_task'

      set :domain, 'abc.example.com'

      remote_task :foo do
        run "ls"
      end

<comment><USER15> State management is about a lot more than 'execute this command on a server' (which is discussed in the article). It's about creating a set of rules and performing idempotent actions.

If you're just running shell commands, it's easy to screw up and waste your time or break your server by accidentally having the same commands run twice.

</comment></comment><comment><USER64> I've thrown together a little puppet demo if anything is interested. Highlights what puppet is, and how it works.

[http://sysadmincasts.com/episodes/8-learning-puppet-with- vag...](http://sysadmincasts.com/episodes/8-learning-puppet-with-vagrant)

</comment><comment><USER65> I use Salt to run commands across our EC2 environment to do things like restart Varnish, clear logs, and run updates. Paired with Unison for file synchronization it works well when your auto-scaling kicks in and you need your new AMI to be synched from staging.

</comment><comment><USER66> emm, Private chef also use zeromq to implement the pub job feature.

Puppet has MCollective (with ActiveMQ) to implement the similar feature.

</comment><comment><USER67> Salt is missing templates, the ability to use higher level programming language and all the environment/roles that I find the most powerful part of Chef.

<comment><USER68> You are wrong on all counts here. Salt supports Jinja2 template engine, so you can template your states [1]. You define custom states in python [2]. In the root configuration file (top.sls) you target configuration based on host name, grains (machine specific information) [3].

1 - [http://docs.saltstack.com/topics/tutorials/states_pt3.html](http://docs.saltstack.com/topics/tutorials/states_pt3.html)

2 - [http://docs.saltstack.com/ref/states/writing.htm](http://docs.saltstack.com/ref/states/writing.htm)

3 - [http://docs.saltstack.com/ref/states/top.html](http://docs.saltstack.com/ref/states/top.html)

</comment></comment><comment><USER69> Dead-end. Use ansible.</comment>