Vanguard Warns of Worsening Odds for the Economy and Markets - <AUTHOR> https://www.nytimes.com/2018/08/10/business/vanguard-recession-economy.html <comment><USER2> Here's a good article that goes in detail on this, written in January _before_ the top.

[http://www.philosophicaleconomics.com/2018/01/future-u-s- equ...](http://www.philosophicaleconomics.com/2018/01/future-u-s-equity- returns-a-best-case-upper-limit/)

</comment><comment><USER3> > The chances of a recession by the end of 2020 are mounting. And the > prospects for the American stock market in the next decade have worsened > appreciably.

The day after Trump's election win, NY Times published an article [0] by nobel-prize winning economist Paul Krugman saying:

"It really does now look like President Donald J. Trump, and markets are plunging. When might we expect them to recover?

Frankly, I find it hard to care much, even though this is my specialty. The disaster for America and the world has so many aspects that the economic ramifications are way down my list of things to fear.

Still, I guess people want an answer: If the question is when markets will recover, a first-pass answer is never."

That prediction didn't work out so well.

And maybe these new prognostications are built on more solid foundations, but still they are prognostications, and if the past decade has taught us anything, it seems most pundits and economists have no clue what they are talking about.

0: [https://www.nytimes.com/interactive/projects/cp/opinion/elec...](https://www.nytimes.com/interactive/projects/cp/opinion/election- night-2016/paul-krugman-the-economic-fallout)

<comment><USER4> The prediction didn't work out so well—so far. Hindsight compresses time. Things said in 2004 and 2005 definitely bubbled up to the top after Lehman's collapsed in '08 as "correct predictions of the coming financial crisis."

If things implode tomorrow or six months or even a year from now everyone will look back at that Krugman quote and say, "The man's a damn genius, he totally called it." It's easy to forget about the time period when a financial prediction was wrong before it was right, particularly when the magnitude of disruption is significant. Sometimes the time even emboldens the former position because "they knew all along."

The one thing we do know is that markets are cyclical. There is always another crisis lurking around the corner. If you went to a cash position the day after Trump was elected you seem like a fool today. You can wake up a financial genius tomorrow. Maybe you didn't sell at the top, but people who got out of real estate in 2005 probably don't look back with too much regret saying, "should have hung in there another two years."

<comment><USER3> > Things said in 2004 and 2005 definitely bubbled up to the top after Lehman's > collapsed in '08 as "correct predictions of the coming financial crisis."

Also known as a broken clock is right at least twice a day. Vanguard is doing the same thing here by saying sometime in the next 2 years the economy will start doing worse. They'll be right eventually.

> If you went to a cash position the day after Trump was elected you seem like > a fool today. You can wake up a financial genius tomorrow.

Many people were expecting another market downturn at around the time Trump was elected - not because of Trump but because it was 8 years since the last one. The market rallied instead and now Trump has a buffer.

The market today could fall by as much as it did in 2008, and it would still be at about the same level as it was when Trump was elected.

</comment></comment></comment><comment><USER5> The VIX has been steady while CBOE SKEW is at all time high of 159.03. While this by itself means nothing since SKEW has been trending upwards, it is interesting that the yield curve is also flattening.

</comment><comment><USER6> This is a recurring trend. Republican policies seem to harm the economy while Liberal policies seem to benefit it.

A Princeton paper was written on the subject.

[https://www.princeton.edu/~mwatson/papers/DemRep_BlinderWats...](https://www.princeton.edu/~mwatson/papers/DemRep_BlinderWatson_July2015.pdf)

For the past almost 100 years the economy has done better on every major indicator with a Liberal in office.

I suspect it's because the trickle down effect doesn't work.

<comment><USER7> > I suspect it's because the trickle down effect doesn't work.

Well, maybe.

Or maybe Republican policies are beneficial in the long term, which means they don't start working until after they've left office and don't stop working until the Democrat who replaces them has dismantled them.

Or maybe voters tend to vote Republican when they are uncertain about the future, i.e. in periods of instability.

Or maybe the President doesn't make a huge difference either way in most cases, and the business cycle got into a rhythm where corrections started happening in a quasi-regular rhythm that seems to coincide with elections with Republican incumbents. (The only point where it seemed to get _out_ of this rhythm, after WWII, was the double-dip recession of the early 80's, which coincided with a Democrat -> Republican party switch that didn't switch back until there was another recession).

Or maybe there's been only 15 US Presidents to serve at least a full term in the past 100 years and it's not a meaningful sample size. I'm going to bet that's the one.

<comment><USER8> Pretty sure being able to afford food, a home, and healthcare is much more beneficial to society as a whole than having a poor underclass of laborers. But hey, maybe it's the stuff you said too.

<comment><USER7> I get that we're deep in a non-sequitur subthread here, but I don't see how what you said is a meaningful explanation of the theory of recessions coinciding with Republican presidential administrations.

</comment></comment></comment></comment><comment><USER9> A good reminder to invest in world stock indexes not just US ones.

Personally instead of investing purely on weighed average, I tilt quite a bit towards international indexes. I'm American.

<comment><USER10> It is worth considering that international indexes are often more expensive than domestic, and also have had more volatility historically. They're also often pinned to the USD.

<comment><USER11> True, but there are markets that are completely outside the reach of international capital markets - and are highly non-correlated to the US stock indexes.

\- Congo, Somalia are the extreme case but you can make really good gains in real estate, telecommunication in these places. (I know that people might balk at the idea of investing in Somalia but I consider it a no brainer to invest in renewable energy in a place like Somalia - I also get to enjoy the risk premium for it)

<comment><USER12> How do I get invest in renewable energy in Somalia?

<comment><USER13> It is worth noting that Egypt had the largest solar power plant a century ago, but that was broken down for steel when WWI broke out[1]. Nothing is isolated from other markets. 1. [https://www.thenational.ae/business/technology/the- promise-o...](https://www.thenational.ae/business/technology/the-promise-of- solar-power-made-a-century-ago-1.389398)

</comment></comment></comment></comment></comment><comment><USER14> But won't a report like this from vanguard cause investors to panic and pull their money, causing a recession?

<comment><USER10> And put it where?

<comment><USER15> Traditionally bonds

<comment><USER16> And gold (or gold funds, e.g. gold ETF) - it's where investors diversify towards in volatile markets (bonds and gold)

</comment></comment></comment></comment><comment><USER17> Enjoy not accruing interest, people with market investments! Ha ha... sigh.

</comment><comment><USER18> When I see a $5T asset management firm making predictions of market downturn, I wonder if it is only trying to predict the future or influence it. That is, did they place bets then went on to warn everyone of impending disaster so they can then profit from it.

<comment><USER19> If anything, this is an angle at manipulating the Fed into keeping rates low

> If the facts change — with, say, the Federal Reserve delaying anticipated > interest-rate hikes in response to a weaker economy — the recession forecast > will change, too, Mr. Davis said.

<comment><USER9> And this should highlight the absurdity of interest rates even being "set" in the first place.

<comment><USER20> That's just the way the Federal Reserve works. As long as they are around, they will loan money at interest rates that they set. Potentially they could get out of the money business and we could go back to using precious metals for money, but I don't know how you get there from here.

</comment></comment></comment></comment><comment><USER21> >> Vanguard tracks data to predict the likelihood of a recession at certain points in the future.

Having read nearly the entire literary output of one Nassim Taleb, I'd like to see the results of past predictions on this one. I'm pretty sure it will show that this "tracking" carries no actual predictive power.

<comment><USER22> Aren't we near the end of a 7-10 year cycle regardless?

<comment><USER23> Based on historical data, how accurate would it be to say that a recession happens every 7-10 years? What percent of recessions(for some definition of recession) follow this pattern? Are there different patterns for different kinds of economic/political environments? Does anyone know of a good analysis that a layman could understand?

<comment><USER24> > Based on historical data, how accurate would it be to say that a recession > happens every 7-10 years?

Starting with the Great Recession and working backwards to and including the Great Depression, the gap from the previous US recession for each recession has been:

      6y, 1 m
      10y
      7y, 8m
      1y
      4y, 10m
      3y
      8y, 10m
      2y
      3y, 3m
      3y, 9m
      3y, 1m
      6y, 8m
      4y, 2m
      1y, 9m

Only 3 of 14 of those gaps were in the 7-10 year range, and all of the rest are shorter.</comment></comment></comment></comment>


Ask HN: Addictive web based platform puzzle game - <AUTHOR> In about 2011 or 2012 there was a web based indie platform puzzle game that came out and won a bunch of awards.
It was a really simple look and feel with a stick figure running around on platforms and then I think you could rotate the entire screen to solve the puzzle.
Sorry for te vague description :(
Any clues? <comment><USER2> Braid? [https://en.wikipedia.org/wiki/Braid_(video_game)](https://en.wikipedia.org/wiki/Braid_\(video_game\))

<comment><AUTHOR> Thanks but it was just web/browser based. No graphics just black and white with a single stick figure.

</comment></comment><comment><AUTHOR> Got it!!

[http://continuitygame.com/playcontinuity.html](http://continuitygame.com/playcontinuity.html)</comment>


Microsoft Customers Always Win - <AUTHOR> http://www.marco.org/2014/01/31/microsoft-customers-defeat-microsoft <comment><USER3> I disagree; I think the biggest problem with Windows 8 has always been its poor usability: specifically, its discoverability.

It was really bad back in the times of the developer preview. You booted into the lockscreen, and all you saw was a clock and a picture. No "continue" button, no clue of any sort for how you were supposed to get past it - <USER2> then you could only get past it by clicking it and dragging it up, which a lot of people could not figure out.

This sort of design, the idea of "remove affordances to make things look less cluttered, even though it makes it harder to learn to use" is all over Windows 8.

Say you double-click an image file. By default, this opens the image in the Metro app. Which means now you have the image full-screen, with nothing else on the screen. What do you do? There are no buttons on-screen to hint at all for how to go back. Esc doesn't leave the app.

The biggest reason a tablet-optimized OS is so unusable on desktop is that tablets have a big obvious "Home" button. On mouse+keyboard, the Windows Logo Key is the analogous button, but that's not clear to most users. If you ask a user what button they'd expect to use to leave an app, they'd say Esc (which doesn't leave Metro apps).

The way Windows 8 is now, it completely eliminates one of the biggest advantages of a GUIs: the ability to use a computer without reading a manual or being taught in some way.

[http://xkcd.com/627/](http://xkcd.com/627/)

GUIs were an amazing invention because they made possible the workflow of: "If you want to do X, look for a button with 'X' written on it, or look through menus for 'X', or look for buttons with labels related to 'X'."

OS X works like this, Windows earlier than 7 works like this, even most Linux distros are set up to work like this by default. But Windows 8, you just get a bunch of nothing. Critical functionality is hidden away and can only be used by obscure mouse gestures and keyboard shortcuts. I've seen someone described it as "user-hostile" \- he opened the Charms bar by accident from moving the mouse, finally being able to shut down, but could not figure out how to get it back.

Usability has slowly gotten better between the first Windows 8 developer preview and Windows 8.1, but it's still incomplete, and a Windows 8.1 Update 1 is yet another a step in the right direction.

</comment><comment><USER4> The worldwide combined enterprise IT budget is somewhere around $700 billion.

A huge number of those businesses don't want to upgrade from Windows XP to Windows 7, let alone Windows 8. (A lot of them still haven't.) The cost for an enterprise-class business to upgrade all of their machines from XP to 7 is _enormous_ ([http://www.gartner.com/newsroom/id/1427413](http://www.gartner.com/newsroom/id/1427413)).

And this has nothing, _nothing_ to do with the quality of Windows 8.

So why does everybody keep blaming this on Metro?

There is a $700 billion market for whom the decision-makers largely see I.T. as nothing more than an operating expense.

Microsoft has multiple markets. Why they keep trying to mash their different markets together and serve them the same products, pissing off everyone in the process, is beyond me.

For the rest of us, that means there's a $700 billion (per year! That's bigger than Facebook) opportunity to provide enterprises with I.T. infrastructure at a lower long-term TCO than Microsoft.

</comment><comment><USER5> Ugh. Just because a UI is innovative does not make it necessarily a good thing. That should be obvious!

When I first installed Windows 8, the first thing I had to do was disable the Metro versions of each and every staple app so they launched in desktop mode when run. Before upgrading to 8.1, the first thing I had to do _every time I started up my machine_ was switch back to the desktop.

I did this not because I'm low end and abhor all change, I did this because my machine doesn't have touch, just a mouse and keyboard, and because it's completely ludicrous to take up my entire (rather large) monitor to show things like a single progress bar when I could have that to the side to monitor while doing something else in a OS that supported windowed apps.

Microsoft hasn't done a good enough job fusing their UI metaphors yet. It was incredibly ambitious to even attempt to do so, as interactions are so diverse. Regardless of ambition, though, _in practice_ it's really a drag to force a half-baked attempt on everyone when desktop users are just going to have to go around adjusting things to be fully usable on the large class of machines that don't have touch support.

I'll note also that, in spite of UI innovation in iOS and OS X, I don't have to depend on Siri to launch an app or only use Launchpad on the desktop. Apple doesn't do this because they know these interfaces aren't so good that they could forever replace what users have today.

If LaunchPad became the only way to launch apps in OS X and by default all the built-in apps ran fullscreen iPad style, you can bet your life there would be just as much grumbling and moaning from those famed Apple customers as you're seeing today in Windows-land.

</comment><comment><USER6> Seems a bit hyperbolic to claim that Windows 8 is "one of the biggest disasters in Microsoft's history" even though Windows 8 usage seems to have already surpassed all versions of OS X combined: [http://gs.statcounter.com/#desktop-os-ww- monthly-201307-2013...](http://gs.statcounter.com/#desktop-os-ww- monthly-201307-201312-bar)

Similarly, trying to make a point out of HP selling Windows 7 machines is disingenuous since they still sell overwhelmingly more machines with Windows 8.

</comment><comment><USER7> > Microsoft's customers don't like change.

That is a ridiculous statement. Users don't like change when that change is for change's sake or when the change is for the worse.

Users do LOVE change when it makes the UX/UI better and they are more productive.

Shoving metro down people's gullets when metro is atrocious and is obvious to anyone who has even a rudimentary familiarity with UX is what causes the - well justified - backlash.

</comment><comment><USER8> I don't think it's fair to characterise Microsoft as innovators held back by their conservative customers. After all they did succeed in forcing the ribbon interface on everyone. Windows 8 failed not because it was too different but because it was too rubbish.

</comment><comment><USER9> There goes the Metro on everything train of thought. When Balmer said it I really thought they were going to figure it out. Apple kept OS X and iOS GUIs separate.

I really tried to like Metro on the desktop but 256x256 tiles just didn't make any sense. I don't think the iOS GUI is much better but I also don't spend hours looking at it. The desktop GUI is just a transfer point to what I need to do. I close Vis Studio to open Word, I close Word to open Excel, and etc.

</comment><comment><USER10> In my opinion Metro was bad. I couldn't see anything useful in this UI. It was an unbelivable waste of time every time I had to use it.

I understand that for MS it would have been great to have one OS for multiple devices but it did not work out for the PC users. Thats why it was not really an innvoation but a huge design test that has shown us: this is not the way they should go.

</comment><comment><USER11> Why do journalists at The Verge keep using the terms "the software giant"? Isn't that company "the devices and services giant" now (by their own admission)?

</comment><comment><USER12> Windows 8 doesn't strike me as a very Apple-like move. Mac OS changes have been utterly iterative and the Mac OS / iOS separation is utterly purposeful.

</comment><comment><USER13> It's really too bad. Microsoft is the (main) company that got everyone out from under centralized control, and now they're being shoved aside, hey that centralized control is back. People also seem to have completely forgotten that what microsoft is doing with lock-in, when compared with mainframes they're like San Francisco's liberals versus the taliban.

Not that I want to put credit for destroying mainframes entirely with microsoft, but they're certainly the biggest single contributor, together with IBM. Imho IBM only did it because microsoft tricked them into doing so. It was massively against IBM's interests.

How the pendulum swings.

And the old complaints are back : "this application is not written for me", "they removed my app from the mainframe !", "I caused a problem for the admin and now I'm locked out of my entire life", "suddenly I'm inundated with ads in applications I paid for" (granted usually university ads or at least from the company you work for in the mainframe days, not so much now), "this app suddenly switched to pay-as-you-go and I have to spend $x00000 to do what I used to do for $100", ...

We don't seem to be learning. I just wonder. Will it be microsoft that breaks the mainframe (again), or will it be some other company ?</comment>


Tesla deployed over 300 Powerwalls in Hawaiian schools to cool down classrooms - <AUTHOR> https://electrek.co/2018/02/23/tesla-powerwall-hawaii-school/ <comment><USER2> This perhaps says a lot more about the state of the Hawaii power grid than the benefits of the Powerwall.

Due to economies of scale, unless your grid infrastructure is really poor, grid attached energy storage is going to be cheaper than distributed energy storage. Tesla just wants to sell batteries, and consumers are easier to target than utilities.

<comment><USER3> See my other comment with links down thread, but HELCO (and other Hawaiian Electric Utilities) no longer support net metering, because it is not profitable (enough) for them. So they sell retail at $0.30-0.50/kWh and buy at $0.10/kWh making a lot of people upset and crashing the solar market in the islands. That makes battery storage cost effective where standard installs are much less so.

<comment><USER4> That's really expensive electricity! I assume there are obstacles to developing more power plants in Hawaii?

<comment><USER5> Mostly because each island is its own small grid. Everything is fossil fuel, no hydro, little wind, no nuclear. Cost of transporting fuel. Environmental concerns about air pollution (eg: no China style cheap coal power plants).

<comment><USER6> It's always been strange to me that an island with abundant solar and geothermal resources relies on imported oil for most of their power generation.

[https://www.eia.gov/state/?sid=HI](https://www.eia.gov/state/?sid=HI)

"In 2015, Hawaii imported 91% of the energy it consumed, mostly as petroleum."

They seem to be working hard on it at least, although I'm surprised that only 20% of the _renewable_ energy production is geothermal. I guess it's just more expensive than solar nowadays.

<comment><USER7> Iceland is exploiting the hell out of it's geothermal energy, attracting energy intensive industries like aluminium smelters and bitcoin mining.

Doesn't the Big Island have similar levels of available geothermal resources?

Is the difference that Iceland is an independent nation while Hawaii's decisions are made in Washington DC?

<comment><USER8> A long time ago they started using geothermal energy but some poisonous gas was released. So they shut it down permanently.

<comment><USER9> Source?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Why does this project need battery storage? The power demand for air- conditioning during the day follows the supply of solar. Is it to cater for hot but cloudy days?

<comment><USER5> You can't run air conditioners directly off solar. PV panels natively produce DC. There are units with microinverters built into the back of the panel that produce AC. Even in a sunny climate clouds will pass in front of the sun. Unless you have a _massively_ oversized PV array, you can't just run the DC array's output into a bank of sinewave inverters and then straight into the input of multiple 2 to 5kW load air conditioners.

I'm assuming here that a typical AC unit will look something like a 12000, 18000 or 24000 BTU/H LG, Daikin or Samsung split type, ductless, cooling-only unit.

The cumulative kWh/day and kWh/month produced by your PV is what you should care about. As compared to what your load will consume in the same time period.

For off grid, which now economically makes sense in much of Hawaii because fossil-fuel powered grid power can costs $0.32 to $0.50/kWh.

You need a battery buffer so that your load (the air conditioners) doesn't brown out and fail when the a few clouds pass in front of your PV panels. At a given time when it is a little bit cloudy out you might have 12kW of load but even a very big PV array might only be producing 4kW.

The load is constantly running off the battery and inverter system, while the PV panels and charge controller are constantly doing their best to keep the battery full.

<comment><USER11> Coming from Europe, I've never seen an AC unit expressed in BTU/hour. To me it seems much more logical to express it in kW.

The only "strange" (but correct) notation was on a french train, the AC was expressed in kcal/hour

<comment><USER12> Then you've probably never had to plan cooling for a server room. BTU's are often the only metric you get from the servers datasheet.

<comment><USER5> I find that these are occasionally very inaccurate. If possible put a prototypical server on a watt meter and artificially load cpu, disk and ram to determine its real world max wattage and thermal values. Then compare to what its wattage is while idle.

<comment><USER13> At the scale of a server room, you're estimating over an aggregate and probably want some overhead/room to expand.

<comment><USER5> At the scale of a small to medium colocation facility you define W per cabinet... Such as a typical 44U height cabinet in a row designed for front to back airflow. 5kW per cabinet would be a normal low range, up to 10-12kW. Then figure out your floor spacing and sq ft usage to determine how many cabinets.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Nowhere did they say what Powerwall actually is, and I'd never heard of them. Powerwall is a battery made by Tesla to store excess solar energy.

[https://www.tesla.com/powerwall](https://www.tesla.com/powerwall)

</comment><comment><USER15> This "article" reads like an ad.

<comment><USER16> As a Tesla fan, I dislike the writer for this site. He often makes any Tesla failure sound like a success, and everything reads as heavily biased

<comment><USER17> Worth noting that the author is /u/FredTesla on reddit, moderator of /r/TeslaMotors as well as the founder of Electrek. His career is essentially built on being a Tesla fanboy.

<comment><USER18> There are dozens of battery companies creating storage units, but Tesla are always superb with their marketing efforts to brand...in this case, batteries as 'powerwalls'.

This is the 'Hoover' logic of making a generic device synonymous with a brand name.

</comment></comment></comment></comment><comment><USER19> Whatever else you might say about Musk and company and their various ventures, they are actually solving real problems, with real innovation.

NOT a bunch of talk about "too soon" or "focusing on core competencies".

</comment><comment><USER20> I wonder if the power budget in Hawaii would permit the other kind of air conditioning, where you soak down a large water thermal mass, and then use it to do the chiller side. I know nothing is free, but its a model which quite a lot of places are moving to, in search of a different pattern of energy usage. Hawaii might be one of the hard cases: I believe it has really high, and until recently diesel backed power and this kind of off-peak power may simply not exist.

It's a complementary technology to this use of powerwall. it's not an either- or thing.

<comment><USER21> Isn't that form of air conditioning a non-starter in humid climates like Hawaii?

<comment><USER22> I interpreted the parent post as talking about chilled water thermal energy storage as opposed to evaporative cooling.

<comment><USER20> Yes. its not evaporative cooling: you have a watermass you chill down with offpeak power, and then use as the coolth source to chill dry air in the aircon, rather than using a normal fridge chiller circuit. Its power-shifting. The total powercost is probably comparable to on-demand chilling but you shift the power budget to off-peak, or other sources.

</comment></comment></comment></comment><comment><USER23> Does anyone know why Hawaii doesn't utilize more geothermal energy? There are a few hits for geothermal projects, but I would have expected these to be much more popular.

<comment><USER24> It upsets pele. I'm totally serious. Google for why do native hawaiians oppose geothermal.

</comment></comment><comment><USER25> This sounds odd. When I spent some time in Hawaii, houses had a gap between the top of the walls and the roof, to let the breeze blow through the house. While being impossible to air condition such a structure, it was not needed. The ambient temperature with the breeze was nearly always comfortable.

</comment><comment><USER26> Does it seem unusual that it's costing $100mm for 2300 classrooms, which is about $43k each?

<comment><USER27> How many powerwalls per classroom? Solar? Electrical upgrades?

[https://www.tesla.com/powerwall](https://www.tesla.com/powerwall)

"Your final design and pricing will be based on your electrical panel, home energy usage, number of Powerwalls, and where you'd like your Powerwall installed. Typical installation cost ranges from $800 to $2,000. This does not include solar installation, electrical upgrades (if necessary), taxes, permit fees, or any retailer / connection charges that may apply."

I assume shipping would add a HEAFTY cost in Hawaii as well.</comment></comment>


Django request response lifecycle - <AUTHOR> http://agiliq.com/blog/wp-content/uploads/2009/06/django_request_response_lifecycle.png

<comment><USER2> Is there a blog post with this?

<comment><AUTHOR> I found this video helpful - [http://www.youtube.com/watch?v=7VabEa7CxIo&feature=relmf...](http://www.youtube.com/watch?v=7VabEa7CxIo&feature=relmfu)</comment></comment>


Launch your personal genomics cloud-app in 15 min (aws/genetics/python/ML) - <AUTHOR> https://medium.com/@thousandroses420/tutorial-launch-your-personal-genomics-cloud-app-in-15-min-aws-genetics-python-ml-b0d1540e6e70 <comment><USER2> Looks like good work, but this sort of post, showing how easy it is to set up your thing, never does very well on HN. I think that's because people haven't heard of your thing and don't know why it's interesting.

You'd have better luck writing an article telling the story of your project, how you came to work on it, what makes it different, what makes it hard, and giving lots of unexpected and technical details about how you've made it. HN readers find those stories much more interesting.

If you want to do that, you're welcome to email a draft to us at email@example.com. We might be able to give you some editing advice (but be warned that the inbox gets over-full sometimes!)</comment>


Do they really think the earth is flat? - <AUTHOR> http://news.bbc.co.uk/1/hi/magazine/7540427.stm <comment><USER3> While it's true that people knew in both ancient times and in 1492 that the Earth was spherical, there were writers in the early Christian era who argued that it was flat.

<comment><USER4> This was covered in the article, wasn't it?

<comment><USER3> "the pseudo-scientific conviction that we actually live on a disc didn't emerge until Victorian times. "

</comment></comment></comment><comment><USER5> From the article: "Mr. Davis, a 25-year-old computer scientist..." - <USER2> not a very good one.</comment>


What's your opinion on websites that "force" users to use modern browsers? - <AUTHOR>

I'm about to launch my first SaaS application, it is geared specifically towards webshops, or owners of big sites, in short I don't expect general audience to use my services (basicly webdevelopers) would use it.
I strongly believe that web should not be slowed by Internet Explorer, and I want to use features like canvas, css shadows and other properties - without resorting to ugly hacks or image slicing to get a pleasant effect. I know IE9 will support this functionality or other users can use chrome frame if they insist to use IE.
Would you find it acceptable to demand from my future clients to use modern web browser?
I strongly believe in open technologies and what HTML5 and CSS3 has to offer and would go in that direction. <comment><USER2> Why not use things that'll degrade gracefully in less-modern browsers? shadows are awesome, but whatever if they don't show up in other browsers.

For example: <http://dowebsitesneedtolookexactlythesameineverybrowser.com/>

Now, when it comes to major functionality — if your application simply won't work in IE — you need to decide whether the tradeoff is worth it. You won't be tarred and feathered if you have a giant sign saying people need to use a different browser to use your application. You're simply going to lose users. And note, the vast majority of those users aren't going to download the browser and use your application, they're simply going to leave.

<comment><AUTHOR> I'm perfectly fine with idea of losing 5 users out of 100 - because 95% of my target base will use modern browser(or less because someone that doesn't use a decent browser will very likely be unable to benefit from my site in first place - specifics of my target group I suppose). Anyways It's not like i'm going to block anyone - I just don't want to support hacky code just to make IE users happy.

It's not like the website will be non-functional to IE users - it will probably just be ugly, thats all ;-) Which I guess is fine because its purpose is being a tool for webdevelopers and programmers.

Also some features just don't degrade at all ;-) like canvas (unless i use something like excanvas), but this part is competly optional to use, so not a biggie.

Think like <https://developer.mozilla.org> \- being made to work in IE ;-)

</comment></comment><comment><USER3> Personally, I don't mind when sites complain about my browser, as long as there is still an element of choice. Not all HTML5/CSS3 features are there in stable versions of a lot of browsers, so if your site were to use a feature only available in the latest stable version of Chrome, for example, and not Firefox, then I would consider that to be too restrictive.

However from the sounds of it, your application should work in the latest stable version of the major web browsers, which, in my opinion, is enough.

<comment><AUTHOR> Indeed, but i would find a common denominator - I would go with features firefox 3.x, webkit, opera + ie9 support. This seems like sane compromise to me.

</comment></comment><comment><USER4> You're ignoring the many slow computers that are still out there in the world, but perhaps your market won't encompass those.

I have an old PC. 1.8GHz Celeron. YouTube complained all the time that I should get a "modern" browser. I was using Firefox 2.x -- which was faster for me than the latest Chrome. Also, Fox could play YT videos, while Chrome and even Safari could not. (I'd tried Fox 3.x early on, but it slowed the entire PC to a crawl and I had to rollback to 2.x!)

I forget what frustration I encountered a week ago, but it finally drove me to try Opera. Let me tell you that Opera is sooooo wicked fast on this old PC that it's as if I've had an entire hardware upgrade. I'm not connected with Opera at all, just incredibly happy in using it. Now I can visit sites I had to avoid in the past due to multiple JScript errors (Gizmodo, io9, and the like).

If people are hesitant to switch browsers, suggest they try Opera at least once. As usual, TMMV.

<comment><AUTHOR> Well, I can only say that I don't plan to put anything resource intensive to the layout, i'd risk to say that the website should work fast for you, not sure how well it would look on 2.x, but keep in mind that YT uses flash that is main resource hog(especially on linux). I'm pretty confident that it would run fine on your pc with firefox - because my android phone can run it ;-)

That makes me think now i should install fennec on my phone and see how that works.

<comment><USER4> >>>because my android phone can run it ;-)

Sorry, but no. I've actually had to transfer some AVIs to my LifeDrive (400Mhz CPU) to play them because they'd be cloggy when using vlc on this PC! (Yes, I've scanned for malware; done _plenty_ of officially recommended optimizing stuff -- which, btw, I should have also said I'm at XP SP2, because SP3 made this machine crawl too!)

It could also be I have the crappiest PC on earth, one of very few.

<comment><AUTHOR> My phone has 560mhz procesor, hadly processing power of your pc. If you are having issues of this kind, maybe thermal sensor on your cpu is broken and cpu is slowing down because it things it has temperature problems, or bad drivers? That 1.8ghz celeron should be fine for majority of tasks. Maybe you could try downloading ubuntu live image and test there if the problem persists(its free)? Then you would at least know if it's not a problem with your operating system.

<comment><USER4> Funny you should mention thermal. Had to replace heatsink retention module recently. But that didn't help anything, really. It's just XP being all clogged up from years of use. Can't do clean re-install. Point of no return.

</comment></comment></comment></comment></comment><comment><USER5> I'd be ashamed to put out something that completely failed without nice frills like CSS and canvas. Links (the browser) is good enough for Gmail, so that's the level of competence I expect of myself.

<comment><AUTHOR> Indeed, links is awesome at showing real time charts, I agree. I'm also sure mozilla is ashamed of their new MDN site, and FB for its facebook chat.

I need clarify, i want to use it for features, not "bling".

<comment><USER5> A real-time chart is a great progressive enhancement over the raw data. But when I can't get the data even without the chart, that's broken. As for other sites out there, I never claimed my opinions are commonly held. There's a long history of shoddy work succeeding in this industry.

<comment><AUTHOR> Shoddy is building sites that HAVE to support IE(unless there is really a good reason to do so) - i've done this for years and the only outcome of this is that we contribute to the fact that users don't change their habits and use browsers with shoddy approach to web standards. How can that be better in 21st century?

If i'd really want i could support everything, but how long should we keep this up? 10 years? 20?

It's like you would say that games should be built to work on 286pc's. Yet no one complains about that (unless it's poor optimization). You were so kind to suggest that my work is shoddy, I would say that shoddy work are websites that use hacks, or use non-semantical markup to archieve the goal of being able to work everywhere. Overall quality of code is sacrifaced for bacwards compatibility with browser that uses 9 year old rendering engine? People switch cars more often than browser versions, I fail to understand why we allow that to happen. We have good solutions to handle legacy app compatibility like chrome frame. Everyone has right to it's own opinion, but is it wrong to want users to use proper browser? Even my phone is capable of rendering charts. How can supporting everyone at all cost be better than pushing for standards? We are forced to standards everywhere in real life, why not in IT?

This is a nice quote about what happens if you support broken by design browsers forever:

"Facebook explains its decision by saying that many users have complained about unstable chat sessions, or ones that stop completely. In order to improve the way connections are established and messages are sent, however, the social networking giant must make changes that aren't supported by older browsers."

I'm not saying that everything FB does is right, but I think that legacy support sacrificing experience of everyone else is not a solution to the problem, and this is a good example.

<comment><USER5> Step one should be valid semantic HTML 4.01 (or equivalently, XHTML 1.0 served as text/html). That's still the current standard, and was carefully designed to be at least accessible on every browser we've ever had. Step two is adding CSS and JS to make the experience nicer for browsers on which it's switched on and known to work reliably. It seems to me that a lot of devs complaining about IE6 have a grudge because it reveals they routinely skip step one. They had every opportunity to build something that always works and always will _and then_ make all the shiny variations they can handle, but they prefer the "this page optimized for arguing with customers" approach.</comment></comment></comment></comment></comment>


Bootstrapping a Lean Startup - <AUTHOR> http://www.ashmaurya.com/2010/03/bootstrapping-a-lean-startup/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+AshMaurya+(Ash+Maurya)&utm_content=Google+Reader

<comment><USER2> Sorry about the database error earlier... Yes the blog is running on a server beach hosted server using apache + wordpress. Today was the first time it ran into load issues which I guess is a good problem to have. In either event, I've addressed the issue for now but will be looking into some longer term tweaks.

Thanks.

</comment><comment><USER3> Amazing how this makes it to the front page when no one can apparently even read the article due to a database issue.

<comment><USER4> This Coral Cache link actually works: [http://www.ashmaurya.com.nyud.net/2010/03/bootstrapping-a- le...](http://www.ashmaurya.com.nyud.net/2010/03/bootstrapping-a-lean- startup/)

</comment></comment><comment><USER5> Here is a coral cache link:

[http://www.ashmaurya.com.nyud.net/2010/03/bootstrapping-a- le...](http://www.ashmaurya.com.nyud.net/2010/03/bootstrapping-a-lean- startup/)

</comment><comment><USER6> I am getting a "Error establishing a database connection"

</comment><comment><USER7> seems like the database can't bootstrap itself.</comment>


Ask HN: Is Google quietly violating the cookie law in mobile chrome? - <AUTHOR> I just noticed, it is impossible to completely clear out Google.lu cookie in mobile chrome even after complete cookie wipe. If you leave Chrome open for a minute or so, it seems to reappear by itself. <comment><AUTHOR> Can somebody else in EU region check it?</comment>


Ask HN: Have tech wages fallen since shelter in place? - <AUTHOR> Did things flip this year to becoming an employer's market? I've been looking at new postings this month and, since the record setting unemployment figures topped the news, it seems to me those hiring are offering less. Any data? <comment><USER2> The company I am consulting for did a 20% pay cut across the board. Series B company.

<comment><AUTHOR> Thanks.</comment></comment>


Ask HN: When did Chrome start auto-filling credit card and cvv details? - <AUTHOR>

Within the past month, I've noticed that Chrome (v44.0.2403.107) has developed an integration with Google Wallet and will now prompt to auto-fill credit card and cvv (!) details on forms.  Does anyone when this feature was introduced? <comment><USER2> About a year ago Chrome started filling out form fields even if in the HTML they're set to autocomplete=off. Personally I think it's annoying, too.

[http://makandracards.com/makandra/24933-chrome-34+-firefox-3...](http://makandracards.com/makandra/24933-chrome-34+-firefox-38+-ie11+-ignore- autocomplete-off)

[http://caniuse.com/#search=autocomplete](http://caniuse.com/#search=autocomplete)</comment>


Portable sunshine: Earbuds that shine light into your ears - <AUTHOR> http://www.wired.co.uk/magazine/archive/2011/02/start/portable-sunshine <comment><USER2> There's a good discussion about these, including responses from the makers here: "Valkee Scam" <http://shkspr.mobi/blog/index.php/2011/09/valkee-scam/>

<comment><USER3> I disagree with what this bit:

      The brain isn't designed to get light in to it. If your
      brain is receiving light; there's a hole in your head.
      That's not healthy!

The brain was not designed.

There are a number of holes in your skull and your ears are two of them.

Whether or not the brain reacts to light is either proven or disproven depending on whether you find a flaw in this research or can conduct research that finds against it.

<comment><USER4> It just seems very unlikely - that reactivity to light would serve no purpose and hence could be optimized away.

And I think there is something more than "either proven or disproven". If you claim you have an invisible dragon in your garage, it seems very unlikely that you are telling the truth. No need to run experiments for that. (brain and light might be more likely than invisible dragons, just making a point).

<comment><USER5> I think it's unlikely too - however I think the point being made is that maybe it's not completely optimized away _yet_. We are not at the pinnacle of evolution such that every part we have serves a clear purpose.

<comment><USER3> Evolution does not optimise away. If a mutation serves no purpose it remains unless it is replaced for a reason (or a gene has more than one function—God reuses constants ;-)).

What does 'pinnacle of evolution' mean? Sharks and spiders have been around since before dinosaurs so they must be there, surely?

Do we reach it if we hit a suitably low level of child mortality?

There is an argument that we are already at the pinnacle of evolution for our environment and we will remain there until something changes and we are tested and our children start dying. That mostly happens in chunks… _everything is fine, everything is fine, everything is fine, bang meteor!_ although it can happen in smaller steps. Whether we are still evolving in the rich, medicalised west is a matter of debate. The third world certainly has many children dying but the cause is often not something that natural selection can fix: politics & war.

</comment></comment></comment></comment></comment><comment><USER3> The flip-side of this is that headphones may be _causing_ depression in some people by blocking light from entering the brain through the ear canal.

Perhaps we should all be taking our earbuds off on sunny days?

</comment><comment><USER6> I haven't read all of the comments here, but I come from a pretty good neuroscience background and have some thoughts on why this looks like baloney. It's about the way the brain works. The brain itself is not a sensory organ. It processes signals from sensory organs. Information reaches the eye or the skin or the tongue as mechanical, chemical, and optical data but then get transduced into an electrical impulse. Even if there were light receptors in the brain, it's highly unlikely that they would be so specific that activating them would cause positive feelings. That's how information gets processed at the level of our senses, but not in our brains. Individual neurons do not hold individual memories. Nor do they seem to control specific emotions.

If shining light on the brain actually changed the levels of activity, it would have an impact on entire neural circuits, not just on this one process. At least, that's how I see it.

</comment><comment><USER4> We'll see who has the last laugh, but for now I feel inclined to say "this is the stupidest thing I have ever heard"...

</comment><comment><USER7> 25 people is not a "clinical study". It is a survey.

<comment><USER8> I have said this before in HN, but I'll repeat myself: don't trust this study.

The Valkee company is financially backed by ex-Nokia execs and other people with money and influence in Finland. They have the means to get a small University in Northern Finland to make a study in their favor.

There have been interesting studies about light sensivity in the skin, so why not the brain. However, this study doesn't really prove anything.

Also, don't underestimate the value of placebo in the treatment of mental ailments.

<comment><USER9> Right! So even as a $185 placebo, its good medicine?

<comment><USER8> The $185 price probably contributes to the placebo effect. It was expensive so it _must_ work.

</comment></comment></comment></comment><comment><USER10> Once they add the ability to play music they'll have a killer product in their hands.

</comment><comment><USER11> See for example this: [http://www.futurity.org/top-stories/skins-eye-like- receptors...](http://www.futurity.org/top-stories/skins-eye-like-receptors- see-uv-light/) "Skin is able to detect ultraviolet light by using a receptor previously thought to only exist in the eye."

Having light sensitive cells inside your head (in other places than eyes) obviously sounds ridiculous if you believe in intelligent design. However if you think about evolution and how it works, I would say there is pretty good chance all our cells do not have just the functions they absolutely need to have.

<comment><USER12> It's fairly difficult to pinpoint something that humans have that couldn't have been placed there intelligently. Evolution drives organisms, if at all possible, to co-opt anything that develops because of structural constraints. Most of the time it is possible.

This class of traits is something that Steven J Gould named as evolutionary spandrels. So in practice, I would expect the ultraviolet receptors in the skin to have at least one meaningful function. The fact that exposing people to ultraviolet light changes their hormonal balance would tend to suggest this as well. They're definitely doing something.

As a separate argument, a creationist could also provide some information theoretic arguments for why some cells have pointless features. Unnecessary complexity in a biological organism, like in any other computer program, is a dangerous risk. As risk management, we might want to handle that danger by accepting a harmless redundancy and not building an additional subsystem that chaotically interacts with all our other subsystems.

</comment></comment><comment><USER13> Commuters have plenty of artificial light around them. Cyclists and walkers would need this more, but it probably blocks out sound. The whole artificial sun-like light thing does make sense, but mostly as a bedroom light.

</comment><comment><USER14> Even assuming this works reliably, £160 seems overpriced for what's basically a couple of small torches.

<comment><USER15> This sort of thing just screams bullshit. Yes, I get that light therapy or whatever it's called is prescribed but somehow I doubt that two little LEDs shoved in your ears is anything close to a substitute.

<comment><USER16> These are aimed for people suffering the winter depression <http://en.wikipedia.org/wiki/Seasonal_affective_disorder>

<comment><USER15> That's what I was thinking of. But, like I said, I doubt little ear lights are a substitute for giant light panels.

Then again, maybe they are. It's just too suspicious.

</comment></comment></comment></comment><comment><USER17> Has any study been conducted about any possible side effects any such thing would have? after all if light to skull would have been so useful then evolution should have made it so. If it isn't so then either its of not much use or it has some bad effects too.

<comment><USER18> You misunderstand evolution. The idea is to be _good enough_ to reproduce, not to be optimal. Hence why humans have loads of vestigial crap that serves no purpose.

<comment><USER19> But we also have stuff that serves a purpose but without which we would still be good enough to reproduce. Eyebrows for example, are a good shield for your eyes against snow and dust falling from above. I'm happy to have them. But I can't imagine survival ever depending on them. Or is their existence proof that humans at some point in evolution got a real advantage from eyebrows in regards to reproduction? (serious question, I'm not being sarcastic)

<comment><USER3> The eyebrow may have been of use when humans had predators who attacked in the rain, or it may have been advantageous to a distant ancestor who lived through a one-off natural disaster: a meteor strike or a volcano. It may also be an effective way to communicate silently when your hands are busy elsewhere, or a vital addition to those who use fire.

The eyebrow might also have never been of any competitive advantage without also being a hindrance in any way.

Evolution is all about the death of children. If a mutation leads to the death of its carrier before they can reproduce then it will be naturally selected out of the gene pool. Anything that isn't removed in this way will still remain.

In a smaller way if a mutation helps a parent (or other relation) to raise more children to adulthood then more copies of the mutation will appear in the gene pool.

All mutations start out without a use. Maybe the advantage that an eyebrow brings has yet to be realised.</comment></comment></comment></comment>


Introducing React Storybook - <AUTHOR> https://voice.kadira.io/introducing-react-storybook-ec27f28de1e2 <comment><USER2> This is extremely similar to DevCards for Clojurescript, [https://github.com/bhauman/devcards](https://github.com/bhauman/devcards), [https://www.youtube.com/watch?v=G7Z_g2fnEDg](https://www.youtube.com/watch?v=G7Z_g2fnEDg)

<comment><USER3> Dan Abramov's DevTools[0] with Hot Reload and "Time Travel" (historical debugging) is basically the same thing too, though its tied to Redux pretty heavily IIRC. So yeah, nothing new. ("TimeWarp OS"[1] was a project developed in the late 80s that did the same thing at the OS level, primarily for physics simulations. (Something would break, you'd go back to state foo, change parameters mu,delta,sigma to yield foo' and continue the run.))

[0][https://www.youtube.com/watch?v=xsSnOQynTHs](https://www.youtube.com/watch?v=xsSnOQynTHs) is the canonical talk on it, certainly worth a watch.

[1] [http://www.cs.nyu.edu/srg/talks/timewarp.pdf](http://www.cs.nyu.edu/srg/talks/timewarp.pdf) Brian Beckman formerly of Microsoft as a second author. All those RX features I'd imagine were done largely in part by him and De Smet.

<comment><USER4> Time time debugging is something different here. It's on working with different states of app and try to find issues.

This is a way to list components and show their different use case. We can also develop individual components by just looking at this.

<comment><USER3> I'm missing something, I think. Walk with me through a hypothetical example. I load component todo-list. Dan used integers to mark each modification of virtual DOM, so lets define this as an revision of 42, saved-state-0, labelled with a reference "Populated todo-list", after {"quuz" "bar" "baz"} have been added as elements all bool, all incomplete.

OK, now you can save a ref to this state state, i.e., Component 'todo-list' is now rev 51 (on the vDOM) saved-state-1 (with a reference to rev 53) with a rendering label of : "Bar complete". Check off the 2 remaining elements for component todo-list, we now have saved-state-2 (a reference to rev 53) with label : "Tasks completed".

I'm not saying that what you built isn't useful (I'm 100% certain it is!) but I don't see how it's any different from taking an append-only journal and adding bookmarks to save state, though I really could be missing something since I don't work front-end.

<comment><USER5> I can see how useful it is for the less technical part of the team as a way to see all components and their important states.

<comment><USER6> To me it's not even non-technical users, or juniors: this is a way of documenting components and their important substates, the same way a CSS styleguide does. It can help keep consistency of use, document features and states that may be overlooked by a consumer, or act as a framework for design QA.

<comment><USER7> It's not even just documentation - you can use it like visual unit tests, so you can see what the effects of a change are to all the different states of a component.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Another project in the same spirit is [https://github.com/skidding/cosmos](https://github.com/skidding/cosmos)

In React-land, most component _should_ be standalone pieces, but without any immediate joyful benefits it's easy to loose that requirement as complexity grows. Eventually, this can cause the guts of the app to be a lot more interconnected than I'd want for a clean architecture. I expect adding a working gallery of app components (through Storybook or Cosmos) would bring the joyful benefit I need to be more consistent in force true component encapsulation, which may require better thought-out components.

</comment><comment><USER9> First impression : Storybook looks beautiful! Thank you for this. Developers like beautiful UIs as much as anyone.

I'm currently working on a simple React.js commerce platform and even in it's early stages I'm already wrangling tens of thousands of lines of UI code. Anything to make React development easier is welcome.

Also, thank you for bringing awareness to how hard building a proper UI is in your Medium post.

I'll try to give you some more thorough feedback on github.

I am curious to find out if you have any plans for future features or where you see this project going from here?

<comment><USER4> Cool. I will create a ROADMAP.md file in the repo soon. Check it tomorrow.

</comment></comment><comment><USER10> [http://i.imgur.com/kwaIrAH.png](http://i.imgur.com/kwaIrAH.png)

Come on, this is terrible use of bold text. It actually makes reading the post harder.

<comment><USER4> Thanks for the feedback. This is the first time, I got a feedback on this.

I used it for highlighting points. I think I am over using it. Will minimize it.

<comment><USER11> > This is the first time, I got a feedback on this.

That comma placement is strange too. I'm thinking not a native english speaker. It's a great tool though. Not taking away from that at all. Thanks for making it. :)

<comment><USER12> While that may be true, how is that observation relevant?

</comment></comment></comment></comment><comment><USER13> It's one of the reasons I prefer Storyboards over coded views in iOS development. The immediate feedback in the designer instead of compile / reload. They even got better with live views. Having the behavior simulated for different data sets would be the icing on the cake for me. This idea is so great it makes me wonder why it didn't exist yet (but perhaps there's something very similar out there already?)

<comment><USER14> I developed in Android first, then iOS, and I don't like storyboards (git merge conflicts, clunky drag/drop outlets, and more). I also found the XCode ide to be pretty terrible compared to Android Studio.

<comment><USER15> Storyboards take a while to set in, but once they do, you'll see why so many people save so much time with them.

<comment><USER16> I have about 3 years of iOS experience and I have a love hate relationship with storyboards.

I think the introduction of auto-layout has made it them more powerful , but also a bit confusing.

Apple really needs to work on the UX in interface builder. I should ideally be able to see most of the constraints at a single glance rather than clicking on each every view to find out how it relates to the views around it.

I can create UIs reasonably fast now , after mastering all the tricks and UI shortcuts.

However as your parent mentioned , it is a fact that Android developers are able to create UIs faster. I know this since our team works on the same features on both platforms.

It used to be that Android used to really suck , but for simple standard UIs , mocking up something is much faster now on Android. And their layout system while not as powerful as Autolayout is enough most of the time and easier to grok.

The only thing they still struggle with are animations and device / OS fragmentation.

</comment></comment></comment></comment><comment><USER17> I actually use my personal website for this. I build out components to play with data on top of API's I've built. It's fun as hell and pretty great for all the reasons that this is great, albeit not quite as shiny.

<comment><USER4> Thanks.

I'd like to get you feedback on what we can improve. Could you post your feedback here - [https://github.com/kadirahq/react- storybook/issues](https://github.com/kadirahq/react-storybook/issues)

</comment></comment><comment><USER18> It seems like the same thing could be accomplished with a simple demo page inside of your app for testing new components. Some problems I see:

-Lots of UI components depend on the context of the page they live in and can't be developed in isolation

-Dummy data means you'll miss tons of weird edge cases. Your to-do list works great until it gets real data with 300 items and long, unbroken strings

-Any design team technically savvy enough to tweak and style components themselves should be able to clone the repo, run the app locally and do it within the app

I'm open to being wrong, but I don't see the value in this.

<comment><USER3> It's pretty powerful[0] because it captures a variety of states a component can exist in. I see it being very useful for exposing new team members to the application, as well as the obvious potential test coverage possibilities (it's not a state machine, but its better than nothing), and separating concerns.

You don't really have to use dummy data at all. If you're using a typed JS, use something like Haskell's QuickCheck to auto-generate your test coverage. With types, it'll fuzz you with everything it can throw at you, with the actual _intention_ of breaking your app with 300 elements each with convoluted, unicodey hogwash.

When you bring types into it, things can actually get fun, because just like with immutable FP you can get certain deterministic guarantees, with a decent type system you can actually implement a state machine to capture _all_ of your possible states and transitions, using your sufficiently strong type system + the states/transitions + QuickCheck arbitrarily throwing junk into each form field (annotate the type with a constraint, Date.prior_to_now(18,0,0) on field `D.O.B' => (state loops back on itself with errors[] now having 'underage_registration_error'))[1]

[0] The concept, that is, this implementation is re-inventing the wheel/nothing-special. Read my other comment on TimeWarp OS which is literally 30 years old. [1] [https://i.imgur.com/7jHldss.png](https://i.imgur.com/7jHldss.png) Literally 5 minutes of work (of which, 3 were me learning the DSL). Hopefully it conveys the point though.

</comment></comment><comment><USER19> Not to hijack the discussion too much, but does anyone know of something similar for Angular 1.x? Minko Gechev has a prototype of an Angular 2 hot reloader, but that's all I could find.

<comment><USER20> I would be really interested too. For the moment when i want to develop some isolated component I use codepen but a more dedicated solution would be nice :)

</comment></comment><comment><USER21> This is basically a framework for making living style guides? That's potentially very useful, but it wasn't a super hard problem to solve before.

<comment><USER15> No, these are not just style guides.

</comment></comment><comment><USER22> Is the site broken? I assume in my browser the CSS is not being served, and hence the site looks completely broken.

<comment><USER23> The site is Medium w/ a custom domain, if you have settings blocking Medium.</comment></comment>


Does Microsoft's Kumo Herald an Era of Visual Search? - <AUTHOR> http://www.pcworld.com/businesscenter/article/160629/does_microsofts_kumo_herald_an_era_of_visual_search.html <comment><USER2> photocracy.org - the future of photo sorting?</comment>


YUI from the outside - <AUTHOR> http://wonko.com/post/yui-from-the-outside

<comment><USER2> I spent nearly two years working on a large codebase with YUI and I agree with everything said here. There are long-standing unfixed bugs, components break on minor version upgrades, there's little transparency into the planning, and there is little incentive to contribute because the contributed fixes never make it into core.

It's still a great library, but it could be so much greater if community was allowed to participate.</comment>


KORE – A fast SPDY-capable webserver for web development in C - <AUTHOR> https://kore.io/ <comment> a-priori Okay here's a peeve of mine: just because something is in C ("no overhead!") doesn't mean it's faster than something in another language in all situations.

As an example, this server uses a thread pool architecture. This architecture will perform poorly with slow clients (common on the public Internet), servers which have to interact with slow disks or external services, and is useless for long-polling. It's only useful for CPU-bound applications when you can assume fast clients and short requests.

In fact, I could make this server grind to a halt by opening one connection per worker, issuing partial requests to each, then letting the connection hang. So to be used in production, this server will have to sit behind something like nginx, which can insulate your application from pathologically slow clients.

<comment><USER2> > this server uses a thread pool architecture.

Is the README wrong? It says:

"Event driven architecture and worker processes for throughput"

To me this indicates using events for the external interface (slow clients), and threads for taking advantage of multiple cores.

<comment><USER3> It looks like the README is accurate. A number of child processes are forked off and then event processing is done with kqueue on the BSD platform and epoll on Linux.

</comment></comment></comment><comment><USER4> > Secure by default > SPDY

Choose one, SPDY mandates gzip, and gzip in SSL/TLS is vulnerable to leaking repeated plaintext, eg cookies in nearly every implementation.

[http://en.wikipedia.org/wiki/CRIME_(security_exploit)](http://en.wikipedia.org/wiki/CRIME_\(security_exploit\))

<comment><USER5> I choose HTTP/1.1 pipelining. Uncompressed headers are useful. Ordered records are returned (unlike SPDY), where "HTTP/1.1 200 OK" is the record separator. Been using this for a decade. Can't see the benefit of SPDY.

Anyway pipelining is only useful where numerous resources are coming from the same host. But the way the www has evolved, so much (unneeded) crap gets served from ad servers and CDN's. Pipelining isn't going to speed that up.

HTTP/1.1 pipelining was never broken. It was usually just turned off (e.g. in Firefox), while most web servers have their max keep alive set around 100. In plain English, what does that mean? It means "Dear User, You have permission to download 100 files at a time from [http://stupidwebsite.com](http://stupidwebsite.com). That is you can make one request for 100 files, instead of 100 separate requests, each for a single file." And what do Firefox and other braindead web browsers do? They make a separate request for each file. But heay, never mind all those numerous connections to ad servers to retrieve marketing garbage (i.e. not the content you are after), lets concentrate on compressing HTTP headers instead. Brilliant.

It's trivial to use pipelining: 1. Feed your HTTP requests through netcat or some equivalent to retrieve the files and save them to a concatenated file, 2. split the concatenated file into separate files if desired, 3. view in your favorite browser.

No ad server BS.

Now that's "SPEEDY".

<comment><USER6> Pipelining falls short of SPDY in several respects. The biggest problem is that it suffers from head of line blocking. One slow request or response prevents others from making progress.

<comment><USER5> I trust in theory this is true, but I've never personally observed this in practice.

I guess SPDY fans' marketing of this "feature" would be more convincing if I could see a demonstration.

I just don't see any noticeable delays when using pipelining.

What strikes me as peculiar about the interest in SPDY is that I never saw any interest in pipelining before SPDY. And I really doubt it was because of potential head of line blocking or lack of header compression. I think users just were not clued in about pipelining.

The speed up between not using pipelining and using it is, IME, enormous. 1 connection for 100 files versus 100 connections for 100 files. It is a huge efficiency gain.

Yet most users have never even heard of HTTP pipelining, or never tried it. If they really wanted such a big speed up, why wouldn't they use pipelining, or at least try it? Why wouldn't they demand that browsers implement it and turn it on by default?

Users are being encouraged to jump right into SPDY, a very recent and relatively untested internal project (e.g. see the CRIME incident) of one company, most users, if not all, having never previously experimented with even basic pipelining, which has been around since the 1999 HTTP/1.1 spec and has support via keep alives in almost all web servers.

Noticeable speed gains would be seen if www pages were not so burdened with links to resources on external hosts. That's what's really slowing things down, as browsers make dozens of connections just to load a single page with little content. The speed gains from cutting out all that third party host cruft would make any speed gains from avoiding theoretical potential head of line blocking during pipelining seem miniscule and hardly worth all the effort.

If you want to see how much pipelining speeds up getting many files from the same host, you do not need SPDY to do that. Web servers already have the support you need to do HTTP/1.1 pipelining. (Though on rare occasions site admins have keep-alives disabled, like HN for example. In effect these admins are saying, "Sorry, no pipelining for you.")

<comment><USER7> HTTP pipelining is turned off by default in most browsers due to concerns with buggy proxies and servers (see [https://bugzilla.mozilla.org/show_bug.cgi?id=264354](https://bugzilla.mozilla.org/show_bug.cgi?id=264354) ). It may work for you and the particular set of servers you visit, but I suspect browser developers would rather have a browser that by default works with the widest possible range of configurations.

Unfortunately, it being turned off by default in most browsers means that most people won't see the benefits from it. Hopefully, the upcoming HTTP/2 standard will fare better (latest draft: [https://tools.ietf.org/html/draft-unicorn- httpbis-http2-01](https://tools.ietf.org/html/draft-unicorn-httpbis-http2-01) ).

Note that HTTP/2 will be based on SPDY (in particular, SPDY/4 with the new header compressor). Hopefully, when the standard is finalized and we have multiple strong implementations, that will allay the concerns you seem to have with SPDY today.

(Disclaimer: I work on SPDY / HTTP/2 for Chromium.)

<comment><USER5> Yes, I understand there are buggy servers and proxies... and I use a browser that has settings to accomodate them. However... I do not know about HTTP bugs that affect <emphasis>pipelining<emphasis>. And... in addition, for pipelining, I do not use a browser to do the initial retrieval. I use something like netcat to fetch and then I view the results with a browser.

Can you give me a list of buggy servers where my HTTP/1.1 pipelining will not work as desired? I've been doing pipelining for 10 years (that's quite a few servers I've tried) with no problems.

The arguments made by SPDY fans (e.g. Google employees) all seem plausible. But I wonder why they are never supported by evidence? IOW, please show me, don't just tell me. SPDY seems to solve "problems" I'm not having. Where can I see these HTTP/1.1 pipelining problems (not just problems with browsers like Firefox or Chrome) in action? I'd love to try some of the buggy servers you allude to and see if they slow down pipelining with netcat.

<comment><USER7> I didn't have to look hard to find bug reports for pipelining. An example is [https://bugs.launchpad.net/ubuntu/+source/apt/+bug/948461](https://bugs.launchpad.net/ubuntu/+source/apt/+bug/948461) for Amazon's S3. I'd be interested if the problem is still reproducible now. Also, one of the comments mentions Squid 2.0.2 as being buggy.

Also, see [https://insouciant.org/tech/status-of-http-pipelining-in- chr...](https://insouciant.org/tech/status-of-http-pipelining-in-chromium/) for a link to Firefox's blacklist of buggy servers (and a good discussion of pipelining in Chromium).

Most of the improvements in SPDY are latency improvements, so if you're downloading sites with netcat and then viewing them in a browser, I'm pretty sure the overhead of that would dwarf anything SPDY would save. That having been said, there's ample evidence of SPDY improving things. From [http://bitsup.blogspot.com/2012/11/a-brief-note-on- pipelines...](http://bitsup.blogspot.com/2012/11/a-brief-note-on-pipelines- for-firefox.html) :

"Also see telemetry for TRANSACTION_WAIT_TIME_HTTP and TRANSACTON_WAIT_TIME_HTTP_PIPELINES - you'll see that pipelines do marginally reduce queuing time, but not by a heck of a lot in practice. (~65% of transactions are sent within 50ms using straight HTTP, ~75% with pipelining enabled).... Check out TRANSACTON_WAIT_TIME_SPDY and you'll see that 93% of all transactions wait less than 1ms in the queue!"

<comment><USER5> Thanks for the reading material.

You omitted the sentence before your excerpt where Mr. McManus suggests we move to a multiplexed pipelined protocol for HTTP.

I'll go further. I say we need a lower level, large framed, multiplexed protocol, carried over UDP, that can accomodate HTTP, SMTP, etc. Why restrict multiplexing to HTTP and "web browsers"? Why are we funnelling everything through a web browser ("HTTP is the new waist") and looking to the web browser as the key to all evolution? It seems obvious to me what we all want in end to end peer to peer connectivity. Although the user cannot articulate that, it's clear they expect to have "stable connections". This end to end connectivity was the original state of the internet. Before "firewalls". Client-server is only so useful. It seems to me we want a "local" copy of the data sources that we need to access. We want data to be "synced" across locations. A poor substitute for such "local copies" has been moving data to network facilities located at the edge, shortening the distance to the user.

But, back to reality, in the case of http servers, common sense tells me that opening myriad connections to (often busy) web servers to retrieve myriad resources is more prone to potential delays or other problems (and such delays could be due to any number of reasons) than opening a single connection to retrieve said myriad resources. Moreover, are his observations are in the context of one browser?

I guess when you work on a browser development team, you might get a sort of tunnel vision, where the browser becomes the center of the universe.

If you dream of multiplexing over stable connections, then you should dream bigger than the web browser. IMO.

I'm aware of a bug in some PHP databases with keep alive after POST. I mainly use pipelining for document retrieval (versus document submission) so I am not a good judge of this. What I'm curious about is where keep alives after POST would be desirable. You alluded to that usage scenario (a series of GET's after a large POST).

<comment><USER7> Re. Patrick's sentence, you're right, but as I mentioned above, SPDY/4 will become HTTP/2 (we're working through the standardization process). So I think most of the major players are on board with "fixing" HTTP pipelining by using SPDY-style multiplexing.

Re. thinking bigger, you might want to read up on QUIC, which was announced recently: [http://en.wikipedia.org/wiki/QUIC](http://en.wikipedia.org/wiki/QUIC) . Based on that, I would content that at least we on the Chromium team don't have tunnel vision. :)

Re. your question, Patrick's data is from Firefox only I believe. You're right that it's not surprising his stats show that SPDY helps over HTTP without pipelining. But the more interesting thing is that HTTP with pipelining still doesn't help that much over HTTP without pipelining (on average) and SPDY still beats it by orders of magnitude. I'd have to dig, but I'm pretty sure there are similar stats on the Chromium side.

<comment><USER5> Yes, a major appeal of pipelining to me is efficiency with respect to open connections. It's easier to monitor the progress of one connection sending multiple HTTP verbs than multiple connections each sending one verb.

Whether multiple verbs over one connection are processed by the given httpd more efficiently than single verbs over single connections is another issue. IME, a purely client-side perspective, pipelining does speed things up. But then I'm not using Firefox to do the pipelining.

I'm sure the team reponsible for Googlebot would have some insight on this question. (And I wonder how much SPDY makes the bot's job easier?)

In any event, multiplexing would appear to solve the open connections issue. And I don't doubt it will consistently beat HTTP/1.1 pipelining alone. I'm a big fan of multiplexing (for peer-to-peer "connections"), but I am perplexed by why it's being applied at the high level of HTTP (and hence restricted to TCP, and all of its own inefficiencies and limitations).

I'm curious about something you said earlier. You said something about the "overhead" of using netcat. It's relatively a very small, simple program with modest resource requirements. What did you mean by overhead?

<comment><USER7> Re. multiplexing at the HTTP layer, because an HTTP replacement has to be deployable and testable. However, now that the ideas in SPDY have been proven and are on their way to being standardized, you can look at QUIC to see what can be done when not limited to TCP and HTTP.

By overhead I mean latency overhead -- running a program to download a site to a local file and then displaying it in a browser will almost certainly have a higher time to start render. Not to mention you're hitting everything cold (i.e., not using the browser's cache).

<comment><USER5> I don't measure latency as including rendering time. Maybe I'm not "rendering" anything except pure html.

I measure HTTP latency as the time it takes to retrive the resources.

Whatever happens after that is up to the user. Maybe she wants to just read plain text (think text-only Google cache). Maybe she wants to view images. Maybe she wants to view video. Maybe she only wants resources from one host. Maybe she does not want resources from ad servers. We just do not know. Today's webpages are so often collections of resources from a variety of hosts. We can't presume that the user will be interested in each and every resource.

Of course those doing web development like to make lots of presumptions about how users will view a webpage. Still, these developers must tolerate that the speed of users' connections vary, the computers they use vary, and the browsers they use vary, and some routinely violate "standards". Heck, some users might even clear their browser cache now and again.

But HTTP is not web development. It's just a way to request and submit resources. Nothing more, and nothing less.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Do you have any benchmarks against nginx? [http://nginx.org/en/docs/http/ngx_http_spdy_module.html](http://nginx.org/en/docs/http/ngx_http_spdy_module.html)

</comment><comment><USER9> Would it be an interesting idea to create a framework for making webapps as nginx modules? Sure, it's a pain in the ass, but nginx is evented as opposed to thread pooled, and tried and tested. Because nginx takes up hardly any memory, you could run a single nginx instance and proxy to other nginx instances that are compiled purely to run the app.

Though the scope for creating critical vulnerabilities is _huge_.

<comment><USER10> There is such a framework: openresty

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

It uses a wide range of 3rd-party nginx modules, and Lua as a scripting language, to form a nice little framework. Extraordinarily fast by any standards.

<comment><USER11> Lapis is also worth mentioning : [http://leafo.net/lapis/](http://leafo.net/lapis/)

Lapis is a framework for building web applications using MoonScript (or Lua) that runs inside of a customized version of Nginx called OpenResty.

<comment><USER9> That looks really interesting, thanks.

</comment></comment></comment></comment><comment><USER12> Ceased reading after mem.c - pool-based memory allocation which cache-locality awareness and data partitioning by access patterns is the must for a modern server. Just to malloc every buffer you need is a naive strategy, which, probably, will result in memory fragmentation and cache misses.

Surprisingly accurate and clean C. This guy is good one for hiring (assuming he wishes to be hired).

</comment><comment><USER13> Why web development in C? Seems like a headache.

<comment><USER14> It's quite a gift for embedded systems. It's very convenient to have a self- contained solution for a web interface, rather than drag an interpreter and a web server on an already crowded rootfs. Plus, you can get the benefit of static analysis and the like, which is extra useful on such systems.

<comment><USER15> I believe there are relatively many AOT-compiled-to-native-code languages other than C.

<comment><USER16> But have they equal tooling? That's why I'd be using C if I were using C for something; it's "portable assembly".

</comment></comment></comment></comment><comment><USER17> It's ironic that the website isn't working. Alternate link? (GitHub perhaps?)

<comment><USER18> [https://github.com/jorisvink/kore](https://github.com/jorisvink/kore)

</comment></comment><comment><USER19> Web development in C, I love this.

<comment><USER20> It's just a server. Many sites sit behind nginx, a web server also written in C, as a reverse proxy but that doesn't make them "web development in C."

Edit: This is web development in C: [https://github.com/jorisvink/kore_website/blob/master/src/si...](https://github.com/jorisvink/kore_website/blob/master/src/site.c)

</comment></comment><comment><USER21> Why the ISC license? The site just says "Kore is licensed under the ISC license allowing it to be used in both free and commercial products." but don't Apache 2, BSD, and MIT all satisfy this as well.

IANAL, but here's a quick summary of ISC vs MIT: [http://www.tldrlegal.com/compare?a=MIT+License&b=ISC+License](http://www.tldrlegal.com/compare?a=MIT+License&b=ISC+License)

<comment><USER22> OpenBSD went with ISC for new code: [http://www.openbsd.org/policy.html](http://www.openbsd.org/policy.html)

</comment></comment><comment><USER23> Take libuv > WIN, to watch [http://vimeo.com/24713213](http://vimeo.com/24713213).

Libuv is used in nodejs.

</comment><comment><USER24> What are some frameworks for web developing in C? Is KORE also a framework or just a server?

As for the server, I wonder how performance compares to say, OpenResty loading Lua compiled to bytecode.

</comment><comment><USER25> Web development in C. Reminds me of aolserver.

[http://www.aolserver.com/docs/devel/c/](http://www.aolserver.com/docs/devel/c/)

</comment><comment><USER26> Every new HTTP Daemon is heartly welcome!

</comment><comment><USER18> Connection timeout?

Brilliant idea, I especially love the SSL only. The web needs to move to pure SSL.

<comment><USER27> That is a by-product of being SPDY compliant. The SPDY spec doesn't allow for unencrypted traffic, which is just one reason we need to switch over.</comment></comment>


Go 1.11.5 and Go 1.10.8 are released - <AUTHOR> https://groups.google.com/forum/m/#!topic/golang-announce/mVeX35iXuSw <comment><USER2> > This DoS vulnerability in the crypto/elliptic implementations of the P-521 > and P-384 elliptic curves may let an attacker craft inputs that consume > excessive amounts of CPU.

> These inputs might be delivered via TLS handshakes, X.509 certificates, JWT > tokens, ECDH shares or ECDSA signatures. In some cases, if an ECDH private > key is reused more than once, the attack can also lead to key recovery.

> The issue is CVE-2019-6486 and Go issue golang.org/issue/29903\. See the Go > issue for more details.

</comment><comment><USER3> The fix, for anyone who is interested: [https://github.com/golang/go/commit/42b42f71cf8f5956c09e6623...](https://github.com/golang/go/commit/42b42f71cf8f5956c09e66230293dfb5db652360)

<comment><USER4> Is there anyone who can ELI5 what `beta8.Mod(beta8, curve.P)` does?

<comment><USER5> It is hard to explain what is `beta8` and `curve.P` specifically, but they are arbitrary-precision integers so you can see what went wrong with an appropriate pseudocode:

        x3 = alpha * alpha
        beta8 = beta << 3
        // beta8 %= curve.P
        x3 -= beta8
        while x3 < 0 {
            x3 += curve.P
        }

Essentially we want to compute `(alpha * alpha - beta * 8) % curve.P`, so to say. The modulo is expensive though, so _for typical cases_ we can just repeatedly add `curve.P` to compute the modulo a few times. This is indeed a valid optimization when we are sure of the range of `alpha` and `beta`, but `beta` can be controlled outside. So a very large `beta` from an attacker will cause the while loop run forever---a denial-of-service attack.

<comment><USER6> Here's the new code:

        beta8.Mod(beta8, curve.P)
        x3.Sub(x3, beta8)
        if x3.Sign() == -1 {
            x3.Add(x3, curve.P)
        }
        x3.Mod(x3, curve.P)

I don't understand it why it's all necessary. This is shorter and seems to do the exact same thing:

        beta8.Mod(beta8, curve.P)
        x3.Sub(x3, beta8)
        x3.Mod(x3, curve.P)

Also, beta8 is never used after this code. So this should do the same thing as well:

        x3.Sub(x3, beta8)
        x3.Mod(x3, curve.P)

<comment><USER5> I think you are right. Go `big.Mod` should be Euclidean (i.e. `x % y` follows `y`'s sign) so the code is redundant. It doesn't seem to be required to run in constant time (if so we won't have `if` at all), probably the committer wanted a minimal change?

</comment></comment></comment></comment></comment><comment><USER7> Non mobile link: [https://groups.google.com/forum/#!topic/golang- announce/mVeX...](https://groups.google.com/forum/#!topic/golang- announce/mVeX35iXuSw)

</comment><comment><USER8> Edit: the message starts off with "Hi gophers".

I'm not a "gopher".

Does this label bother anyone else? I love the go programming language but I'm definitely not on board with this.

I happen to be a software developer who found effectiveness and value in Go and will continue to use it as long as it proves effective. That is all.

<comment><USER9> they tried to be cheeky. is ignoring that a problem sufficiently inconveniencing you that it requires a post on a forum?

<comment><USER8> I know they mean well. I'm just wondering if anyone else feels the same way I do.

<comment><USER10> It could be worse. You could be a "rustacean."

<comment><USER11> Back in the 70s, Peugeot, Renault, and Volvo collaborated on an engine design (used in the DeLorean among other cars). It's got some utterly bizarre design features but attracted its own relatively dedicated following called… PRVerts.

<comment><USER12> 90° V6 engines are a perversion, anyway.</comment></comment></comment></comment></comment></comment>


How to test React components using Karma and webpack - <AUTHOR> http://nicolasgallagher.com/how-to-test-react-components-karma-webpack/

<comment><USER2> I recently switched a project to Webpack and ended up do ing something very similar to run tests through Webpack and Mocha, since this project is isomorphic and leverages Bundles on both server and client.

require.context is a good way to bundle an entire directory, as NPM modules like "require-directory" won't work in client builds.</comment>


Vagrant Push – One Command to Deploy Any Application - <AUTHOR> https://www.vagrantup.com/blog/vagrant-push-to-deploy.html

<comment><USER2> For organizations with more than a handful of engineers, shouldn't deployment happen automatically through something like a CI server? Do we really want every engineer deploying code directly themselves? How do the currently available `vagrant push` deploy strategies handle concurrent deploys happening from different people?

I realize that a lot of this is left open to allow custom plugins/strategies to do more complex things (like automated deployment), but I question the practice of encouraging workflows where developers deploy themselves rather than just pushing code revisions.

Or by "deploy", are we referring to deployment to a local development environment? The distinction is an important one in my opinion.

<comment><USER3> In this case, "vagrant push" should interact directly to your CI. It is named "push" for this reason and not "deploy", although the blog post title uses the word "deploy" since it is the end goal (the push should lead to the deploy).

Example: "push" might not send any code, so much as signal to the CI that that commit is meant to be deployed (if it were to pass). Or, "push" might send code directly to a CI. It is really up to you.

"push" doesn't require it go direct to production, and doesn't encourage that (or actively discourage that). It is just meant as a workflow mechanism to unify how deployments are started.

<comment><USER2> Everything you mentioned seems to be accomplished with a simple "git push". When git (or similar VCS) is involved, the push of a new revision of the codebase should (in my opinion) be what triggers a CI build/deploy. As mentioned in krick's comment, the codebase (specifically the branch that is tracked for releases) is _the_ authoritative place to know what code is running on production.

Otherwise, we have a disconnect between what's in the codebase and what's running on production, and we must ask the question "did the latest code get deployed yet?" or "who is responsible to 'vagrant push' this revision?" \- all of which can be avoided by letting the VCS workflow determine all of that.

I love vagrant for what it does best: simplify development environments. I fear that the "push" functionality is treading into unrelated territory. The problem is not what technically happens with a "vagrant push", but rather the idea of "starting deployments" (as you said) from individual developers in their local development context. In my opinion, developers don't initiate deployments; deployments _happen_ passively in response to code changes - assuming it passes any relevant tests/conditions.

</comment></comment></comment><comment><USER4> I'm having a hard time understanding what this does and what it buys me. If I am understanding correctly, they have added a new subcommand, but you pretty much have to make it do anything useful yourself (if you fall outside of their limited set of plugins). Is this a correct assessment?

<comment><USER3> This is correct. The benefit is technology abstraction for the developer. To use our own tools as an example: our open source docs is deployed to Heroku, our binaries go to Bintray, our services go to Atlas.

Now every developer at HashiCorp knows that you `git clone` any project in the company, and `vagrant push` to deploy. It doesn't matter how it works under the covers.

Example: We just changed Vagrant itself to `vagrant push` to deploy Vagrant: `vagrant push www`, `vagrant push docs`, `vagrant push release`. This all does different things.

<comment><USER5> > Now every developer at HashiCorp knows that you `git clone` any project in > the company, and `vagrant push` to deploy. It doesn't matter how it works > under the covers.

We already have a standard for that. It's called "make" to build, and "make deploy" to deploy. Put a Makefile next to your Vagrantfile like you should have done in the first place. :)

<comment><USER6> Sure :), but that's yet-another-thing you need to manage. You could put all that logic in a Vagrantfile. It's about reducing the number of touch points.

I definitely see your side of the argument, and we certainly have Makefiles in our projects too. Vagrant Push provides a way for an organization or team to choose what is best for them and lower the barrier to entry for developers on a project.

<comment><USER7> "OOH man, we have all these tools that no one understands anymore! I know, let's make a tool to abstract this away!"

git hooks are another option, as are shell aliases, SCM integration, CI/CD systems, etc. This seems like yet-another-layer-of-abstraction to cover for bad / misunderstood / underutilized abstractions under it.

</comment></comment></comment></comment></comment><comment><USER8> What happened to "one thing and well"? Vagrant is exceptional in what it does but I can't see why anybody should use it as their deployment tool among myriad of deployment tools.

<comment><USER3> I can understand the fear/confusion here. "vagrant push" is glue to real deployment tools. For example, Vagrant itself would never itself contain the full logic of something like Capistrano. But "vagrant push" will _execute_ Capistrano.

The idea is that Vagrant is a single workflow for development environments. "vagrant up" to work on any application, "vagrant share" to collaborate on any application, "vagrant push" to deploy (or start to deploy) any application.

EDIT: @ossreality: Your comments are showing up as dead. But I want to respond to you. As I mentioned here, `vagrant push` is glue to real deployment tools. How are you deploying your complex application now? You would hook up `vagrant push` to that. "vagrant push" itself is not a deployment framework.

<comment><USER8> Thanks Michell! I was worried Vagrant started heading in a different direction especially after reading the "This is a historic day for Vagrant" paragraph. Thanks for clearing it up.

</comment></comment></comment><comment><USER9> I love the VI setup.

We are currently using a solution called Jenkins which serves our purposes very well because of it's maturity and the flexibility that it provides. Other than the simplicity of the deployment command, after configuration, I fail to see the benefit of this tool, especially at such an early stage.

</comment><comment><USER10> I've watched the videos and read the docs, but I'm still a little confused about this feature. How does it know what files to push? Does it diff the base vagrant image? If my application has package dependencies, does it push those too? What about if I need to restart a service as part of the push?

<comment><USER3> Good question. It does a few heuristics depending on the strategy in use. But it has some VCS detection in it so if you're using Git it'll only upload files in the Git index (staged/committed/not ignored). There are also glob-based include/exclude filters you can specify. If all else fails, then yes, it uploads everything.

<comment><USER11> > it has some VCS detection in it so if you're using Git it'll only upload > files in the Git index (staged/committed/not ignored)

So... if I have some docs in markdown, and a server-config to serve static assets -- it'll upload the config and the markdown, but not the generated html/css/js? The idea is that the server knows what to do with the git repo?

Or am I just being difficult now? (I honestly can't really tell -- I also have a hard time seeing how to make use of this. Not that it matters - if it works for you, then great ;)

</comment></comment></comment><comment><USER12> FTP and SFTP are unrelated protocols, the "secure" version of FTP is FTPS. Sorry to be pedantic, but it is a little confusing. Does 'secure = true' enable FTPS or SFTP (which is actually a protocol over SSH)? I'm hoping SFTP, but then how do you enable FTPS?

<comment><USER3> Good question, it is SFTP. The reason we made them look similar is that we did some user testing and end users are used to FTP clients having just a checkbox for "Secure" (which is typically SFTP). We followed that model.

Under the covers, it is a completely different protocol.

</comment></comment><comment><USER13> I love the combo of vagrant and chef for provisioning. Is it possible to use the existing provisioning code in the context of a push block?

Very cool, I'm excited to try this out.

<comment><USER6> Interesting question. Vagrant push exists outside of the context of a provisioner, so I don't see what you would be provisioning in the push section. Chef will provision the VM, but the push strategy is pushing the contents of the current working directory to some external destination (like FTP or Heroku). Does that help clarify?

<comment><USER13> Makes sense. I am put-off by the complexity surrounding the initiation of host provisioning. Writing recipes is a breeze with berkshelf and vagrant. But diving into "real" provisioning tools is a pain for me.

There is a lot of churn in the provisioning and orchestration tools like chef and docker and others. The tension is between an inherent utility in these tools (it makes managing/deploying services easier!) and their desire to lock people into a platform. Vagrant captures a middle ground in the midst of that churn.

when you run 'vagrant up' for the first time, you end up with a provisioned host. Why not say that 'vagrant up' in a local vm is the same as 'vagrant push staging' to some random host. In either case we end up with something modeled by the vagrant file? I know other people would say no, but please consider going into competition in the dev-ops space as a wrapper to the churn, a nice abstraction on the ambitions of others. As an itinerant developer, I just want a Vagrantfile :)

</comment></comment></comment><comment><USER14> This is an excellent idea, thanks! We'll be sure to add Pogoapp support (should be nearly identical to Heroku)

</comment><comment><USER15> I find myself having to bring up my vagrant machine just so I can ssh into production/accessing the console. Can vagrant play a role here?

</comment><comment><USER16> yeah, more abstraction layers!

<comment><USER17> Is this ironic?

Because ignoring the "leaky abstractions" meme Spolsky pushed, all and every progress in computing has been thanks to increasing abstractions.</comment></comment>