How to create iOS Static Frameworks 3x faster - <AUTHOR> https://github.com/jverkoey/iOS-Framework

<comment><USER2> Great article! Thank you very much.

I am currently using the templates from kstenerud, but will switch to your solution as soon as I know how to integrate the bundle target. Could you outline how to integrate it?

<comment><AUTHOR> I'm writing up the guide for resources right now :)

<comment><AUTHOR> Done!

<https://github.com/jverkoey/iOS-Framework#resources>

</comment></comment></comment><comment><AUTHOR> I wrote this article if you have any questions.</comment>


Nuclear Aircraft. The solution to peak oil for planes? - <AUTHOR> http://en.wikipedia.org/wiki/Nuclear_aircraft

<comment><USER2> I would not like that to crash anywhere, even if the shielding problem could be solved.

Might be more effective to use the nuclear power to power carbon capture on the ground.

<comment><AUTHOR> Yes, or generate hydrogen on the ground by water electrolysis.</comment></comment>


Chrome's Process Model Explained - Trey-Jackson http://blog.marcchung.com/2008/09/05/chromes-process-model-explained.html

<comment><AUTHOR> Nice breakdown, but this is a pretty old article (2008). But it's interesting to cross reference with the description here: <http://trac.webkit.org/wiki/WebKit2>

I'm really curious if webkit2 is going to be widely adopted, and if so, if and how it'll fragment webkit development.

<comment><USER2> It shouldn't fragment WebKit development much at all. WebKit2 is just an API layer on top of WebCore, much like the Qt and GTK WebKit API layers. Most of the work is done by WebCore, which is shared by all the API layers.

<comment><USER3> > WebKit2 is just an API layer on top of WebCore, much like the Qt and GTK > WebKit API layers.

WebKit2 is a very different API than WebKit1, though. For one thing, it is non-blocking, and that necessarily means a lot of changes underneath.

Chrome was built around WebKit1, and it may be clunky to layer it on WebKit2, as it seems unlikely that Google will rewrite/remove Chrome's special multiprocess code and use WebKit2 instead.

So I definitely see some tension between Chrome and Safari here. WebKit2 is multiprocessing for WebKit 'done right', while Chrome's approach was, I suspect, in part done in order to get results quickly (and indeed it got to market far, far before WebKit2).

The duplication of multiprocess code for WebKit is already itself fragmentation in WebKit, which is not surprising given the development model there. But, I expect WebKit to continue to be an excellent project nonetheless.

<comment><USER4> As one of the people who has worked on designing and implementing those changes, I can tell you that we did not need to change much in WebCore. And what we did do will probably be useful for Chrome's different multiprocess mechanism.

Incidentally, I would not say there is anything technically wrong or hacky about Chrome's process architecture. The reason we started anew is that it's not very reusable if you don't buy into the whole Chromium stack. Google chose to make multiprocess an app feature, we made it a framework feature. Reusing Chrome's code for a different app or another platform port would require inserting an API boundary where there was never meant to be one.

We did talk to the Google folks about whether they would want to integrate their multiprocess approach into WebKit itself, but that didn't really meet their needs or plans.

I do hope we can converge and share more over time.

<comment><USER3> Thanks for the additional info.

It does seem like this is mainly awkward for Chrome. But probably not a big deal.

</comment></comment></comment></comment></comment><comment><USER5> [2008]</comment>


A tool fighting the tabs opening time gorging information overload monster. - <AUTHOR> http://diystartupnews.com/2011/02/08/pitch-for-joinbox/

<comment><USER2> That's the most awesome title I've ever tried to read. What does it mean?</comment>


IamA guy who bought a 22-building 'ghost town' over a year ago with a friend - <AUTHOR> https://www.reddit.com/r/IAmA/comments/fxejw4/iama_guy_who_bought_a_22building_ghost_town_over/ <comment><USER2> I'd really love to see more pictures of the saloon with it's bullet holes and bloodstains (according to the linked article in the AmA). I don't know why, but I have a passion for "Lost places" \- especially if these places tell stories.

Some years ago, I regularly drove the A7 in Germany (large Autobahn), and while passing Hamburg, I always noticed the top of a church in what seemed to be an industrial area. After a while, I decided to leave the Autobahn, and drive to this place.

It belonged to a village called "Altenwerder"[0], which got turned into a quarter in 1960, when plans were made to enlarge the harbour. People got relocated in the 70s & 80s, and the last people left in 1998.

However, the church is still in service. And if you walk around the area, you can still see traces of gateways, smaller roadways and so on. [1]

The cemetery isn't used any more, but has one pretty impressive gravestone. [2]

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

[1]: [https://goo.gl/maps/mhYSQgp8sPsRr4yL8](https://goo.gl/maps/mhYSQgp8sPsRr4yL8)

[2]: [https://upload.wikimedia.org/wikipedia/commons/d/da/Sga_grab...](https://upload.wikimedia.org/wikipedia/commons/d/da/Sga_grab_engel.jpg)</comment>


A quiet roadside revolution is boosting wildflowers - <AUTHOR> https://www.theguardian.com/environment/2020/mar/14/on-the-verge-a-quiet-roadside-revolution-is-boosting-wildflowers-aoe <comment> jay-anderson When we bought our house it had a lawn in the backyard. I never really liked taking care of it. Last year I worked on getting rid of the bermuda grass in my back yard. This year I put out some wild flower seeds and watched what came up. I still worked on removing the plants I didn't want, but I let a lot of the weeds come up. Most of the seeds I put out didn't take, but that's fine. I got to know the natural plants that come up. Others look at it and see an unkempt yard, but it makes me much happier than my lawn ever did. It's green, it takes less water (zero) and if you watch closely there are more birds, bees, lady bugs, and others than I ever saw with the lawn.

Stories like this one of a more careful management of land make me hopeful. I'm working to get something better going with my little plot of land too.

<comment><USER2> I've thrown out wildflower seeds many times on my lawn, but nothing took root. So I've been trying simply mowing it once a month to keep the blackberries and scotch broom from taking over, and seeing what happens.

(Blackberries and scotch broom run amok if left alone, and the former creates an impenetrable hedge taller than myself with a dead zone underneath, everything else choked out. It takes repeated mowings over several years to finally kill them.)

<comment><USER3> If you're removing Himalayan blackberries you have to dig the rhizome out. It's not enough to cut it down. Basically you take an adze or similar and cut in where the shoots are coming out of the ground. Then pull up on the shoots and a little ball will come up with them.

Here in Washington State the Himalayan blackberries are an invasive species which grows all over the place. There are no natural predators here. If they become established then they kill everything around them including some trees. The only reliable way to remove them is by digging out the rhizome after cutting them to the ground. It can take several years to completely eliminate them from an area

<comment><USER2> If you keep mowing them, they eventually starve and die. They cannot live off of the root ball forever. So far it looks like it takes two years for that to happen. Every time they throw out shoots it consumes the root ball's food. Cutting off the shoots before they can photosynthesize more food will do the trick. It also helps to cut them down after they flower and before their resources get sucked back into the root ball in the fall.

For scotch broom, they'll also grow back if you cut them off at ground level. But I found if you cut them off right after they flower and start going to seed, they don't grow back. Apparently they throw so many resources into the flower they can't recover.

We also have a huge problem with english ivy, which looks nice but kills the trees.

<comment><USER4> I've got nothing to add but I just wanted to remark that your description sounds incredibly gruesome.

</comment></comment></comment></comment></comment><comment><AUTHOR> Here is a relevant video by the fantastic self-taught botanist _Crime Pays but Botany Doesn 't_

PSA - Kill Your Lawn w/ Silphium terebinthinaceum

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

(Also related HN discussion on another of his videos: [https://news.ycombinator.com/item?id=21041193](https://news.ycombinator.com/item?id=21041193))

<comment><USER5> I have to thank you for this link - one of the greatest channels I've ever stumbled upon on YouTube!

</comment></comment><comment><USER6> Texas has been doing something similar for a while, it's really pretty when things are in bloom.

\- [https://www.wildflower.org/project/ecological- roadsides](https://www.wildflower.org/project/ecological-roadsides)

\- [https://www.wildflower.org/plants-main](https://www.wildflower.org/plants- main)

\- [https://texashighways.com/culture/people/a-runner- reflects-o...](https://texashighways.com/culture/people/a-runner-reflects-on- lady-bird-johnsons-legacy-and-the-companionship-of-nature/)

\- [https://texashighways.com/wildflowers/](https://texashighways.com/wildflowers/)

<comment><USER7> Texas in the spring is wonderful. Everyone is out taking pictures in the massive fields of bluebonnets and indian paintbrush. Of course, it can also cause traffic issues as people pull over to do the photo op in the medians.

<comment><USER8> Giant shoulders mean this usually happens by the highway without trouble.

</comment></comment></comment><comment> bjelkeman-again Where we live ditches that don't need the full capacity of an open ditch have been filled with gravel and then perennial flowering plants have been seeded. The place was absolut teeming with butterflies, bees and bumble bees.

</comment><comment><USER9> New Jersey has had a trial program for several years now. In fact, you can buy the seed mix that the Garden State Parkway uses.

[https://www.gspwildflowers.com/shop](https://www.gspwildflowers.com/shop)

<comment><USER5> They must be doing the same thing along I-80 as well. For several years, I have been seeing these patches of bright pink/purple flowers here in NJ and been wondering about them as they looked too regular to be entirely natural. I love them and they add some much needed color to the landscape.

<comment><USER9> Yes! It's a statewide program. There's a specific jughandle at the 78/Turnpike interchange that has a nice patch of flowers every summer. It's funny seeing it amid all the industry and crud of the area.

</comment></comment></comment><comment><USER2> What a marvelous initiative. We should be doing this everywhere.

In a house where I used to live, I left as much as possible as meadow (because I am lazy and too cheap to water it), cutting it only twice a year to reduce the fire risk. Everybody else installed the golf course style lawns. I had the best looking yard by a mile :-) and was very happy with it.

</comment><comment><USER10> The NJ Turnpike has been planting lots of wildflowers, which make an attractive subject for photography.

One cloverleaf near me had cosmos:

[https://flic.kr/s/aHsmG1mX94](https://flic.kr/s/aHsmG1mX94)

<comment><USER11> Those are some very attractive photos, thank you.

Though for my own information, and forgive my ignorance... is that the kind of pseudo-bokeh you get from a camera phone? Or was that you being very artistic? Either way the shots are nicely composed.

<comment><USER10> That's real bokeh from a 36×24mm sensor and either moderately fast apertures or long focal lengths.

</comment></comment></comment><comment><USER12> I love this story. I don't see why they need to reinvent the wheel with the sucking machine and taking the clippings to an anaerobic digestion facility though. A method for removing clippings and doing something useful with them has been around for centuries, it is called baling hay.

<comment> frosted-flakes Even better, farmers will sometimes come do it for free!

</comment></comment><comment><USER13> If anyone is so inclined, I would encourage you to do a web search for "how to make seed bombs".

Essentially a ball of clay, seeds, and a small quantity of organic matter to facilitate distribution of seeds and reduce bird predation.

Please, please research native species if you decide to go this route.

<comment><USER14> Have you ever seen them work, or seen data on them? I've never had them work, and they don't seem like they would either - bunch of seeds landing in a ball together would lead to too much competition, right? That is, if they didn't sprout while the ball initially dried.

<comment><USER13> I think the temptation is to put too many seeds into the mix, creating the problem you identified. When you broadcast seeds you want a certain number of pounds per thousand square feet and instead you have a ball that will cover a few square inches. You aren't trying to fill an empty lot, you're trying to get a few self-seeding plants established.

I did some in a couple places where I no longer went, so I have no idea what happened to them, and unfortunately the spot where they seemed to work got turned into a building the very next year. I'm in areas with low clay content in the soils so it's difficult to source materials without buying them.

</comment></comment></comment><comment><USER15> Minnesota actually has a formal program for this called Roadsides for Wildlife: [https://www.dnr.state.mn.us/roadsidesforwildlife/index.html](https://www.dnr.state.mn.us/roadsidesforwildlife/index.html)

</comment><comment><USER14> How cool and uninituitive. I worry about prime butterfly habitat right next to a road with high-speed radiator grills.

<comment><USER16> My guess is that loss of individuals to vehicle strike is not important for the overall population. What's important is the carrying capacity of the habitat which, according to this article, has been significantly increased.

</comment></comment><comment><USER17> > The Environment Agency (EA) did not renew the permit for Lincolnshire to > continue the trial due to concerns about waste codes and regulations.

Never let a good idea get in the way of British traditions.</comment>


Ask HN: Do you ever regret not having kids? - <AUTHOR> For the HN users who do not have kids, do you ever regret not having them?
Neither me nor my wife wants kids, and we are perfectly happy now. But I always have this doubt at the back of my mind that maybe it'll change and I'll regret it one day. Especially when I hear people talking about how wonderful kids are.
What's your perspective? <comment><USER2> There are a lot of ways to have kids in your life and to be a parent figure for them without actually being a parent. Even if you're older. If you find yourself wishing you had more a bond with a child in your future, get more involved with kids in your family or with non-profits or fostering.

</comment><comment><USER3> I've never regretted having kids. And I think I'd have very much regretted not having them. Is it for everybody? Of course not. But for most people, it's one of the great joys of life.</comment>


Casual Sex: Everyone Is Doing It - <AUTHOR> http://www.newyorker.com/science/maria-konnikova/casual-sex-everyone-is-doing-it?intcid=mod-latest <comment><USER2> Discussion: [https://news.ycombinator.com/item?id=11977248](https://news.ycombinator.com/item?id=11977248)</comment>


NSA posters from the 50s and 60s [pdf] - <AUTHOR> http://www.governmentattic.org/28docs/NSAsecurityPosters_1950s-60s.pdf <comment><USER2> Anyone recognize the paper tape format on page 103? I wonder if they included some hidden message in it.

EDIT: I manually transcribed the clearest part of the tape to binary (the start of the tape is the center of the poster, and it's viewed from behind at the part I transcribed), and pasted it into the converter at: [https://v2.cryptii.com/ita2/text](https://v2.cryptii.com/ita2/text)

Binary: "00100 00011 01100 01001 00100 00101 00111 10110 00001 01010 00110 11000 01010 00100 10010 00001 00011 01001 00001 01010 00101 10100 00110 10110 010001 00100 00010 111001 10100 111101 00110 00101 00100 00111 01100 00110 10111 00111 00001 00100 01110 11000 01100 10000 01010 00110 11001 00111 10000 00110 11000 01100 00101 00000 110101 101001 00011 01100 01001 00100 00011 01110 10100 00110 00001 11110 00001 11100 00001 01100 10000 00101 00100 11100 00011 10000 00001 01010 00110 00011 10010 10010 10101 00100 00011 00110 01001 00001 01001 00100 10000 11000"

Decoded: " and superior leadership his unique contributionsand achievements materially aided to"

Decoded, with the mysterious sixth bits deleted: " and superior leadership mhvis unique contributionsghand achievements materially aided to"

Unless the sixth bits have some hidden meaning, this appears to be just management's praise for somebody. It's tedious to transcribe manually, and a lot of it is unreadable, so I'll stop here.

<comment><USER3> Looks like standard RTTY (Radioteletype)

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

</comment></comment><comment><USER4> A had a few NCSC security posters that look like they came from the same art department, which I scanned:

Uncle Sam pointing: I want to protect the information in YOUR computer. [https://i.imgur.com/e0a67w9.jpg](https://i.imgur.com/e0a67w9.jpg)

Santa shooshing: He does not give away PASSWORDS. SHOULD YOU? [https://i.imgur.com/ZZDXBBn.jpg](https://i.imgur.com/ZZDXBBn.jpg)

Pirate and Spy: Pirate or Thief? Respect Copyright. It's the law. [https://i.imgur.com/Oa8DDeU.jpg](https://i.imgur.com/Oa8DDeU.jpg)

And I took screenshots from that PDF of my favorites:

Magician pulling rabbit out of hat: No Trick to Security. It's Just Common Sense. [https://i.imgur.com/9EvTtsI.png](https://i.imgur.com/9EvTtsI.png)

People with safe dials in their mouths: Put Security Where Your Mouth Is. [https://i.imgur.com/WAbAEuM.png](https://i.imgur.com/WAbAEuM.png)

Hot pink poster with James Dean in a sultry pose with his arm draped around a safe: Up tight and out of sight. (I'll refrain from cracking any safe sex jokes!) [https://i.imgur.com/dBv13kU.png](https://i.imgur.com/dBv13kU.png)

<comment><USER5> A little off-topic, but clicking imgur "direct" links on mobile redirects you to the standard m.imgur.com URL now? Eww.

<comment><USER6> They started enforcing this pretty strictly in the last few weeks. It's a massive turnoff as a service, but considering they're a "social network" now and not just a reddit-specific image host, it's not a surprise.

<comment><USER7> Ah, the undending cycle of image hosting services. First they start clean and useful, then they gradually degrade in an increased effort to be profitable, then they get replaced by something new that's clean and useful...

<comment><USER8> Only for as long as initial investor money lasts I guess. There's just no money to be made in 'free' image hosting without starting to do some nasty tactics, mostly involving direct (hot) linking.

<comment><USER7> How do you make money off hot linking? I thought hot linking was the thing _users_ want to be able to do, that's inherently impossible to monetize.

<comment><USER9> Which is why you directly charge the users for it. cf. Photobucket

<comment><USER7> Which is what makes people not want to use the service, and switch to whoever allows hotlinking at the moment. That's how imgur came to be.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Some trippy posters in there. My favorite was the one where all of the NSA employees had lock mouths.

I was surprised how religious some of these were, beyond just "Merry Christmas, don't forget about security"

e.g "Christian ideals created freedom"

<comment><USER11> Ivan is an atheist, you see. This way we all know we aren't soviet.

I'm reasonably convinced that explains a fair bit of the "we are very publicly religions"part of the 1950s.

<comment><USER12> I've always wondered how the political right in the West ended up with such seemingly odd bedfellows as capitalism and religion. e.g., the Jesus of stories seems like a potentially Socialist sort? A friend of mine thought that it was likely that the pairing was a reaction to the communism and atheism of the USSR.

<comment><USER13> This is a common strand within protestantism, imported from northern Europe into the United States.

It is quite at odds with the catholic view of things and with what Jesus is reported to have said in the bible.

<comment><USER14> The Calvinist work ethic is less Jesus and more Old Testament: you were born into sin, you live under the Curse of God, and you'd better work as hard as you can every day and shun vice or you'll go to hell.

<comment><USER15> That's no different than orthodox Christian theology. Like with a handful of other unique religions, orthodox Christianity fundamentally put great value into and encouraged work in the temporal world. In Roman Catholic theology _science_ \--knowing the physical world through exploration and labor--is at least in principle an avenue of holy revelation similar to that of the bible and the Church.

I think the difference is in the shedding of the ancient modes of worship. Follow Protestant theologies to their logical end and the _only_ way to _manifest_ piety is through industrious labor. It's not just that work is prayer; that concept was already present in orthodox Christianity. Work _becomes_ the religion, rather than being one aspect of a more complex system of worship.

<comment><USER14> Well, as far as I was taught growing up Roman Catholic, you were supposed to be faithful and good, and honour God every day, and over time your soul would be saved through faith and good deeds. In old-school Calvinism, original sin is upon you until He takes it away, like the bomb in Jackie Chan's mouth in Rush Hour 2, and he'll just as quickly give it back if you break the faith.

EDIT: not the mark of Cain, duh...

<comment><USER15> I'm not sure that's official Catholic doctrine[1] but in any event compared to many other religions, and many strains of Christianity (think early Gnostic sects) it's all splitting hairs. People quibble endlessly over how and why good works and labor are important--do they _reflect_ salvation or _further_ salvation?--but I don't think those theological distinctions have substantively effected our political culture. Such minor distinctions are exaggerated by denominations precisely because of their larger shared characteristics that require them to work hard at differentiating themselves. Most of these nuances lose their importance when, e.g., comparing Christianity to Islam, Buddhism, or Hinduism.

[1] AFAIU _official_ Roman Catholic doctrine, as well as most Protestant faiths, is that salvation _only_ comes from the grace of God; and that the only sure-fire way of receiving that grace is wholehearted belief in Jesus Christ as the son of God who died for the remission of sin. But that just begs the question of what "belief" means, thus the centuries of dispute subsequent to the domination of Trinitarianism.

<comment><USER14> I was trying to refer to the doctrine of righteousness being infused vs. imparted.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> You know,the scary thing about the US intelligence community isn't that they all are "after out liberties" or "againsy our privacy". My experience and encounters related to the IC scare me because they genuinely believe they're the good guys who're on the right side of justice. The real scary part is that _they_ are scared of what will happen if they don't do something (where something entails disregarding laws and the will of the people). I would rather they be "after me" than scared of me.

I hope academics consider this before getting into bed with them. They don't just have a subersive mission,they're making decisions out of fear.

<comment><USER17> > The real scary part is that they are scared of what will happen if they > don't do something

In the context of these posters, the implied "what will happen" is mostly worldwide Communist revolution with the U.S. losing the Cold War. You can see that for example in the poster depicting the edited version of the Gettysburg Address, which someone commented on elsewhere in this thread. The concern is worldwide totalitarianism on the Soviet model, and that's mostly the danger that these posters are meant to allude to and frighten the NSA staff with. If you say the wrong thing at Christmas dinner, Communism may win.

That sounds like a joke nowadays, but I'm sure it didn't sound like a joke to the people who created the posters or the people who saw them every day. Both sides of the Cold War fought it super-hard.

One problem that the people making the posters left out is that the Cold War also led to vastly bigger, stronger, more secretive states—including on the NATO side. It led to creative people being given billions upon billions of dollars to dream ever-bigger dreams about military and intelligence capabilities. We still don't even know what some of those dreams were, partly because generations of classification holders brought up on these posters and other versions of them have taken them to heart so strongly. So, we've got states that continue to be extraordinarily ambitious and capable in some ways that they don't really want anybody to talk about. To me, that's a tragic legacy of the Cold War. If the people who made the Gettysburg Address poster were serious in their concern for the state's apotheosis, they might have done well to also consider how "war is the health of the state"—evidently, whether it runs hot or cold.

We _kind of_ know about some parts of the nuclear side of that, and we _kind of_ know about some parts of the espionage and covert action side of that, but these parts all kind of hurt to think about and the people who've dreamt and are still dreaming those billion-dollar dreams would mostly just as soon that we didn't go too far down the rabbit holes.

<comment><USER18> Any particular background on any of this you might recommend?

</comment></comment></comment><comment><USER19> just mirrored to imgur: [https://imgur.com/a/30Co0Q2](https://imgur.com/a/30Co0Q2)

</comment><comment><USER20> I hope the "That this nation shall have a new birth of freedom and that government of the _state_ by the _state_ for the _state_ shall not perish from the Earth" (with "under God" struck out) poster meant something other than its literal meaning...

<comment><USER17> It was alluding to the risk of Communism.

</comment></comment><comment><USER21> If the there higher res of these? I'm considering printing some and hanging around.

</comment><comment><USER22> "Men must be governed by God or they will be rules by tyrans"

Ah... O tempora, o mores...

<comment><USER23> Heh, Cicero wouldn't have said that himself; he was a republican and would advocate for the rule and freedom of the patricians and senators, rather than mob rule or kingly rule. Theocratic rulership was definitely out of the question.

</comment></comment><comment><USER24> Like the way the use Big Ben (Elizabeth Tower) as an example of those dangerous subversive places where beat combos run wild.

</comment><comment><USER25> In what context did these exist?

Were they posted on streets or in schools? Or were they internal posters, hung around NSA offices?

</comment><comment><USER17> And also the 70s, seemingly, even though the request didn't specify that.

<comment><USER26> Specifically, 6614806 is clearly from 1970. And that's John Travolta from 1977's "Saturday Night Fever" in 6614848.

Also interesting that there are various images of paper and filing cabinets, but no computers or terminals.

</comment></comment><comment><USER27> Wish I could get some of these full sized and in original quality.

<comment><USER28> would definitely hang up a few of these in the office if they were good scans

</comment></comment><comment><USER29> These are amazing. So many to choose from.

</comment><comment><USER30> Some of those are very disturbing.

<comment><USER31> " ... government of the state, by the state, for the state ... "

(The more things change, the more they stay the same...)

<comment><USER32> I'm pretty sure that one was meant to show communism, with "under God" cross out and people replaced with state, supposedly with the blood of the revolution.

</comment></comment></comment><comment><USER33> Kind of unnerving how a lot of those propaganda posters would be almost ironic to use in today's societal setting; or maybe its more unsettling how most people today don't care about having their rights infringed upon.

</comment><comment><USER34> What strikes me (besides NSA apparently meaning 'Non-Secular Americans') is that a lot of these posters don't have the design flair and inspiration of, say, WWII propaganda posters.

<comment><USER35> The NSA's existence was still not publicly acknowledged when some of these were commissioned (the versatile initialism then being "No Such Agency"), which may have shrunk the artist pool.

</comment></comment><comment><USER36> what on earth is with the black telephone hanging by a noose? some of these are pretty interesting.

<comment><USER35> "Hang up the phone."

<comment><USER37> Spot the person who spent their childhood watching [https://en.m.wikipedia.org/wiki/Catchphrase_(UK_game_show)](https://en.m.wikipedia.org/wiki/Catchphrase_\(UK_game_show\))

</comment></comment></comment><comment><USER38> Pretty dope. Downloading these. Might have them wide format printed to hang at my house.

</comment><comment><USER39> What does poster on page 25 (No: 20, ID 6614809) mean and who is that guy?

<comment><USER40> More info: After messing around with the image levels, the faded text shows as "Eternal Vigilance is the price of Liberty" (a quote which has been incorrectly attributed to numerous famous figures: [https://www.monticello.org/site/jefferson/eternal- vigilance-...](https://www.monticello.org/site/jefferson/eternal-vigilance- price-liberty-spurious-quotation))

([https://i.imgur.com/hkKrb8o.png](https://i.imgur.com/hkKrb8o.png))

</comment></comment><comment><USER41> Simple question about these (great) posters : whats their legal statuts regarding IP ? Possible use for commercial purpose ? Obligation to mention the source ? I'd love to use them for presentation about security.

Any link to information about that would be very welcome too.

<comment><USER42> This should be applicable [https://en.wikipedia.org/wiki/Copyright_status_of_work_by_th...](https://en.wikipedia.org/wiki/Copyright_status_of_work_by_the_U.S._government)

<comment><USER41> "The U.S. government asserts that it can still hold the copyright to those works in other countries."

Going a little further I read : "the U.S. Government may obtain protection in other countries depending on the treatment of government works by the national copyright law of the particular country." (from the CENDI FAQ), which is adequate with private international law.

Anyway, thank you !

</comment></comment></comment><comment><USER43> can someone adjust the colors so printing them wouldn't take so much ink? I don't have the skill.

</comment><comment><USER44> Might be tangibly related -- and honestly I have no dog in this fight -- but it seems that a certain sect of our political parties really are trying to eliminate or counter the narrative that America was founded on Judeo-Christian values must have complete blinders on when it comes to history of this country, and just flipping through some posters from the 50's and 60s made it very apparent that it was the prevailing value in this country. Say what you want for bigotry, the patriarchy, or whathaveyounot, but you cannot deny the impact, and the unifying value system this country used to all share which is yet another reason, among many, for the large divisions in our society today.

<comment><USER45> I probably shouldn't bother, but-

America was founded by a bunch of Christians, and some of the country's construction surely was influenced by that.

However America was NOT founded as a Christian state.

Where the left & right butt heads over this is usually when, for example, pro- lifers say _" God clearly forbids abortion and America is a Christian state so our laws must follow the Bible"_, and pro-choicers say _" Uh, no, this is not a Christian state, the Bible does not set our laws"_.

<comment><USER44> And this is NOT what I am saying, I said it was founded on Judeo-Christian principles.

<comment><USER46> It was founded on Enlightenment principles, some of which are deliberately conflated with Judeo-Christian principles, but are actually quite distinct.

</comment></comment></comment></comment><comment><USER47> ? doesnt load

<comment><USER48> It's a _huge_ pdf. Maybe just download in background.

</comment></comment><comment><USER49> > "Don't TALK yourself to death!"

That's macabre - I interpret it as "leak classified information and we will kill you"

<comment><USER50> I think it's more of a "leak classified information and they'll find out how to kill all of us".</comment></comment>


Step-by-step tutorial to build a modern JavaScript stack from scratch - <AUTHOR> https://github.com/verekia/js-stack-from-scratch <comment><USER2> I feel like the people complaining about how many libraries there are in this stack don't know what these tools do. Most are small tools that do one thing very well.

Yarn installs packages, much like Gem, NuGet, whatever. Pretty standard.

React is a frontend framework. Not surprising that you'd use one. I suppose you could opt to write a giant pile of vanilla JavaScript instead (I'm assuming you're _not_ using this kit for a simple webpage, which would be silly. We're building a web _app_ , right?)

I'd dare to compare Gulp + Webpack + Babel to your "compiler" in a way. I'm a little lost at why we're using both Webpack and Gulp though. Babel is a necessary evil to ensure we're "cross-platform" in a manner of speaking. These are probably your most "unnecessarily complicated" tools.

ESLint and Flow check your code for obvious mistakes. Reminds me of IntelliSense and compiler warnings. Again, pretty standard stuff.

Mocha is a test runner and Chai is an "assertion library". Chai isn't a big deal: expect(foo).to.equal('bar'); Simple stuff.

Feel free to scoff at Redux and Immutable if you'd like. Probably unnecessary.

Am I the only one that likes this ecosystem? I feel like it follows the Unix philosophy of "Make each program do one thing well". You need almost all these tools in other environments -- they're just typically chosen for you in advanced.

<comment><USER3> I think the reason most of us dislike the ecosystem isn't because therre are many libraries and tools in the stack. In the C-world, every time you type 'make' I am probably executing two dozen different programs, so we are very comfortable with "Make each program do one thing well".

The problem that most of us dislike the javascript/web ecosystem is that those set of libraries and tools keep changing every couple years. As someone who doesn't do this as a full time job but once in a while has to poke his head out to the other side, it's really hard to keep up with even the acronyms. For example, I know that we are using npm, but now you say we should use yarn?!

<comment><USER4> Just google "yarn vs npm" and you'll know the answer...

the tools change because the technology is evolving, despite node the front end is still the driver, and mobile phones / browsers / etc are constantly being improved and evolved, and the ecosystem keeps up with it. Would you rather it all stayed static like in the C world and then you program a 2016 smartphone with a 2006 stack?

<comment><USER5> The answer to your question is yes. I would rather the stack, or at least most of it, stayed stable for 10 years. The problem seems to be that the JS community keeps re-discovering the wheel at every step, instead of actually looking at other ecosystems and learning from them.

How log did it take for a sane build system to show up? Or a sane package manager (with dependency resolution, upgrades, checksums, signature verification, etc.)? Why is Grunt/Gulp a thing when we have thinks like make/CMake?

The technology is not changing, in the sense that the state of the art is not really changing. In the past 15 years the biggest paradigm shift has really been towards single page apps, ES6-7, and TDD. The rest has existed as state of the art in many other ecosystems, but the JS community is notorious for having a bad case of NIH syndrome, so it's taking forever to get to the state of the art.

The good news is that it will slow down at some point. The bad news is that it probably won't be for a few years.

<comment><USER4> > Why is Grunt/Gulp a thing when we have thinks like make/CMake?

What a ridiculous statement. It's like asking why .NET doesn't use the JVM or why Haskell doesn't use the C compiler. Grunt/Gulp solve web dev specific problems, make is a different kettle of fish.

</comment></comment></comment></comment></comment><comment><USER6> From section 1 of the tutorial:

> Since it came out in October 2016, [Yarn] received a very quick adoption and > is becoming the new package manager of choice of the JavaScript community. > We are going to use Yarn in this tutorial.

It's October 2016 as I write. Tell me this tutorial is satire. Please.

<comment><USER4> Yarn solve some problems that the npm folks were unwilling / unable to solve, and is backed by Facebook + Google (+ others) so it's likely to be here to stay. Unless npm wake up and smell the coffee and implement some of it themselves, but experience shows they are quite opinionated and not in a good way.

<comment><USER7> IIRC the yarn developers worked with NPM to get it out.

It's not a lack of will or ability on the part of NPM that it can't be "fixed", it's that NPM has just so much baggage. They can't change how things are installed, because that would mean getting rid of features that many people rely on. For a while they didn't even have any documentation on how NPM worked, it was a bit tautological (npm worked in the way that npm worked...).

And rather than add flags or settings to NPM to support yarn's use cases which would bloat the code, add a pretty sizable increase to maintenance and support, and would really be a mess, they decided to create their own tool which is similar enough to make it easy to switch, but without any of the legacy baggage that NPM needs to support.

It's a perfect example of the unix philosophy at work ("Don't hesitate to throw away the clumsy parts and rebuild them."), and just about everyone (including NPM) is happy with the work they are doing.

<comment><USER8> I honestly don't know that part of the Unix philosophy. And it starkly contrasts with my experience related to Unix, where most of the time we throw nothing away.

</comment></comment></comment></comment><comment><USER9> Ridicule me all you guys want but I still write using just html/css/js and sublime text (no jquery either). And I have written a 30k line project using just that and php.

Being a filthy casual has it's upsides. I can do whatever I want insanely quick. Moving projects from machine to machine is quick as well. Only time I use command line is for git. I do have the advantage of having all my customers on a modern browser. But if that were not the case, only thing extra that I would need is babel. None of what OP mentions is "needed" to create a "modern" web app. Far from it.

<comment><USER10> So just curious here -

How did you manage your js files ? Did you put everything in a single file ? If not, what scheme did you take up on to split the files ?

What about minification and obfuscation of js ? And since you are not using jquery, did you manually set event handlers (onclick, onchange) in the html ?

From my personal experience, I had once did a pretty big JS project without using the ES6, webpack flow. And beyond a point of time, it got pretty much out of control. In hindsight, using classes, require directives would have made life so much easier to understand.

<comment><USER9> > How did you manage your js files ? Did you put everything in a single file ? > If not, what scheme did you take up on to split the files ?

Since I have the benefit of having all my customers' systems on chrome/ff (evergreen variety) I can use latest js features that are stable. So most of my main project (a CMS for schools to manage date sheet, exams, result, attendance, homework, assignments, etc) is divided into features/modules.

There are a few project wide classes (es6) that are all in one file /main.js (about 1000 line file, nothing outrageous). Then every feature can have any number of individual pages (mostly two). So for example attendance has two pages take.php and view.php. Each page with it's own js file, an average of 300-500 lines per page, though a couple js files go as far as 1500.

At the end most pages have about 2 or in some cases 3 js files that are included in the header. It used to be kind of a mess when I wasn't using classes but now it's all pretty much as good as it will get at my current skill level.

> What about minification and obfuscation of js ?

My overall static page load is about 30kb to 50kb on average (excluding api/json calls) so minification is not something that I had to look into but I can easily do it with a babel flag. I mentioned babel in my original comment because some of the site is also exposed to parents that can be from any device/browser. So I use babel to compile (and if I want, minify/obfuscate) some of my code as well.

> And since you are not using jquery, did you manually set event handlers > (onclick, onchange) in the html ?

I think even in jquery you would have to set manual event handlers. But I have a `Node.prototype.on = (e, f) => this.addEventListener(n, f);` somewhere in main.js. So setting event handlers is not as verbose but I never needed anything more than that. Not sure what other advantage jquery provides over `node.on('click', e => {})`. Inline event handlers are yuck. My html/js/css are strictly segregated.

I mostly keep my interface simple and focused on one single task so I never needed frameworks like react either. I keep DOM interaction to minimum. Only place where I think something is left to be desired in my work flow is generating DOM nodes from my json api responses. I have it down to as simple as I can but it's still pretty verbose. But I don't want to include and figure out an entire framework just to do this one task that I am not completely satisfied with but isn't that big of a trouble either.

Whew that turned out to be longer than I expected.

</comment></comment></comment><comment><USER11> I appreciate the effort, certainly do. But, and this a big but: the amount of tooling, libraries, complexity and systems needed for a "modern" web app is almost comical at this point.

<comment><USER12> Are you sure it doesn't seem that way to you because you're less familiar with the ecosystem? Compare it to a Java backend. You might pick Ant, Ivy, Docker, Dropwizard, Guice, Jersey, Jackson, Mockito, JUnit, etc. I don't consider that to be radically less complex than the front-end stack proposed here -- but it just seems that way because a lot of those are "de facto" tools.

<comment><USER13>
      > You might pick Ant, Ivy, Docker, Dropwizard, Guice, Jersey, Jackson, Mockito, JUnit, etc.

I would pick maven, and add the rest as dependencies inside the pom.xml file (the only configuration file I need to worry about). It would take me about 5 minutes and then I could import the project into IntelliJ IDEA and hack away. I can write a tutorial about it in a single blog post, together with the necessary commands to build, test and deploy the artifact.

With javascript, I need: webpack.conf, package.json, .babelrc and god knows what else. Seems like every piece of technology around javascript (transpilers, packers, dependency managers) requires another layer of configuration, another set of CLI commands, and another waste of time trying to figure out why it doesn't work.

</comment></comment></comment><comment><USER14> As a back-ender looking to dabble with modern front-end development best practices, I'm encouraged to find guides like this one. Even if the array of available packages and tools appears dizzying, and often times faddish, it's nice to see the many options laid out rather concisely.

I have a decent handle on React and some of its immediately related tools, which has greatly improved my fluency with contemporary front end work. I may not ever use all these tools, but again it's helpful to see their setup illustrated in an easy fashion.

Apart from React, what would be the next most important tool to pickup?

<comment><USER15> The good news is that it can all be broken down into view library, state management, transpiler, build tools, and test framework. Almost all of these tools fit one or more of these categories. If you pick the one or two most popular libraries from each of these categories and build a toy app using them, you'll be 90% of the way there. The stack listed in this article is the current vogue.

If you're not already using webpack with react, I would recommend putting the time in to learning that. It's a beast and the documentation leaves a lot to be desired, so you'll have to supplement your education with a lot of google searches, but it's quite powerful and flexible.

React has come to dominate the ecosystem so rapidly that for the medium term you're probably fine just sticking with that, and learning complementary tools like various flux or relay/graphQL implementations. Angular is the only other tool I regularly run into as a freelancer, but this is less and less often. Almost all the clients I've worked for in the last six months have wanted react. Of course there are many more exotic stacks that some people swear by, but if your goal is to cover the largest percentage of the job market possible, react and angular will get you there with a minimum of effort.

</comment></comment><comment><USER16> define:irony - a state of affairs or an event that seems deliberately contrary to what one expects and is often amusing as a result.

example: This is a minimalistic and straight to the point guide to assembling a JavaScript stack.

It teaches you how to set up ES6, Babel, Gulp, ESLint, React, Redux, Webpack, Immutable, Mocha, Chai, Sinon, and Flow. It

<comment><USER17> Exactly. I clicked on the link and when I saw the list of libraries alongside the word 'simple', I immediately thought it was a parody or satire site. I kept reading, looking for the joke and wondering why I didn't 'get' it?!?

</comment></comment><comment><USER18> This is exactly why I don't do frontend development anymore. The number of tools needed to get an app up and running is ridiculous. Add in cross browser compatibility and it's all just one big headache.

<comment><USER19> You don't need all of these tools to get an app up and running even though reading the tech blogs may make it seem like you do. Frontend dev isn't really that difficult if you focus only on what is really needed for your app at hand.

<comment><USER20> It's just tiring though. I want to make a simple website. But in order to do it "right" or "optimally" or whatever, I need to flush all the old stuff I know down the toilet (jQuery, etc.) and learn a mountain of new stuff.

<comment><USER19> Who are you trying to make it "right" or "optimally" for? The developer community or the end user?

Unless your end user is the developer community, I doubt they give a crud if you are using jQuery or all of this stuff. As long as your app is doing what they want it to do and doing it well, that is what matters most.

If you want to make a simple website, all of this is way over-kill. That is one of the downsides with these discussions. People are lead to believe that all of this is needed to "make a simple website".

I am not at all opposed to learning new stuff especially if it is going to make your job easier, but don't feel you have to abandon your current toolbox and buy into a new one every few months just to keep up. That imo is madness and will only hold you back from getting stuff done.

</comment></comment></comment></comment><comment><USER21> I would give up Immutable because of it's bad performance and often confusing api.

Also I'd give up Mocha, Chai & Sinon for tape, which is way simpler and more than enough:

[https://medium.com/javascript-scene/why-i-use-tape- instead-o...](https://medium.com/javascript-scene/why-i-use-tape-instead-of- mocha-so-should-you-6aa105d8eaf4#.53b5r8pfe)

<comment><USER22> I don't think 'bad performance' is a fair characterisation of Immutable.js. If you're calling .toJS() all over the place it will be doing a lot of redundant work. However there should be no need to do that, if you just pass the data structures around and access their fields directly.

That's not to say that you should necessarily use Immutable.js; if you don't understand the use case where structural sharing in persistent immutable data structures is useful and require it for your application then you should probably just leave this tool on the shelf.

However, if, for example, you are maintaining maps containing many items which are updated frequently, then you may benefit from the time and space complexity of structurally shared maps (Immutable.js) rather than creating a full copy on each mutation (plain JS objects).

<comment><USER21> > if you don't understand the use case where structural sharing in persistent > immutable data structures is useful

No need to insinuate that I don't understand. I've used it extensively in production and I think most code-bases are better off without Immutable.

> However, if, for example, you are maintaining maps containing many items > which are updated frequently, then you may benefit from the time and space > complexity of structurally shared maps (Immutable.js) rather than creating a > full copy on each mutation (plain JS objects).

It was exactly this situation, maintaining maps with thousands of GeoJSON features and working on these items, where I found Immutable to fall short. The parsing/building of the data-structure alone took, If I recall correctly, about 50 times longer than with normal JS-objects.

</comment></comment></comment><comment><USER23> FYI: if somebody doesn't want to wire everything, there's a pretty good solution: [https://github.com/facebookincubator/create-react- app](https://github.com/facebookincubator/create-react-app)

EDIT: just to be clear, I think that the tutorial itself is valuable and I appreciate it. I just wanted to post the link to CRA before somebody will come here complaining about "JS fatigue". I use most of the tools that tutorial describes and will use it to learn more about wiring testing-related tools. So yeah - thanks for posting the link and for the author(s) for taking the time to create such resource.

</comment><comment><USER24> I would suggest to the author to put a "This is not satire" disclaimer at the top of article to discourage users from leaving.

</comment><comment><USER25> > It teaches you how to set up ES6, Babel, Gulp, ESLint, React, Redux, > Webpack, Immutable, Mocha, Chai, Sinon, and Flow.

Stopped reading right here.

</comment><comment><USER26> Am I the only one who thought the title meant actually rebuilding some of these tools from the ground up? Building a stack and using / leveraging a stack is significantly different.

</comment><comment><USER27> Alternative stack that gets you much of the same stuff with less:

TypeScript, React, Redux, Webpack, Immutable, Ava

\- TypeScript covers much of the benefit of es6/babel/eslint/flow, Ava covers chai/mocha, and webpack can cover most of what gulp provides

<comment><USER28> There are many alternatives to chai/mocha. Ava, Jest and Tape.

I wouldn't consider Webpack an alternative to Gulp. Gulp is more generic. But if you use Webpack you can replace to task-runner part with a few scripts.

When using ES6 or TypeScript I'd also consider Immutable to be optional, because of "const" and "Object.assign()/Spread-Operator".

Also, React & Redux can be replaced with 1 thing, when you use a framework that bundles view components and state management.

<comment><USER29> Nit: not sure why you mention const. It does not provide any kind of immutability assurance.

<comment><USER28> I just use const instead of var/let all the time and it prevented me from overriding the variable later, which forced me to write my code a bit more functional then before I used it.

I know that I can still change indirect references or override valueOf() etc.

<comment><USER15> You probably know this, but for anyone else reading, the problem is that if you assign an object or array using const, the object/array members are still mutable. If you have a tree structure, you have to recursively Object.freeze the entire tree to get immutability, which AFAIK is basically what immutable.js does for you. I also use const by default, but I find that more often than not my variables are trees and lists.

</comment></comment></comment></comment></comment><comment><USER30> I'm only half kidding but how complex does modern js have to get before it is easier to code business apps in something like unity3d?

<comment><USER31> This is exactly why asm.js and WASM exist: to enable frontend code to be written in something that's not JS.

<comment><USER30> good to know. I had heard of this stuff before but just assumed it was yet another framework.

</comment></comment></comment><comment><USER32> At one extreme, one can build a modern app from scratch with no libraries. At the other, you can over-engineer it with far more libraries than you need. Somewhere in the middle lies the correct answer.

So the key is not necessarily to have a set boilerplate to start from. It is to understand what each tool offers, and why/when it is better then not having that tool. So you can look at a project, and make an informed decision of what stack to build.

</comment><comment><USER33> Yarn came out _this month_

<comment><USER34> Come Nov 1st, it will be _so last month_.

<comment><USER35> Don't forget that next month someone will pull down his trivial package doing uppercase or something and the whole stack (of cards) will come crashing down. Lately there was some great post here on hn mocking all that js framework lunacy. But i guess that joke is old now as well...

But seriously does someone use this to do proper work? And if so does this person expect this to be maintainable in the near future?

<comment><USER36> Not only do people do this to do proper work, but the _major_ companies people look up to do and want to work at or emulate do. Hence the problem.

</comment></comment></comment></comment><comment><USER37> based on the title, I thought it was going to talk about how to build a modern front end from scratch. That is, "modern" meaning that it meets the user's expectations, fits the realities of how they are browsing, and makes use of the features of current browsers (web sockets, local storage, etc); "from scratch" meaning using only your own code written in vanilla javascript. I thought this was going to be about the fact that you can do compelling work on the front-end without needing to get bogged down in a tangled web of dependencies. I struggle to see how this qualifies as "minimalist".

</comment><comment><USER38> Are you guys familiar with the term _overengineering_?

<comment><USER36> I wonder what % of HN would be unemployed if companies moved away from crazy complex SPAs. Surely how crazy they get is a reason why many here have jobs.

</comment></comment><comment><USER39> "This is a minimalistic JavaScript stack"

"ES6, Babel, Gulp, ESLint, React, Redux, Webpack, Immutable, Mocha, Chai, Sinon, and Flow"

brutal.

<comment><USER40> Minimalist python backend stack:

Django, gunicorn, Django Rest, Postgres (psycopg2), celery, redis, requests, nose, factory_boy, freezegun, raven

Building good applications for lots of people requires lots of stuff. Using vanilla JS to build web apps is as much fun as using vanilla python to build a backend.

<comment><USER39> I'd opt for flask if I were using python, but that's just me :)

the thing about the above-mentioned JS stack is that it's barely the tip of the iceberg. most of the dependencies in those python apps are built using standard libraries that simply don't exist in javascript. glazing over the whole "you're about to download a bunch of random stuff from npm that may be unmaintained or malicious" thing doesn't do a service to a junior dev.

it's also not a "modern" stack. gulp? webpack. npm? yarn. react? vue. and in another month it will be something else. what you would opt for in python, is well-established, built on libraries that are part of python's core, and maybe except for the testing stuff has been around for 100 javascript years.

I'm criticizing neither the article nor its author, simply remarking that javascript in 2016 is, in practice, completely fucking brutal.

</comment></comment></comment><comment><USER41> so easy, any 10 year old with 30 years' experience can do it.

</comment><comment><USER42> Over the years (ok months) I build aversion against JS stacks. I tried to used many of them when they popped up and I was starting new project. But it was never a fit to me. However to give them at least some credit, I read sometimes list of libs they're using for inspiration.

</comment><comment><USER43> This whole complicated stack of parts is why I don't really like React, you're never 100% sure if what you're doing is best practice. I find Ember to be much better, you only need to install Ember CLI and everything is put together for you.

<comment><USER44> Ember still has by far the best out of box experience and guides like this make that point painfully well. With Ember CLI you start at step 1, skip all the build steps (babel, webpack, etc...), and move on to learning the framework and getting some work done.

In the end you'll end up with a framework that already has a story for state management, api interaction, client side routing, and a complete testing story.

I've setup the described React stack many times. I like React as a view management library, but it requires a large amount of duct tape to get working and even once it is I still have to dedicate a lot of time to tweaking and maintaining all of these interconnected build steps. There are still tradeoffs that have made React a great choice some cases (namely its reliance on build duct tape allows it to be retrofitted into larger mature apps), but for apps I want to just work out of the box Ember/Ember CLI is an easy choice.

</comment></comment><comment><USER45> You don't need all those tools. I'm a big fan of browserify and the budo development server.

      npm init
      npm install -g budo
      npm install --save-dev babelify babel-preset-es2015
      echo "console.log('hello world')" > index.js
      budo index.js --live -- -t [ babelify --presets [ es2015 ] ]

Add tape for some tests and you're done.

</comment><comment><USER46> The "... from scratch" part made me think of actully implementing a Javascript based browser environment from first pronciples and not just of a list of random third party libraries.

</comment><comment><USER47> "From scratch" tutorial, that tells you to go learn react elsewhere then come back...

</comment><comment><USER48> An excellent description of the stack and an able "defense". Thank you very much

</comment><comment><USER49> I don't use testing frameworks, no point to it.

</comment><comment><USER50> This is ridiculous.

</comment><comment><USER51> subbed

</comment><comment><USER36> What's the author's credibility? I know it's free, but why should I give my time to read this compared to other resources?

I don't know how to say it without sounding like a dick, but the amount of long "learn web dev" resources by people who can't write well and whose only ethos is just being a programmer is ridiculous.

<comment><USER52> Well, for what it's worth, he has a Masters in Computer Science, his open source Initializr project is pretty popular apparently, this tutorial has 3700+ stars on Github, he wrote a book on HTML5, and was a front-end engineer at Yelp.

You can see his Github here [https://github.com/verekia](https://github.com/verekia) And his resume here [http://verekia.com/resume/](http://verekia.com/resume/)

Edit: I find the article to be fairly well written, and I do have a background in reporting and am a full time dev using most of these tools (although I'm not particularly bound to them).</comment></comment>


Ask HN: What HN meetups and groups do you know? - <AUTHOR> I was putting together HN meetups and online groups and would like to ask if you know/visit some that are not in the list yet. So far I found meetups in these locations ( https://github.com/antontarasenko/hacker-news-groups ):
China:
Shanghai
France:
Paris
Germany: Berlin
India: Chennai
United Kingdom: London
United States: Atlanta, Chicago, DC, Los Angeles, San Diego, San Francisco, Seattle, Stanford
Japan: Tokyo
Am I missing something you know? <comment><USER2> There's lots of tech meet ups in Dublin, Ireland on meetup.com but not sure if there are any HN specific ones

</comment><comment><USER3> Just signed up to London, if anyone fancies a beer instead of waiting for the next meetup just shout (Email in my profile)</comment>


Tclquadcode (Tcl compiler) dev status update - <AUTHOR> http://www.eurotcl.tcl3d.org/presentations/EuroTcl2017-Fellows-TclQuadcodeStatus.pptx <comment><USER2> Note that this is one of the presentations from the 2017 European Tcl/Tk User Meeting, others are available at [http://www.eurotcl.tcl3d.org/program.html](http://www.eurotcl.tcl3d.org/program.html)</comment>


How Company Culture Demotivates People - <AUTHOR> http://watercoolernewsletter.com/3-ways-your-company-culture-is-demotivating-your-people/ <comment><USER2> For the "busy work" problem -- Let's say you need to keep staff for certain job functions, which require a certain amount of institutional knowledge (so you can't easily hire off the street for them). And, you only need those skills periodically (once a month, a few times a year, etc). What do you do with those people when they aren't needed for the important periodic work, except to give them busy work that is somewhat related, to keep them skilled in that area?

Take the reports generation example in the article. Now sure, those specific reports can be automated. But everyone once in a while, they may want to issue new categories of reports. Someone has to design them, and put out the initial prototypes. And the people best qualified in designing them may be the ones manually generating them every month. If you automate it, and employees eventually cycle out through attrition, then there may be no one left that remembers how to put that style of reports together.

So, how would you normally handle that type of situation, besides avoiding the automation so that this skill remains fresh in the institution? (i.e., you may assign this task to each new crop of junior employees).

One example we had at a large telecom equipment manufacture I used to work at, was whenever someone new came into the group, the first thing you would have them do is physically inventory all the servers. At that time, they were spread throughout the main data center, several data closets in a large building, and some were off site. This ended up getting the new staff familiar with the equipment, and location, and how to navigate the building. Even though we could have automated the inventory through software.

<comment><USER3> Your telecom equipment manufacturer probably did not exclaim that the inventory taking was high priority and needed to be done in overtime as well. In fact if their goal was learning they probably would have spread the work out to only a few hours a day so that you get maximum retention of the knowledge.

It's the hurry up busy work that is so bad.

In one of my jobs, I was providing technical support to sales for major accounts. It was challenging work which involved reading RFPs in languages that I did not know very well to catch where the sales team was misunderstanding technical requirements. Sometimes there was hurry up work to meet a prospect's deadlines. And we only won about 5% of the bids that I worked on. But it still felt good to do the work. I knew that it wasn't wasted any more than a football practice session is wasted. It was a competition.

I wonder if there is some way to incorporate gamification into the enterprise to solve this problem.

</comment></comment><comment><USER4> When everything is critically important, nothing really is. If you ever find yourself in a company where they foist this on you, or offer banal platitudes like "we work hard and play hard", don't walk, _RUN_ , in the other direction.

Life's too short to waste your time on this sort of thing.

<comment><USER5> > "we work hard and play hard"

Boy, it'd sure be nice to work for a company that _didn 't_ have this attitude (games industry.)

<comment><USER6> Did I read that right? You think the games industry doesn't have that attitude?

<comment><USER4> The way I interpreted it was:

        Boy, it'd sure be nice to work for a company that
        did not have the attitude "we work hard and play hard"

i.e. they think the games industry exhibits this trend.

</comment></comment></comment></comment><comment><USER7> A company that's doing #1 is very easy to recognize. Everyone's always rushing but never getting anything done because they haven't taken the time to clean up the mistakes the last rushed project caused. It's not the worst problem a startup can have, but if it's sustained it will kill the startup in the long run.

Number 2 is just a sign of management either not caring about or being too arrogant to see the truth: their company is going under. Chances are, such a company won't be around for much longer.

Number 3 is a sign that a company doesn't care about its peoples' happiness. It just wants them to be good little drones while management gets to do all the interesting work.

<comment><USER8> This article seems to be about Fortune 500s since the type of waste it demonstrates would not even allow a startup to get off the ground.

<comment><USER9> Success hides inefficiencies. Even at startups.

</comment></comment></comment><comment><USER10> #1 bugs me the most. False urgency is the name of the game everywhere I've ever worked. From my experience it's a problem of how the company is structured. When everyone thinks what they are working on or assigning is top priority it's because (a) they really don't have a sense of what is actually important (b) managment is fragmented such that each person's individual most important task seems like a global most important task.

In a law firm, which is basicly 1000 separate practices trying to exist simultaneously, this happens all the time, usually because of option b. When a "team" is really a group of people who happen to be in the same place instead of a collaborative unit, what is imporant is up to each person. It's a bad way a run a business and totally messes with your employees.

</comment><comment><USER11> The right answer is - leave. Sure it isn't always simple, but burning yourself to death for nothing is a waste of life.

<comment><USER12> Woah now... How about trying to communicate with senior management to change these things first?

<comment><USER13> Fair enough question. Here are the obstacles to that:

* In larger companies, senior management may be completely inaccessible. Not "officially off-limits", mind you, but busy enough that you've got to deal with _their_ assistants merely to get onto their calendar; and doing so may attract attention from their underlings (still at least one level above _you_ ), who may try to influence things before your meeting if they're aware of your agenda.

* Management ego: if the senior management in question has been in their position for quite a while, they may bristle when informed that their master plan has some holes in it.

* Management ego, part II: if you're relatively new to the company, you may have considerable difficulty getting buy-in from the old guard.

* Drowning new management: if senior management has recently undergone a turnover, the new kids in charge may be drinking from the firehose and unable to grasp the enormity of what you're saying. Or, worse, they rely on the input of a longtime company veteran whose "contributions" over the years may have directly caused the problem.

* Out of sight, out of mind: problems for _you_ and your peers may be not be seen as a problem for senior management, especially if there is a great disparity in working environments. Work in a cube on a noisy floor while senior management has large, quiet offices on a different floor (or a different building)? They might not be sympathetic to complaints about your inability to concentrate.

* It's all about the Benjamins: ultimately, management is guided by two things. The first is money; if it's rolling in at the same or greater pace than last year, _there is no problem_. The second is risk; if you can't specify a specific risk to future business...again, there is no problem. Worse, if somebody can provide a toothless risk mitigation plan that _sounds_ good but does nothing to actually solve _your_ problem, then senior management may still consider the whole thing moot.

This is why many folks -- especially the ones who have been around long enough to have burnt by one of the above a few times -- simply advise suffering employees to look elsewhere.

It's not about apathy, it's about preservation of sanity.

<comment><USER14> Adding to this, any structure involving a large number people is generally extremely change resistant. If you're looking for changes that go against the grain of the culture that you're working in then you might as well forget it. You can push back to a certain degree but cultural pressure will reverse any changes you make without a significant, continued investment of energy on your part. For this reason it's better to find a new culture (new job) which aligns better with what you want to do.

</comment></comment></comment></comment><comment><USER15> To add on to #1, it is especially demotivating when the higher-ups drag their heels on even getting the project to you (hey, they're busy too) and then it NEEDS TO BE DONE RIGHT NOW! Or even better, when someone higher up screws up and you have to fix it, nights and weekends be damned.

It took me a long time to realize that most of these "urgent deadlines" are basically arbitrary. It's almost as if they think their employees can't function without the sound of a ticking clock over their heads. It's extremely stressful and counterproductive. I enjoy a push every once in a while, but it's demoralizing when it's not for a damn good reason.

</comment><comment><USER16> People typically end up in management via promotion. But they are not promoted because they would be good managers - they are promoted because they were good individual contributors.

The folks who might make good managers (because they have better people skills, not necessarily better technical skills), often struggle as mediocre individual contributors, and never get promoted.

<comment><USER17> On the other hand companies that think this way trip themselves up by letting people fail upward: "they can't do the job as an individual we'll let them manage everyone else into the ground."

<comment><USER18> It's called the Peter Principle

[http://en.wikipedia.org/wiki/Peter_Principle](http://en.wikipedia.org/wiki/Peter_Principle)

<comment><USER17> Well no in this scenario the person has been promoted two steps past his level of incompetence.

</comment></comment></comment></comment><comment><USER19> Before I worked for a corporate company I used to think Dilbert was funny. Now I use Dilbert cartoons as a learning tool. Helps me prepare for situations at work.

</comment><comment><USER20> This sort of thing has one and only one good aspect, to train you to not put up with it.

You can't really blame it on "company culture", because then you could realistically expect that the next job you have won't be like that. You could expect to stop dealing with it by freelancing or consulting it. But you can't.

It's just the way people operate. To externalize broken process to those willing to put up with it. Shit will keep coming your way until you put a cork in it.

Refuse to accept broken process. Don't work late without a good reason. Spend some time looking around before you start working on anything tedious for anything that will make things easier. A few insightful questions can turn a wild hare's chase into a cakewalk.

And if you find something that can be automated, do it! If they tell you no, do it anyway, and don't tell them. When they hand you something they expect to take two days, and you "take two days", no one's the wiser.

</comment><comment><USER3> Imagine this. The company recognizes that it has too many staff, therefore it offers early retirement deals and voluntary redundancy deals, which pay significant bonuses if you have been with the company for several years. But you need to get approval up the management chain, i.e. your manager, their manager, their manager's manager, etc. And it is refused.

Six months later, the deal is offered again, you apply and it is refused. And again six months later, and again, until 3 years have passed. All these years you have hardly anything to do, i.e. your job responsibilities can be completed in 4 hours per week. You spend a lot of time browsing the web, reading research papers, gaining the equivalent of a university education. You spend some time on the corporate wiki documenting things, explaining stuff, collating a glossary of corporate jargon etc. From time to time you find someone else with a problem and help them out with it, in secret because that is not your job.

And finally, after carefully crafting emails to everyone in your management chain, pointing out how you do nothing useful for the business and haven't for the past several years, and how there is no risk to the business because you have trained person X to do your 4 hours per week of real work, and built an automated tool as well, they accept your application. You get a check for 4 months wages, and never have to return to that place.

Do you think such a person would ever recommend anyone to work there? The worst part of this is that when this happened to me there was another department that desperately needed people with my skillset and experience, but I could not be considered for such jobs without approval of my management chain. Somehow they got the idea in their head that I was an employee too valuable to lose, even though I did so little work that I "worked from home" 4 days a week so that nobody would notice if I took a nap or something.

I have some sympathy with Yahoo and HP for wanting people to work in the office, but if they happen to have this kind of problem, I think that they are solving it in the wrong way. Instead, try zero-based budgeting for headcount. If you cannot justify every position in dollars and cents, that person is out of your organization and goes into a pool where anyone in need of their skills can bid for the headcount.

</comment><comment><USER21> Agree, it's a combination of both, as well as some other challenges. Yes, it's a culture that seems to support these behaviors broadly across the organization, a leadership team that isn't demonstrating the right behaviors and managers that are emulating their leader's behavior. There are definitely opportunities to change processes, behaviors, beliefs/thinking to tweak the culture, as well as give their managers training on how to get the best from their teams and support the company strategy.

</comment><comment><USER22> #3 must be related to a local culture or industry, because I'd like to think anybody involved in that kind of logic would be laughed out of the room in a modern mainstream software company.

<comment><USER23> This can even happen in a tech company. More often than not, this is an issue with managers who are non-techie. They're not sure what automation will do, and since they don't know what's going on when processes are automated, they're reluctant to try. #3 can plague any company. It happened at Apple as well, in supply chain, far away from product engineering.

You know how every product on the Apple Online Store has details on how long it'll take to be delivered to you? E.g. 2 Business Days, 1-2 Weeks, Within 24 Hours. These quotes are manually changed. That's right. Every product on every Apple Online Store (e.g. Singapore, Hong Kong, China, US etc) has their own quote, and these need to be changed manually by someone.

I remember I hated the manual work and made several automation scripts that'll just do everything for me. The managers wanted to have nothing to do with it. "What if the script screws up?". That was their biggest concern. We all know that programs are more consistent than human being so that's nothing to be worried over.

I was only able to convince the managers that automation is an improvement after having everyone in the department using the script without their permission.

I suspect their reluctance was also due to some degree of "if it's not broken, don't fix it".

<comment><USER11> Likely the humans will fail more often than the automation. I worked in a place where they didn't trust automation to copy 1000 files from one server to another so they had someone manually copy the files every morning. I bet he missed a few every day.

</comment></comment></comment><comment><USER24> This sounds more like bad management then bad corporate culture. I mean, perhaps some corporate culture, but really sounds like the managers need manager training.

<comment><USER7> The thing is that managers help build a company's culture. Really, a few bad managers in the right place is all you need to kill a company's culture.

<comment><USER24> Not necessarily.

Corporate culture is defined in large parts by the people who started the company. It's the first few, and to a smaller extent, dozen, and smaller extend, 50, etc people that will define your corporate culture. At a large company, such as the one (I'm guessing here) discussed in the article, corporate culture can be VERY resilient to a few bad apples.

<comment><USER25> In a very large company, the corporate culture becomes massively varied by department. Critical parts of a company can easily develop a culture that comes from organisations and societies well outside the founders culture. Ultimately a companies culture is affected by who it can hire as much as anything else.

</comment></comment></comment></comment><comment><USER26> It comes down to is the money worth the time. If its no then leave, if its yes then stay.

</comment><comment><USER27> it is like this guy has never looked at [http://www.despair.com/lithographs.html](http://www.despair.com/lithographs.html), even Barney Stinson has posters from there :)

</comment><comment><USER28> Yup, hostile coworkers are the worst. Incompetent people establishing process to bring everyone down to their level.

I've seen every trick in the book. This industry sucks.

<comment><USER15> What industry doesn't have incompetent management?</comment></comment>


How it feels to be acquired - <AUTHOR> https://www.techinasia.com/conyac-anydoor-naoki-yamada-post-acquisition-feelings <comment><USER2> Carry on my wayward son. Inspired to keep going.</comment>


Show HN: Buzzways – Twitter Bot that sends you the best Twitter Threads - <AUTHOR> https://buzzways.at/collection/980/ <comment><AUTHOR> You can try it on Twitter, of course</comment>


Why Do Donuts (Almost) Disappear at Faculty Meetings? - <AUTHOR> https://fee.org/articles/why-do-donuts-disappear-at-faculty-meetings/ <comment><USER2> I wonder why this isn't more about caffeinated coffee where it's an actual problem than with the shitty pastries? Running out of donuts isn't a tragedy - it may be a good thing. Running out of coffee is inevitable and tragic.

Like donuts it's plainly visible that there's almost no coffee left, there's a little pipette thing showing how much is left. Why is this situation different than the donut situation?</comment>