Bad News: Google Is Doing The Corporate Future-Vision Video Thing - <AUTHOR> http://techland.time.com/2012/04/04/bad-news-google-is-doing-the-corporate-future-vision-video-thing/ <comment><USER2> Except like the Google Car and unlike the Microsoft future video with transparency, flexible, credit card computer displays, and unlike Apple's Knowledge Navigator, Google has functioning devices.

Self-drivable cars hade been around for years. What's different about the Google Prius versions is that they look almost practical, if you squint just a little bit, just minimized the sensors a little bit more it could even fit within a car's stylish exterior. In contrast, some of the past versions were very slow driving and had a truck's worth of equipment in them.

I really think this is a false comparison (to other corporate future videos). Google may release a product that fails to gain adoption, but they will release something.

BTW, go search youtube for AT&T's "You Will" campaign with Tom Selleck. They got a lot of stuff right.

<comment><USER3> Apple can test new phones and new phone prototypes pretty easily. Hardware can be hidden in new cases, software can just not be shown to other people.

Google tested self-driving cars for quite a while; it was only when the NYTimes was about to write a story about it anyway that they publicly released information.

I would assume these glasses are going to be pretty difficult to hide from the general public when the team is out testing them. If I were them I'd rather release information they want to the public instead of a random blogger getting a photo and kicking up a firestorm of interest.

<comment><USER4> Yeah you never want a firestorm of interest around new products.

<comment><USER3> But it doesn't look like it's a new product at all; it's just a prototype they want to test in public.

</comment></comment></comment></comment><comment><USER5> interesting that a lot of people don't get why this is bad news.

it is all about expectations, this is still about a product that google wants to make money of. this video now tickles the fancy of nerds all around. read the comments and you see things like 'all it needs is a direct to brain interface' or 'i will buy all iterations of it'. the problem being that google will not be able to deliver on this concept video, not for the first iterations at least. just look at how long it took for the iphone to reach its current state, with apps, etc.

the iphone launch is the perfect counter-example to concept videos. do not build expectations by releasing concept videos, do not build up _false_ expectations full stop. release and proclaim this. is. it. then see how you build upon that. even apple stumbles, siri being a case in point of reality not matching the aspirations.

nothing worse than releasing a great product that just sucks in comparison to the grand concept videos that didn't have to take into account things like battery life, difficult background/lighting situations, safety rules, etc.

concept videos take up energy you should spend on the actual product, the one people will actually need to pay money for.

<comment><USER6> On the other hand, the latest mantra of the startup world is to build MVPs and iterate quickly.

What is wrong with getting the conversation started? Is it wrong to write science fiction novels, for example? I for one enjoy reading science fiction.

The one thing that bothers me about the video is that it seems rather unoriginal. The thing you'll do with these glasses is check in at your coffee dealer?

<comment><USER7> Exactly. The startup method of MVPs is not universally true for all creators and visionaries. It's just more true for readers on HN because we tend to have limited resources. Compared to say, Google.

<comment><USER6> If I had a huge company, I would probably try to operate the departments like little startups. It is probably really hard to avoid the drudgery of bureaucracy and whatnot in big companies. Having more resources could be a curse.

Therefore I think MVP might have merit even for large corporations.

Also, studies seem to show again and again that nobody can predict the future success of a product, which would speak in favor of MVPs even for big corps.

<comment><USER8> This is very tricky to do. Once you are part of a big company you are risking more than just your small startup.

There is brand risk - if a startup makes a bad product, then petfud.ly looks bad. If MS Startup Division does, MS looks bad.

If a startup makes a bad product that kills people (or they take on risky contracts with a big downside), they get sued out of existence. If some small division of MS does, MS gets sued out of existence.

Big companies are less agile for a good reason. They have a lot more to lose.

<comment><USER9> I think there's a way around this. For example, YouTube has remained a relatively separate brand from Google so I think things they do wouldn't reflect back on Google as much.

One company I think is _really_ good at this is Amazon. IMDB, dpreview, Audible, Zappos, Woot, and Endless all have maintained their brand fidelity while also benefitting tremendously from Amazon's technology and assets.

Even negative press for Amazon's Web Services doesn't really impact the Amazon brand in most consumers eyes, which is pretty amazing in my opinion.

</comment></comment></comment></comment></comment></comment><comment><USER10> From a pure Speech Recognition POV, I will believe Google Goggles is possible when they somehow solved the major problems in Speech Recognition. SR tech has been around forever, but only in the last few years have companies been able to process it on the server side and then zap it over a wireless connection to get somewhat OK processing times.

But no one has yet to solve the two problems plaguing SR: First, putting a whole SR engine on a machine let alone on a pair of embedded chips on a piece of eyewear for instant SR. Even with miniaturization and speed/power improvements I just don't see it happening mainly because chip makers have decided to just add more cores. I may be wrong but it seems difficult to parallelize this with a large corpus.

Obviously the solution is to go the other way and have super fast guaranteed wireless connection at all times. This will still produce lag but probably acceptable levels for most people.

The second problem is one that most people encounter with SR which is when the bloody thing doesn't translate what you said. Either because of an accent or because you're saying something unique or difficult to parse. I tried asking directions to a Mexican place in OC and the results were: Q Cortes, cute protcullis, cute Portos, Q Portales. Can you figure out what I was trying to say? That is the inherent difficulty of the "last mile" problems that SR has and I haven't read or heard anything about anyone solving this anytime soon. SR tech will always be just "good enough" where they can show it off at a meeting/conference but never good enough to be like Star Trek (which unfortunately has set a incredibly huge bar for people's expectations).

Even though the Nokia video is less ambitious they seem to have decided to not include any talking in their future tech videos which seems like a smart idea to me.

<comment><USER11> _From a pure Speech Recognition POV, I will believe Google Goggles is possible when they somehow solved the major problems in Speech Recognition._

I think one could take the form factor and have an awesome product without speech recognition. The potential for AR games alone is compelling. Real time translation of foreign language signs would be useful. Tourist guidebooks would be great. HUD for maps/gps alone could be a viable market.

</comment></comment><comment><USER7> Man, what a debbie downer. This article coming from a guy who tweeted, "It's April 1st. THE SINGLE LEAST FUNNY DAY ON THE INTERNET."

Maybe it's just because I've seen the actual effort and the basic research being done by those tinkerers at Google, that it seems real to me. I know a phd student who has spent the past 1.5 years without his professor because he was away at Google working on this (Babak).

This writer just seems like he is stirring the pot though. Unless he has supreme insight into Google's go-to-market plans, or even basic research for that matter, I don't get why he feels entitled to shoot down another person's vision. While others daydream, semi-journo's abound whose only existence is pointless contrariety.

</comment><comment><USER12> Should i tell you how these videos get made at Microsoft? The MS Office division has a million left in his marketing budget "Why not make a cool futuristic video?" When they are hyper futuristic they are just Marketing. Look at us we are visionary and innovative.

Google has a prototype for a concrete product and tries to show us what the idea behind this is. Like Microsoft they also have the money for an expensive video.

Look at the difference between Google Cars, with a prototype and a clear value proposition and this Toyota video <http://www.youtube.com/watch?v=Q4k0i0c2LWw> where nothing makes sense at all.

<comment><USER13> The boldness of future videos in terms of style seems to have increased quite a bit since the invention of CGI.

</comment></comment><comment><USER14> What irks me is the painfully studied hipness of the video.

Indy bookstore? Check.

Ukulele reference? Check.

Food truck? Check.

Brooklyn location? Check.

Late 20-something SWPL protagonists in man-boy phase of life? Check.

Ugh.

<comment><USER15> It was pretty obviously Manhattan. Hip Lower Manhattan, but Manhattan.

<comment><USER14> Sure, the Strand is in lower Manhattan, but you're telling me a video that features a food truck and a uke book doesn't START in Brooklyn?

10:1 the apartment was in Park Slope.

<comment><USER16> That's not really reconcilable with the guy using the 6 train stop at 23rd and Park.

</comment></comment></comment></comment><comment><USER17> The other side of this argument is that what Google is doing here is closer to what MS did with Kinect -- get visibly attached to a groundbreaking original new product it has confidence it will bring to market.

The Project Natal concept/intro video similarly overpromised when you look at the first wave of Kinect but the product itself is still crazy revolutionary and the intro did build the hype and attached the tech unmistakably to MS.

<comment><USER18> This is actually a good point.

Hm. The concept video was released a year and a half before release. Microsoft obviously had to announce it, so third party devs could support it. But if you watch the video so much stuff is bullshit! ^^ Also it gave the competition a chance to react to it (Playstation Move? I don't own either and don't know which wave-your-hand-stuff is working better or has better games.)

Natal Project: <http://www.youtube.com/watch?v=IAFbWE_5GvA>

Comparison by CNet: <http://www.youtube.com/watch?v=DeJkPN2smB8>

It certainly built hype (but also derision. I remember many wouldn't take it serious and as hyperbole). I think Kinect would have been successful in a more truthful presentation. Like if Microsoft had done an Apple-like reveal and only shown the real product two months before release.

</comment></comment><comment><USER19> This is not the future I want. I already got into the habit of not researching things myself but rather finding a quick answer on Google. Now they take this approach into the real life. You need to go somewhere? Google will carefully plan a route for you. Their eventual goal is to route us throughout our entire lifes. No, thanks.

<comment><USER20> I agree with this completely, I'm beginning to believe that these 'cool' and 'innovative' gadgets are beginning to strip away at the individual's creativity and existence.

I'm not saying this technology wouldn't be cool or awesome to use, I just don't see it benefitting the majority of humanity in the future.

<comment><USER21> > _I just don't see it benefitting the majority of humanity in the future._

What do you mean by "benefit"?

There's a lot of stuff which has very little benefit if you define benefit in certain ways.

With luck the trickle down (people becoming rich from creating these gadgets; concentrations of very smart people in California; etc) could be used not only to explore deep oceans but also to create smart innovative tech for developing world problems.

It'd be great if Google (for example) had a developing world think-tank.

</comment></comment></comment><comment><USER22> Odd that this received a 'bad news' in the title. The Glass video got me excited about not needing to carry around GPS, a phone and other unnecessary gadgets, wearing only the glasses I already require. Also, the writer doesn't know what is currently happening inside Google X.

<comment><USER23> But all the things shown in the video already are available in a top-of-the- line smartphone. The only difference is that you don't need to pull it out of your pocket. That's just a small improvement if you're into that kind of thing. What I did miss was actually augmenting reality enabling me to do _new_ things, to perceive the world around me in ways I cannot do now.

For example, given my preference in clothing and my body measurements, when shopping in the city I would like to "block out" somehow all those shops than probably don't have anything for me.

Or while cycling, I would like to seen an indication how fast to drive the next section to not have to stop for the next traffic light. I often have to stop for a red light to immediately start up again because the light turns green. I hate that.

Or when I am working in my garden I would like to see some helping lines and measures to dig straight lines, or to cut my trees at the best spots for it to grow out nicely next summer. Or to be able to sow seeds at the optimal distances from each other.

And so on. What kind of _augmented_ reality do you want?

<comment> eric-hu But all the things available in a top-of-the-line smartphone were already available in a laptop. The only difference is that you don't need to pull it out of your backpack. It's just a small improvement if you're into that kind of thing.

I could go on, but my point here is that improvements are incremental. Having a desktop has been more convenient than a terminal remoting into a mainframe. A laptop is that much more convenient over a desktop, and likewise with a smartphone.

<comment><USER18> But always wearing glasses is certainly not more convenient than just using a device when you need it. It is like stripping your Smartphone on your wrist so you don't need to pull it out of the pocket.

Also I doubt the vision will work that good like in the video. Just a detail: Imagine the battery constraint of an always-on and always-connected device! The glasses would be heavy!

And second I find the Google googles vision more scary than awesome. Like someone quipped on a former thread "why would an advertising company would want to put a filter between your eyeballs and reality?" And while I understand that many would love a more cyberpunk-like future it frightens me. Imagine the amount of pointless distraction to always have a newsfeed in your visual field! Imagine the procrastination of people always lurking reddit or facebook or hackernews! You know how incredible rude it is when you are talking to people but they are checking their phone? And last not least: Imagine getting used to the glasses and not functioning without it anymore!!

<comment><USER24> > _But always wearing glasses is certainly not more convenient than just using > a device when you need it._

I take it you don't wear glasses. Many millions of us do. All day, every day, our entire lives. It's in no way inconvenient.

</comment></comment></comment></comment></comment><comment><USER25> Visual interface won't work for this sort of thing.

Glasses are too close to the eye and multitasking will require constant focus racking, which will tire the eyes and produce headaches. Elements displayed in stereo will require very precise calibration to the user's face geometry to prevent ghosting or eye strain. Elements displayed in one lens only will appear transparent.

Even if the tech issues are solved perfectly, humans do not multitask visually when moving; this is why heads-up displays are not common in cars despite the technology being easy. It distracts more than it helps. HUD works in planes because there is no immediate danger of collision when flying, so pilots can focus just on the HUD for extended periods of time.

Humans in motion multitask across senses, not within senses. Most people can walk and talk no problem--but walking and reading is a lot harder. So, the future of wearable computing is probably a wearable computer that listens and speaks.

And it's here now: a smartphone with an earbud is a wearable computer, and it's proven successful in the marketplace. To be truly useful, it will need to volunteer interactions the way the Google glasses do--but to do that well, it will need to be listening at all times, and understand when information is welcome and/or needed. Right now that is not possible with current levels of battery and speech recognition technology.

In the far, far future I could see visual communication multi-tasked into everyday life. It will take a lot of societal changes for that to happen though. I like the portrayal of "picting" in Greg Bear's EON series.

</comment><comment><USER26> If Apple started releasing videos like this it might be revealing. For Google it just seems like the kind of out-of-character "mistake" they frequently make due to their less strict and more decentralized nature.

<comment><USER27> If you do something frequently doesn't that make it part of your character?

<comment><USER9> I think he's arguing that Google has less of an established character because they've put less effort into establishing one than Apple -- they're more a bunch of teams working for the same company than one company.

I agree with this point, but I think Google is moving away from this, which I think will be healthy in the short term and unhealthy in the longterm. Focused companies need focused leaders. I think Larry Page is filling the Steve Jobs role nicely right now, but if he falters the whole company will falter with him.

<comment><USER27> Maybe it's just me but I think that Google has a pretty established culture - tech led, try lots of stuff, beta early, don't be afraid to kill projects that aren't working.

Page has certainly done a good job focusing the company more but I think it's premature to suggest he's in the Steve Jobs mould. He's been in position for 12 months, Google simply isn't as built in his image as Apple was in Jobs. I'm not talking about quality of thinking, leadership, intelligence or anything like that, just the sheer extent to which Jobs had asserted his will over Apple and it's culture.

</comment></comment></comment></comment><comment><USER6> TL;DR: guy is dissatisfied that Google is not Apple.

</comment><comment><USER28> Why bad news? Realy nice video. I dont't need that to enjoy any moment of my life, but may help another people to do so. Why not?

</comment><comment><USER29> If i had a new product, i would MVP it until it reaches success and iterate until that point, not spend millions on it upfront. Sure its a nice product, but great inventions will sell themselves if the people find it useful (and can afford it) as long as you inform people that it exists.

</comment><comment><USER30> This reminds me of the article gruber wrote late last year about the types of companies that make future concept videos.

[http://daringfireball.net/2011/11/companies_that_publish_con...](http://daringfireball.net/2011/11/companies_that_publish_concept_videos)

</comment><comment><USER31> I think this is rather unfair as the main difference here is that Google has demonstrated an active commitment to technologically groundbreaking projects, namely the robot car. While it has not been brought to market either, it is clearly an advanced prototype.

</comment><comment><USER9> Bad news?

I think it'd be cool if contributors were encouraged to remove blatant opinions from flame bait headlines. I think this would show more respect to our intelligence and openness as a community. I value the discussions on hacker news more than the articles themselves and I think it's too bad that this discussion started out with a biased tilt.

I think something more like "Google made a future vision video" would have been a more appropriate headline. Then, if the community actually thinks it's bad news, they can comment on the story and say so. I'd rather discuss plain facts than the opinion of a time magazine article.

</comment><comment><USER32> Google makes those videos for a long time now and usually they actually make it happen. I think just because you know some situations where it didn't work, it is not correct to assume that it is always a bad idea. Very likely we have a lot of high tech stuff today because of this kind of videos. It's just a way of presenting your idea in a quite understandable and exciting way. There are of course other things like Powerpoint slides, blog posts and so on, but in in the end what you do just depends on your budget and your available skillset.

<comment><USER33> _> Google makes those videos for a long time now and usually they actually make it happen._

Do you have have links to any of them handy? It would be interesting to compare the concept video to the real product.

</comment></comment><comment><USER34> There seems to be a lot of hate for this. I like to applaud companies for making videos like this. Regardless of if it'll make the market in 2-5 years, it inspires the imagination. It gets you thinking "If that is possible, I wonder what else is possible" And then the ideas just flow. Same even goes for that MS video with all those flat transparent screens. It really gets the creative juices flowing with what can be done. Even if it just sparks you to think of something completely different from what they show you. I like it.

</comment><comment><USER35> Can I get them with a prescription? :/

</comment><comment><USER36> Exactly. If Google wasn't on a path to disappoint everyone, they would make claims about their new product, and then release the damn thing a month or so later so consumers could actually experience it (like any Apple release). Instead, Google pre-hypes this thing with no announced plans to release it. I think we can all assume that either the technology isn't quite as good (yet) as it seemed in the video.

<comment><USER37> Poor disappointed consumers. You mean I can't use this yet? But I want it naaaooowww!! SIRI! Remind me to make a whiny blog post about this after my afternoon mochaccino!

First world makes me sick sometimes

</comment></comment><comment><USER21> About speech recognition:

Google has very many computers. Google has many smart people. Google knows how to wrangle large data sets.

Google also has a bajiliion customers, and those customers are used to jumping through various hoops. Google could get many people to speak words from a dictionary; and then wrangle that data to improve speech recognition. (I'd be interested in differences between languages and quality of recognition.)

<comment><USER38> Google's speech recognition on their voicemail-to-email interface is comically bad.

<comment><USER39> I'd have to second this - it used to really frustrate me but now I keep using Google Voice because their transcriptions make for some great comedy. They are always painfully off but constant entertainment.

</comment></comment></comment><comment><USER40> I tend to think of videos like these as creations that are maybe technically possible today, but not in a package that's affordable, and compact enough for general sale. It's like Pixar making some of their movies. They'd save the production of some scenes till the end of production because they presumed the technology they'd need to pull off what they wanted to do would be available by then.

</comment><comment><USER41> I think the real bad news here is imagining a world where everyone is walking around the city talking to their glasses.

<comment><USER34> Still better than talking to their phones? siri...? bluetooth earpiece...?

<comment><USER42> Nobody talks to Siri.

</comment></comment></comment><comment><USER43> for a guy that spends most of it's day working on a laptop, I really don't see the need for yet another screen. This google thing just seems an excuse to become a road kill. Multitasking all the time just seems to be incredible tiring. (from someone that recently ditched his smartphone for is old regular phone)

</comment><comment><USER44> Google responded to the buzz - Sergey appeared wearing'em [http://www.engadget.com/2012/04/06/google-project-glass- serg...](http://www.engadget.com/2012/04/06/google-project-glass-sergey-brin/)

</comment><comment><USER45> Except they do have the product in their hands right now. They are testing it.

<comment><USER18> But it is nothing like in the video.

<comment><USER46> Siri is nothing like in the video, either. But saying "is nothing like" is exaggerated anyway. I'm sure it's not 10x worse in reality, but pretty close.

</comment></comment></comment><comment><USER47> Let's hope it works better than my Apple Knowledge Navigator <http://www.youtube.com/watch?v=8mLqJNDWx-8>

<comment><USER33> 1987\. Right when Apple was starting to fall apart under Sculley. I think you just proved his point.

</comment></comment><comment><USER48> I feel Nokia's video, in the article, is much better than Google's, mainly because the hero protagonist doesn't speak.

<comment><USER18> Well … our heroine does not only not speak, she does really nothing. She wakes up only to crawl out of the bed and lie down on the couch. And then she relaxes in the garden. While she is stalked by a guy. And only replying with smilies! (I guess she is just not that into him. Or Nokia didn't foresee in 2009 stuff like Siri.)

</comment></comment><comment><USER49> With a simple difference: Google executes their vision faster than Microsoft's and Nokia's future visions.

</comment><comment><USER50> Imagine "Enlarge your member" and "Buy viagra now" popups on these devices :)

<comment><USER51> This is kind of a funny rework of the Google video along those lines:

<http://www.youtube.com/watch?v=t3TAOYXT840>

<comment><USER52> I think it would be something more like this:

<http://www.youtube.com/watch?v=_mRF0rBXIeg>

</comment></comment></comment><comment><USER53> usually this sort of things aren't going anywhere than the labs.</comment>


Ask HN: Idea for a blog: whydontwehaveityet - <AUTHOR>

So seeing that -2F superconductor story a few days ago.  I got to thinking, someone really needs to follow up on this story and see if anything comes of it.  And there are all kinds of articles where they hype some new technology that we're supposed to have in 5 years.  I think it would be an interesting blog to do investigative type reporting to talk to the people involved in inventing and commercializing these things and find out what the hold up is, how well they're actually coming along, possibly even what people can do to help.
Here are some technologies I'd like to see covered just off the top of my head:
Reservatrol
Anything with stem cells
Carbon nanotubes
That -2F superconductor
That super capacitor mentioned a few years ago (estor?)
Memristors
Some super efficient way to process titanium I heard about (we were supposed to have super cheap titanium by now)
Anyway, just wanted some general feedback on the idea.  I'm probably too shy to do it alone, I wouldn't want to be calling strangers all over the world to track down the technologies.  But I'd be happy if someone else picked up this idea and did it. <comment><USER2> Check out Technology Review (TR) published by MIT. I was a long-time subscriber.

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

<comment><USER3> Yes this is good thing, but I think the issue is trying to understand how the technologies are maturing. TR doesn't follow through on most of the technologies it features.

<comment><USER2> Yes, I agree. I wanted to point out that their initial reporting on technology is superb.

<comment><USER3> agreed.

</comment></comment></comment></comment><comment><USER4> Sounds like a job for "crowdsourcing." If you can't reach original sources, perhaps you can get responses from people who know people, work in the same field, etc.

Like a Science HN. I guess there's a Science Reddit now ("I'm a stem cell researcher--ask me anything").

Edit: Maybe that's what we really need--Reddit with only "I'm a" posts from qualified, authoritative sources. Of course that's what rating systems are supposed to be for.

<comment><AUTHOR> that's a good point. Maybe if I used crowd sourcing I wouldn't have to call anyone.

</comment></comment><comment><USER5> Funny, I was thinking about almost exactly the same topic just yesterday. Much of the problem absolutely has to be patents. I have several awesome ideas which I will never put one second of effort into because I know I would get patent trolled to death and none of them are software related.

If we TRULY wanted to evolve mankind at the fastest rate possible, we would instantly share new discoveries and methods and allow anyone to use, profit or build upon them with no restrictions. The conundrum is that, while this greatly benefits mankind, the inventor gets the proverbial shaft. Sadly, I don't see this problem being solved any time soon.

</comment><comment><USER6> That's an interesting idea. Maybe we could use some interesting automatic means to "cluster" information from these new technology areas. Suppose a system allowed someone to create a new technology area by defining all the entities involved in it (Names of people, research center, location of research center etc). A web crawler could use these as filters to pick out the latest info from it and supply it to the interested folks.

<comment><AUTHOR> That's a cool idea.

</comment></comment><comment><USER7> Not as high-tech, but that Power Mat [1] device seems like a good example. I remember reading about it a few years ago, and just saw the first commercials for it this week.

Its a good premise for a blog, and would have plenty of topics. Like all blogs, it would depend on whether you stuck with it long enough to get in the groove.

[1] <http://www.powermat.com/>

</comment><comment><USER3> It's a very nice idea actually. I'd contribute to it. What happens in most cases is that that one of the party (researchers, PR, ....) has oversold the potential product in the first place. Another part of the story is that in the process of maturing, or increasing their technology readiness levels (TRL) some technologies just don't make it because they do not find a niche market to evolve in and grow.

</comment><comment><USER8> _That super capacitor mentioned a few years ago (estor?)_

Someone periodically comes up with a new longer lived/more potent battery or a very compact capacitor. The problem is not making such devices. The problem is making them safe and cheap to manufacture.

</comment><comment><USER9> Here's another suggestion: wireless electricity. There's the new Sony wireless tv but it's an idea that should've picked up way more than it has, especially for stuff like cell phones.

</comment><comment><USER10> Flying cars; medical tricorders; food replicators; space vacations; gravity boots; anti-gravity boots; Rosie the robot; basically, anything from Star Trek or the Jetsons.

<comment><USER8> _Flying cars_ \-- this deserves it's own blog. Or perhaps blog/ghetto would be a better way to put it. Or maybe just a single Snopes-like blog entry that people could permalink to whenever this comes up.</comment></comment>


Test Anything Protocol - <AUTHOR> http://testanything.org/ <comment><USER2> I looked into TAP a while ago, but had a couple of problems with it:

1) The whole point is to allow language/harness agnostic tooling, but the only tool of note seems to be smoulder. Everything else seems to be trivial things like showing pass/fail with emoji tick/cross symbols, etc.

2) The TAP standard allows tests to be numbered, and a total count to be given up-front. In practice, all tools seem to _require_ this, and barf when given unnumbered tests. This makes TAP _far_ less useful, since it requires some global coordinating process to know how many tests we're going to run.

I was interested in TAP since I could write test scripts in any language which spit out a simple format to stdout, and they could be nested; e.g. we can have an overall "test everything" script which runs the test script for each of our projects/repos; projects might choose to have different scripts for unit tests, functional tests, integration tests, etc. and those tests might be spread across many files. Ideally we shouldn't have to care about any of that structure. With TAP we need some way to count the tests before running them (or else we have to wait for all of the tests to finish first, which is naff); this requires some sort of declarative structure, at which point our scripts can no longer be opaque black-boxes, so we might as well use a "proper" test harness like xUnit.

<comment><USER3> You can output the expected number of tests afterwards, rather than before.

<comment><USER4> Was going to reply this too. The idea of TAP was to allow tests to be streamed too. So in theory a producer could output/emit events of test results. And a consumer would be able to parse/interpret the results. Upon a number like 1..2, it would know that the test set is done.

It gets more complicated with subtests, but that was part of TAP 13 I think, which wasn't formally released.

</comment></comment></comment><comment><USER4> TAP is something that I invested a lot of time years ago, but nowadays I rarely have time to maintain any project, or contribute to the project (which is active on GitHub now [https://github.com/testanything](https://github.com/testanything), but before we had only a Wiki that would be offline and be restored from some backup a few times :)

This is what I ended up being involved with:

\- Joined the mailing lists, and updated the Wiki. Eventually joined the new GitHub org

\- Created tap4j, using an existing implementation as reference (contacted the author, who helped with some questions too) [https://github.com/tupilabs/tap4j](https://github.com/tupilabs/tap4j)

\- Created instanttap to validate the TAP streams - [http://instanttap.appspot.com/](http://instanttap.appspot.com/) (surprised it's still working)

\- Created Jenkins TAP Plugin

\- Updated Jenkins TestLink Plugin to support TAP

\- Wrote a quick producer for GoogleTest [https://github.com/kinow/gtest-tap- listener](https://github.com/kinow/gtest-tap-listener)

\- And wrote a few articles and presented the solution and/or TAP in conferences

\- And created the reddit r/testanythingprotocol subreddit to collect links I found about TAP

IMO, TAP was going in the right direction. If it had been adopted by Python or JUnit, it would be much more popular now.

<comment><USER5> > TAP was going in the right direction.

That statement says a lot, coming from someone who's spent effort in developing the ecosystem around TAP. It confirms the general feel of the thread, that some aspects are missing or can be improved, for it to be a full- fledged, scalable testing protocol.

When I discovered TAP, its simplicity was so refreshing. In the particular project where I learned about it, the implementation was a single file, a snippet really, included in the tests folder. No dependencies, with such a small interface. I was able to whip up my own tiny tester, and have used it (or similar ones in other languages) over the years.

In a way, I'm glad the protocol stayed small. There are many feature ideas in this thread, and some do look useful (or essential even) - but I find great value in the stability of the spec, it's kind of timeless.

</comment></comment><comment><USER6> The sharness[1] project originated from the Git project and is a really great and easy way to write tests using shell. Its output is TAP-compatible, so you can use `prove` to verify sharness tests.

[1] [https://github.com/chriscool/sharness](https://github.com/chriscool/sharness)

</comment><comment><USER7> TAP is fantastic for testing your Postgres database (indexes, views, functions, triggers, etc.) without depending on any specific client language: [https://pgtap.org/](https://pgtap.org/)

<comment><USER8> PgTAP looks interesting. Can you mention some use cases and interesting things that it caught?

The same author also wrote a port for MySQL:

[https://github.com/hepabolu/mytap](https://github.com/hepabolu/mytap)

<comment><USER9> It's unit tests for PostgreSQL, so pretty straightforward use cases. I've definitely caught a lot of edges, type confusion, and refactoring opportunities with it.

Here are some pgTAP examples from my work:

pgsodium: [https://github.com/michelp/pgsodium/blob/master/test/test.sq...](https://github.com/michelp/pgsodium/blob/master/test/test.sql)

pgjwt: [https://github.com/michelp/pgjwt/blob/master/test.sql](https://github.com/michelp/pgjwt/blob/master/test.sql)

metagration: [https://github.com/michelp/metagration/blob/master/test.sql](https://github.com/michelp/metagration/blob/master/test.sql)

</comment></comment></comment><comment><USER10> I'll always support more testing. Software Quality is something I think needs all the help it can get.

I'm not sure why I would use something like this, even if it were available for my language (Swift), when I have a robust testing framework (XCTest).

In the past, my team used to use Google Test for testing C++. It was not as powerful as platform-native frameworks, but did allow us to have cross- platform unit tests.

In any case, I tend to prefer test harnesses over unit tests. I write about that here: [https://medium.com/chrismarshallny/testing-harness-vs- unit-4...](https://medium.com/chrismarshallny/testing-harness-vs- unit-498766c499aa)

</comment><comment><USER11> I looked at TAP when I had to implement a testing tool for my own language. In the end, I didn't really see the point of using TAP. Is anyone using it outside Perl? What are its specific advantages compared to using common testing libraries?

<comment><USER7> Same motivation as JUnit, I guess: it's a common protocol that different testing tools can all agree to speak/understand.

<comment><USER12> What's the advantage? While a common protocol at first glance sounds nice, I'd imagine the devil and validity of any test is in the actual implementation. So TAP, as far as I can tell is just a BDD spec.. which basically just amounts to some lines of text for someone to write BDD against.

Am I missing something? I was actually recently looking into BDD-like tools recently, so I feel like I'm a potential user for TAP, but I just can't grok the value add in it offhand.

 _edit_ : oh, maybe TAP is the inverse of what I was thinking. It's about _output_ of test suites, for common post-test tooling? Aka to give statuses about the state of tests?

</comment></comment></comment><comment><USER13> I actually randomly wrote my own TAP producing test runner in TypeScript recently for no reason other than I wanted something to do while I was stuck at home during the pandemic. The protocol is pretty simple to follow although I do agree that you have to have something to orchestrate the whole thing up front. I actually wrote it for an example script for an asynchronous utilities library that had the equivalent of low level primitives like an async version of locks and barriers. The barriers were useful for orchestrating when the different tests ran so that I could make sure that build up and tear down happened at the right time before and after the tests. The locks insured that each tests logs didn't print over each other as I proxies the console and ran the tests all at the same time and then I did the logging sequentially. I got most of it working but I haven't touched it in about a month or two. I feel like it might not be a good thing to have those lower level paradigms in JavaScript just because it seems a bit like a foot gun. I'm also pretty certain it wouldn't work in parallel programming situations just in async situations. I based my TAP producing test runner off a previous work I did in modifying a testing framework that Ryan Florence made in the size of a tweet. I modified it to support async functions [1]. I had to use the async lock in that one too.

[1]: [https://gist.github.com/johnsonjo4531/d751d7b63576a50878c977...](https://gist.github.com/johnsonjo4531/d751d7b63576a50878c9772ad9b12a01)

</comment><comment><USER14> I like it a lot, and am surprised I didn't know about it considering I've been looking for a dead-simple git + Makefile + shell script + (chroot or Docker- like) container + simplistic topsort-prio'd shell runner pool + minimal Web UI solution for CI for some time now, of which this could totally be an adequate part to comprehend and render test reports. As a protocol, it might benefit from some enhancements, such as capturing and linking to detailed test result output files for failed tests.

</comment><comment><USER15> TAP is a neat protocol, and I use it in a few of my projects. I was drawn to it because of Automake's built-in TAP support. It took a lot of work out of including a test-suite that "just works" with the "make check" and "make distcheck" targets.

So TAP is great if you're making an Autotoolized project. Although given that Autoconf's release team has abandoned Autoconf, maybe good Autotools support isn't as important as it used to be.

</comment><comment><USER16> I prefer Cram [1] or mdx[2]

[1] [https://pypi.org/project/cram/](https://pypi.org/project/cram/)

[2] [https://github.com/realworldocaml/mdx](https://github.com/realworldocaml/mdx)

<comment><USER14> I guess the projects you mentioned are complementary, in that TAP as I understood it merely specs the output stream/protocol that a test run is expected to produce and isn't limited to testing shell scripts, whereas cram/mdx appears more like a user acceptance test convention specifically for shell script code as component-under-test, much in the spirit of "behavioural" testing a la jBehave.

<comment><USER17> just want to clarify that the program-under-test in cram can be written in anything, as long as it's executable and produces some outputs (stdout, stderr (or any other file descriptor, really), files, exit code). right now i'm using cram to test a program written in F#.

it's true that cram shines in tests for programs written in sh/bash/zsh, where you can output the command lines your PUT consists of (while | instead of) running them and then have cram verify that your program composes expected commands.

git-pimp.zsh is an example of an early approach: it runs its commands through a helper which uses $GIT_PIMP_CHATTY and $GIT_PIMP_DRYRUN to optionally output the given command line and whether to actually perform it, respectively. the helper is a function called "o" ([o-impl]) which makes the code look a little like a bullet list ([o use]).

[0120-output.t] sets git-pimp to skip execution of `git mailz` and `review- files` invocations, and echo any `git format-patch`, `git mantle`, ... invocations (regardless of whether they're dryrun or actually executed).

[0120-output.t] [https://github.com/roman-neuhauser/git- pimp/blob/master/t/01...](https://github.com/roman-neuhauser/git- pimp/blob/master/t/0120-output.t) [o-impl] [https://github.com/roman- neuhauser/git-pimp/blob/master/s/gi...](https://github.com/roman- neuhauser/git-pimp/blob/master/s/git-pimp.zsh#L39-L60) [o-use] [https://github.com/roman-neuhauser/git- pimp/blob/master/s/gi...](https://github.com/roman-neuhauser/git- pimp/blob/master/s/git-pimp.zsh#L218-L245)

`o` was a stepping stone and inspiration to [fake]. this is an external command (as opposed to a shell function), so it cannot stub out shell functions, but it provides greater control over the behavior of mocked command lines. eg. one can mock out `rm -rf --no-preserve-root /` but leave all other uses of `rm` to the actual command, define any combination of exit codes and outputs of particular invocations or prefixes, or provide custom implementations for same. if you ever scripted any destructive, hardware- or network-dependent code (ip(8), fdisk(8), ssh(1)), [fake] can help write sort- of unit tests that do not require expensive setup. as always, mocks and stubs are dangerous, and i'm not claiming this is bullet proof, but it's still very useful.

[fake] [https://github.com/roman-neuhauser/fake](https://github.com/roman- neuhauser/fake)

<comment><USER18> You didn't say anything about the output structure of these testing tools. That's the topic of this discussion, not the tools per se.

</comment></comment></comment></comment><comment><USER19> It happens that I was in need of a TAP v13 parser for Go the other day, and I didn't find one that met our needs. So I wrote one; maybe it's useful to someone else, too:

[https://github.com/mpontillo/tap13](https://github.com/mpontillo/tap13)

TL;DR: it takes TAP output (in the form of a []string, one string per line) and produces a Results struct containing an array of Test structs. The goal was to sufficiently parse the TAP output so that it could be transformed sufficiently for storage in other systems.

</comment><comment><USER20> Better, Tap-Y/J

[https://github.com/rubyworks/tapout/wiki/TAP-Y-J- Specificati...](https://github.com/rubyworks/tapout/wiki/TAP-Y-J- Specification)

</comment><comment><USER21> I can't find anything about _why I would want to use it_ over any of the hundreds of other testing frameworks out there. How does it compare to xUnit? Is it even the same type of thing? Do any of the links lead to non-trivial examples?

<comment><USER15> TAP isn't a framework, it's a specification/protocol. Sort of like how HTTP isn't a webserver, it's a protocol that a webserver can speak.

TAP is more about the question of "how does a test suite report success/failure to whatever launched it", and all it describes is what the test-suite should report on stdout. It doesn't offer any opinions about language or implementation.</comment></comment>


Show HN: Easily move between cloud storage (S3, Backblaze, OneDrive, etc.) - <AUTHOR> http://movebot.io <comment><USER2> If you prefer open source tools you can run yourself then rclone will do exactly this.

[https://rclone.org](https://rclone.org)

(rclone author)

<comment><USER3> I bet they're using exactly your tool internally ;)

<comment><USER4> As awesome as Rclone is, and we agree it serves a purpose.

We can assure you that MoveBot is built on its own and does not use Rclone in anyway.

</comment></comment></comment><comment><USER5> Hmm. So let's say I have some (3) TB of data in S3 and I need to migrate it to GCP. Before this service I would have had to spin up a machine on AWS/GCP (or piggyback on some other machine already running there) and used rclone or something to do the transfer.

The costs then would have been:

\- Egress (per TB)

\- Machine cost (per hour)

\- Work setting it up

With this service my costs are now:

\- Egress (per TB)

\- Movebot (per job + per TB (+ per month))

So basically I'm trading the machine-cost and hassle for the per TB cost for Movebot.

If this is a one-off/not regular thing for me, I'll probably go with the standard Movebot plan. That would cost me 255 USD (15 + 3000 * 0.08).

I don't know what sustained speed I would get between AWS and GCP (which ofc depends on regions etc), but let's say 250 Mbit/s. Something like a m5.large is ≈ 0.1 USD per hour. 3000 GB / 250 Mbit/s * 0.1 USD per hour = 2.67 USD.

Is the convenience worth me ≈ 250 USD (or a ≈ 100x "markup")? Probably not.

Perhaps there are users that do this regularly and need to have a more automated way that doesn't involve spinning up machines manually etc. I don't know.

<comment><USER6> $250 is peanuts in the great scheme of things for even small businesses. If it saves me half a day of fiddling with rclone/rsync, the chance of getting things wrong or losing data, and the burden of remembering next month how my half-assed solution is supposed to work... then it has already paid for itself.

My issue with it is that I don't see any support for Glacier, which IMHO would be a natural target. Sticking to everyday cloud drives only limits its usefulness in the long run - ok, I'll do the migration now and then in a year I won't even remember that Movebot exists. I'd like a way of backing up my cloud drives to glacier periodically.

<comment><USER5> I don't think it would take half a day of fiddling, but yeah I see your point. Especially considering transit cost for 3TB would be in the ballpark of $250 as well.

However, it would $250 the next month as well.

Backing up is an interesting proposition. Especially if you could schedule Movebot to do it for you.

<comment><USER4> Just to iterate on this, appreciate all the feedback.

There is no monthly subscription, unless you are an MSP or partner, and you only pay for each backup or migration job conducted. So if it's a one off migration, it's just that one off fee.

You can schedule regular backups between cloud storage as well. It also supports deltas/partial updates of modified files since the last backup where possible.

I.e. you could set up a daily backup between an S3 bucket and another provider.

Another thing to note, it also supports native SFTP, SMB and NFS in an effort to help those move off more traditional systems and infrastructure.

Once again, good discussion and really appreciating the feedback.

</comment></comment></comment></comment><comment><USER7> Way too expensive.

<comment><USER8> yeah way too expensive.. unless they're saying you don't have to pay normal egress costs?

<comment><USER4> We need some early adopters to work with us and test us out since rebranding. Happy to discuss a large discount or other options based on how much data you have. If you do need to migrate and are willing to work with us please contact us on email@example.com - disclaimer I work at the company</comment></comment></comment>


Capitalism, as It Is Practiced, Defies Christian Principles - <AUTHOR> https://medium.com/dialogue-and-discourse/capitalism-as-it-is-practiced-defies-christian-principles-592af3a88db9 <comment><USER2> Christianity, as it is practiced, defies christian principles.

</comment><comment><USER3> "Free will" what an American biased invention of the rich to suppress the poor. There is no proof of this concept in the Bible, instead it runs completely opposite to "God's will". In an effort to promote Christianity, you might be subject to the most dangerous lie in the history of churches today- rich Jesus theology.</comment>


Show HN: ProfilePointer- Find a company's social, mobile, and local profiles - <AUTHOR> http://www.profilepointer.com/

<comment><USER2> Pretty neat! I might be in touch soon about your API.. A project I'm working on has business registration and it would be nice to pre-populate those fields.

<comment><AUTHOR> Sounds awesome! Please feel free to email anytime, would love to explore the use case further.</comment></comment>


EFF sued for defamation by lawyer behind a "Stupid Patent of the Month" - <AUTHOR> https://www.eff.org/deeplinks/2015/06/eff-sued-defamation-patent-lawyer-aprils-stupid-patent-month-scott-horstemeyer

<comment><USER2> Every day there's another reason to feel good about my recurring donations to the EFF and ACLU. I highly recommend the investment.

[https://supporters.eff.org/donate](https://supporters.eff.org/donate)

[https://action.aclu.org/secure/fight-back-against-attacks- ou...](https://action.aclu.org/secure/fight-back-against-attacks-our-civil- liberties-0)

<comment><USER3> And for people who order a higher-than-normal volume of stuff from Amazon, you can completely painlessly make small donations to the EFF without spending any money by making your purchases through [https://smile.amazon.com/](https://smile.amazon.com/) and updating your selected charity (hover on the "Your Account" menu, then click on "Change Your Charity").

.5% of your purchase will go to the selected charity without adding any additional charges or fees to your purchases.

</comment></comment><comment><USER4> As long as the ROI is good for patent trolling, people will do it. As long as the ROI is good for SLAPP suits, people will do it. It's fun to make fun of the individuals filing these stupid suits and patents, but reform of the incentives is what's needed.</comment>


70% Repetition in Style Sheets: Data on How We Fail at CSS Optimization - <AUTHOR> https://meiert.com/en/blog/70-percent-css-repetition/ <comment><USER2> As someone who has gone great lengths to improve this by creating a smaller bootstrap [1], I have to say that in the end of the day it will probably not matter. CSS is hardly the bottleneck and the same time spent optimizing it would probably be better spent:

\- Optimizing your images.

\- Concatenating+minimizing+gzip the JS and CSS.

\- Optimizing Javascript.

Likely in order; mileage might vary. If those 3 are already in place, then it _might_ make some difference to optimize the CSS.

First meassure what you actually want to improve (it is _not_ page size per se, it is loading time). Then make sure that you optimize it and not something else.

[1] [https://picnicss.com/](https://picnicss.com/)

<comment><USER3> Would throw in there "Use CDNs as much as possible"

<comment><USER4> I just don't feel comfortable using them in certain situations, like SaaS web apps. What if they go down, for any reason, and since I depended on the CDN for a core framework (say, React), now my entire site isn't going to load. Queue customer e-mails.

That being said, for less mission-critical projects, they do have their place.

<comment><USER5> CDNs aren't an either-or thing. It's common to fall back to a copy on your server if the CDN version doesn't load.

CDNs involve a big set of tradeoff choices you have to make, they don't make sense for every circumstance. I don't think I'd ever throw in "Use CDNs as much as possible" into an optimization advice list.

<comment><USER3> Yeah, keep the dynamic stuff on your webserver, static stuff on the CDN. Part of the reason I say "as much as possible" is because I've seen significant conversion improvements by enabling a CDN.

</comment></comment></comment></comment></comment><comment><USER6> I find problems with both the author's methodology and hypothesis.

Counting unique declarations doesn't really tell me anything. CSS isn't simply a declarative language. CSS rules are _ordered_. Sometimes (and oftentimes within webapps) you need to repeat a declaration because you're using it to overwrite an earlier declaration but only when the second selector is valid. For example, it's very common to have lots of `display` declarations that turn on or off elements by overwriting earlier rules. Because of this, you're going to have lots of "repeat" declarations, but they're not repeated in their _location_ within the order. With complex pages, you're going to wind up twisting yourself in knots trying to keep everything logically ordered if you also want to minimize declarations.

Additionally, from my naive understanding of browser engines, the performance cost of multiple rules applying to an element is greater than the cost of multiple declarations within a rule. Why minimize them?

But my largest concern is the mental overhead of trying to simplify rules in code. Co-locating declarations affecting a logical unit is extremely helpful. The tool we have to accomplish this is called a selector. Minimizing declarations increases selector count, which kind of defeats their purpose. Pre-processors can't solve this for you either, due to CSS rules being ordered. If all you're building is a static page then, sure, I can see minimizing declarations being some kind of goal. But CSS gets used for a lot more than static pages.

As other commenters have noted, if the author's concern is overly-large CSS files, run-length encoding alleviates a lot of that, at least if the declarations are in the same file (a reason to not use http2 as a silver bullet and use concatenation instead, if that's a concern).

EDITS: Added a couple sentences.

<comment><USER7> I agree completely. This just seems like this reordering/grouping of properties makes the css a nightmare to manage and moved scatters related properties all over the stylesheets. It's would be like grouping the same coloured/shaped parts of a car together because they are the same colour and shape, and not grouping them by what they are - it might reduce the number of times you need to write the word red, but when you need to update at how a part looks on the car then it would be a mess!

</comment></comment><comment><USER8> gzip takes care of the repetition and I don't think CSS parsing has any meaningful impact when you consider all the freak show of resources and scripts a typical page loads (I have no data on this though, just intuition).

A maintainable CSS is way, way more important. Writing complex CSS is very easy, but debugging can be a nightmare.

<comment><USER9> If it is repeated then it is harder to maintain. If you have worked on a big project you know that it is way harder you have to change things in a few dif. places instead of just one, and there will be much harder to maintain consistency accross your style.

Can you give a counter-example where repeating CSS _improves_ maintainability ?

<comment><USER8> When you have a base style sheet (it can be a framework or a base style sheet for your main application and sections overwriting them or custom style sheets for some tenants of your application or whatever) that you want to customize?

Many component-based designs also prefer repeating styles for each component because of maintainability but I guess they wouldn't be counted in the article as they use generated root names.

My point is, _not repeating_ styles should not be the target, but it may of course be the side-effect.

</comment></comment></comment><comment><USER10> If you condense everything that can be condensed, the resulting style sheet could be harder to adapt to changing requirements.

One example of this is when some styles are "accidentally" the same for two elements. If you condense them into one rule, then you lose the independent control.

 _" Hey look, 97% of the users always turn up bass and treble together and turn down the middrange; we can condense the three-band equalizer panel down to one knob!"_

<comment><USER11> This is why I personally like the Vue/React way of scoped CSS -- it promotes loading a simple baseline CSS (like Skeleton) for the full page and specializing in the individual component layer. It's easy to refactor in the case of changing requirements (if the same across components, move style into global CSS, if not, move into component).

<comment><USER12> Shout to React's Styled Components: [https://github.com/styled- components/styled-components](https://github.com/styled-components/styled- components)

Very nice to work with.

</comment></comment></comment><comment><USER13> ...in which some guy is surprised how a system with 0 modularity, 1 flat namespace, 0 encapsulation, and cascading rules leads to repetition

<comment><USER14> CSS supports XML namespaces [0], although I've never seen someone using it.

Shadow DOM supports style isolation [1], although I don't think I've never seen anyone using it outside of toy projects.

There's also a newly proposed containment [2] CSS property, but it's only supported on Chrome.

For simpler websites where you skip using any build tool, I don't think it's a problem. For larger applications that support build tools, css-modules is a good alternative [3].

[0] [https://developer.mozilla.org/en- US/docs/Web/CSS/@namespace](https://developer.mozilla.org/en- US/docs/Web/CSS/@namespace)

[1] [https://webkit.org/blog/4096/introducing-shadow-dom- api/](https://webkit.org/blog/4096/introducing-shadow-dom-api/)

[2] [https://developers.google.com/web/updates/2016/06/css- contai...](https://developers.google.com/web/updates/2016/06/css-containment)

[3] [https://github.com/css-modules/css-modules](https://github.com/css- modules/css-modules)

</comment></comment><comment><USER15> Particularly hard to fix for a site that's been around a while. It's difficult to identify dead css because you would have to have something like 100% DOM test coverage.

Perhaps that "dead" style is only used for that error div that isn't visible unless some rare condition exists.

<comment><USER16> PurifyCSS does that: [https://github.com/purifycss/purifycss](https://github.com/purifycss/purifycss)

The only issue I have come across is when you are inserting elements with CSS classes using JavaScript. A workaround for this is importing the CSS in the JS module you are using it in via webpack or PurifyCSS also has an option to manually exclude certain selectors.

<comment><USER15> As you mention, It does if you somehow click every combination of buttons, invoke every error, corner case, etc. It can't know about HTML that isn't there, but could be.

</comment></comment></comment><comment><USER17> Unnecessary duplicate "artwork" has always been a problem for digital mediums.

Example from the dark ages: naive (or lazy) CAD drafters would often draw overlapping lines, which then caused the pen plotter to draw that many strokes on the mylar, which would then have too much ink, botching the output. Enough of a problem that 3rd party tools popped up to dedupe plot files.

\---

Opera was onto something with server side rendering for their mini browser. They should sell that as a service.

In fact, someone needs to take it even further:

Render to some page description language (maybe PDF), and then automagically rehydrate into minimal, inferred HTML+CSS+images. Kinda like how tabula and others scrape PDFs to reconstitute tabular information.

One benefit is throwing away all the box model layout cruft. True WYSIWYG.

Another, even bigger, benefit is sanitizing content, like removing web bug tracking images.

\---

I'm currently test driving the Mercury Reader extension for Chrome. Ignoring all styling also sounds like a terrific idea. I may prefer this strategy. [https://postlight.com/](https://postlight.com/)

</comment><comment><USER18> [https://github.com/rtsao/styletron](https://github.com/rtsao/styletron) generates a pretty thorough de-dupe of CSS rules

</comment><comment><USER19> Example of low repetition from his page:

view- source:[https://meiert.com/setup/default.css](https://meiert.com/setup/default.css)

If this is worthwhile doing, a source tool to transform it would make more sense IMO.

</comment><comment><USER20> I use Tachyons for 99% of my styles, writing minimal amounts of highly specific styles. My productivity has gone way up and I no longer have to worry about CSS pretty much at all.

</comment><comment><USER21> I think the best thing I got from this article was the discovery of CSS Stats. [http://cssstats.com/](http://cssstats.com/)

</comment><comment><USER22> As part of our build process, not only do we minify our stylesheets (which makes an attempt to unify nearby selectors, if similar) but we precompress. And our library will route asset requests through a proxy script that adds cache-control immutable, so only the first request will download the asset.

Repetition is simpler than the complexity of managing huge projects that are constantly changing.

</comment><comment><USER23> > excess of repetition is the definition of bad code

No. The lack of abstraction tools is the definition of a lower level language.

You know it's a lower level language when, as a developer, you feel the need for one higher. I submit Less and Sass as evidence.

Honestly, this alone making it to standard css would have me taking a week off knowing how much time I'd save in the future:

.c {.b .a}

... where a and b and c are all classes.

</comment><comment><USER24> Seems like CSS-in-JS has solved this problem already.

Libs like styletron consolidate duplicated style declarations.

</comment><comment><USER25> In my experience CSS would be fairly more efficient if it supported inheritence. When I want multiple similar declarations I have to either cope/paste them all and slightly edit them or apply multiple definitions to the targets.

</comment><comment><USER26> A few plots would go a long way in this post.</comment>


Public API vs Open API - <AUTHOR> http://www.apivoice.com/2012/05/30/public-api-vs-open-api/index.php#.T8Z9FCB0IvI.hackernews <comment> jack-r-abbit I was hoping for more substance. The title implies the article would compare/contrast Public vs Open for APIs. But it doesn't really do that. There is a bullet list of "what makes an open API?" but not one of "what makes a public API?". Some examples of each with reasons why it they fall into the category they do would be nice as well.</comment>


Don't Be Afraid to Break Stuff - <AUTHOR> http://www.codinghorror.com/blog/archives/000123.html <comment><USER2> I suggest a title edit: "Don't be afraid to break stuff in your local checkout of version-controlled stuff."

Especially with large projects with many dependencies, breaking the wrong thing in the wrong way can screw everything up in ways that end up taking many hours and debugger voodoo to properly put back together again. I see these often enough in production -- I feel no need to give myself more ugly, scary bugs to fix just for the experience.

</comment><comment><USER3> Don't know about this. In my experience the best way to take fear out of a codebase is to have a rigorous unit testing and continuous build platform. I've got no problem with refactoring but would like to think it has a bit more of a design element to it. Perhaps time is better spent fixing defects - another good way to learn a codebase and a more productive excersise in our time constrained projects.

</comment><comment><USER4> I'm not sure I agree with the assumption "The main problem with fear of breaking the code is the implicit assumption that any code is really that good to begin with."

Most of the time I work around code because it is a POS that I do not have the time or budget to clean it up. It's fragile but it works, leave it alone until the day it breaks and then it will move from important to urgent and budget will become available.</comment>


How to speed up your website with just one click - <AUTHOR> http://www.zbugs.com

<comment><USER3> I tried a few sites I own and it somewhat points me into the right direction.

My biggest surprise was trying out zbug's own website which produced a rather ironic result: <http://yfrog.com/h71e9bp>

<comment><AUTHOR> Hi rlobue :) You are the first one who noticed it :) That was done on purpose since i had a www.zbugs.com as a default input text :) so people can see how the tool works i had to leave the CSS and JS untouched and uncompressed :) Thanks again.

</comment></comment><comment><USER4> Biggest problem I'm seeing (and understandably so) is that it doesn't handle in JS files that are inject after page load (such as all of ours are - <http://frid.ge>) even if they are local. We do this for our cache busting routines (we currently do a combine as part of our build process but need to add the minify). Tried it on a side project of mine and I'm seeing the divide by zero issue that other people are seeing. Really like the concept for projects where I don't want to setup build scripts to do all of the minification.

<comment><AUTHOR> Thanks andrewjshults for your review. You are making a good point about JS injected files. I should modify a script in next version to make it see this files. Thanks again.

p.s. Division on zero issue is currently being fixed.

</comment></comment><comment><USER5> I get

"We can't find any local CSS or JS files on the site. Stay informed about a new version of this service which will allow you to process remote files as well. "

For my blog at <http://alicious.com>

However it lists both a local CSS and a local JS file.

Could be something to do with apache security module being enabled on that site.

<comment><AUTHOR> Hi pbhjpbhj. Thanks for your review... I think that your site does not have any local files, at least for me it shows only remote JS and CSS. Let me know if i am wrong. Also try using www.alicious.com instead... i am having some issues with domain detection now.

<comment><USER5> Unless I'm missing some strange definition of local files then yes it does, it has both local js and css files and two of them were listed on the report for me.

<http://imgur.com/HxOPr>

</comment></comment></comment><comment><USER6> This is really cool, but anonymous users can curl the resulting archives from the server without signing up. If you really want registered users, you might want to hide the user's asset files behind some sort of authentication.

Also, although it seems counter intuitive to visit this site with javascript disabled, it appears that the site does not work at all with those clients.

<comment><AUTHOR> Hi "uxp" thanks for you kind words. I was not too concerned about forcing users to register. Since the main benefit for registration is on their side - they can check the compression history and also stay up to date about new features ( i have a lot of features coming once i get more free time)

</comment></comment><comment><AUTHOR> Hey guys, tell me what you think on this script and if you have any suggestions i will be happy to implement it once i have more free time.

</comment><comment><USER7> It doesn't seem to factor already enabled server-side gzip compression? It appears to only grab the files as-is...

<comment><AUTHOR> Thanks i will solve this issue in next release.

</comment></comment><comment><USER8> Nice UI. But I don't get what is the use of the .gz files. So my javascript files can be compressed -- but what are compressed .js.gz useful for? can I use them in place of the .js files or something?

<comment><AUTHOR> Hi "whathappenedto". Thanks for your kind words. .gz files can be used in a place of javascript and css files since all of the modern browsers support gzip compression. You may want to add a condition statement in you code that will check if browser supports gzip compression (some old browsers dont support gzip) and if it does support show him gzipped version , if not - <USER2> him just a minified version. I will post an FAQ on zbugs.com with a code samples how to do it.

</comment></comment><comment><USER9> _You can save: 0% in file size and 3 HTTP requests :/_

I guess there's a problem somewhere (definitely more than 3 resources on my test page - as confirmed elsewhere on the page).

<comment><USER10> I tried wired.com and got the same result. Plus this error:

A PHP Error was encountered Severity: Warning Message: Division by zero Filename: speed_up_results/sources.php Line Number: 5

<comment><AUTHOR> Thanks for the bug :) Fixing it right now :)

</comment></comment></comment><comment><USER11> It doesn't seem to detect CDNs on the same base domain, like cdn1.exmaple.com or assets0.example.com on example.com.

<comment><AUTHOR> Hi superfamicom, its coming in next release. It will allow people to select a custom combination of files you want.

</comment></comment><comment><USER12> I like how you upload the files to a CDN and provide links to them for free. Very useful service indeed.

<comment><AUTHOR> Thanks Nishank!

</comment></comment><comment><USER13> Very cool concept! I definitely will use it once it supports parsing remote assets.

<comment><AUTHOR> Thanks for you kind words OstiaAntica.

</comment></comment><comment><USER14> "Speed Up..." that is if I didn't already merge, minify and gzip my files :)

</comment><comment><USER15> Thanks for the free CDN service.

</comment><comment><USER16> absolutely awesome!

15 minutes can save you 15% of load time on your website :-)</comment>


Show HN: A beat-the-clock word maze game - <AUTHOR> http://jpalms.com

<comment><AUTHOR> The perfect game for when you're on the pot, waiting at the doctor's office, or have a few minutes to spare.

</comment><comment><USER2> Nice!</comment>


'World's first robot lawyer' now available in all 50 states – The Verge - <AUTHOR> https://www.theverge.com/2017/7/12/15960080/chatbot-ai-legal-donotpay-us-uk <comment><USER2> "if you stump the bot, it triggers a prompt: "Need extra help?" It then provides a rather unhelpful link back to Google."

it could point you to Lexus like the real thing...</comment>


Ask HN: We spontanously decided to apply – video with all founders not possible - <AUTHOR> Hey guys,
we just decided to apply for the next YCombinator batch but moved to different parts of Germany last week. It is not feasible for us to come together for the 1 min application video due to several circumstances.
What do you prefer:
1. One founder tells something about the idea and the team - should be enough
2. Everyone should introduce himself in 20 seconds. Merge 3 video snippets (3 founders) into one
3. If you can't make that happen regardless your situation - back off
Thanks in advance <comment><USER2> Try to contact them by email at firstname.lastname@example.com . They usually reply faster by mail because some thread are unnoticed.</comment>


MIT Students Think President Reif Should Also Resign over Taking Epstein's Money - <AUTHOR> https://jezebel.com/mit-students-think-president-l-rafael-reif-should-also-1838119781 <comment><USER2> The Calabrian mafia is tumbling somewhere around $100B worth of money around the world financial system, probably indirectly funding many idealistic SV companies, and this guy has to lose his job running MIT because they accepted a donation from Epstein? Crazy. Maximum scape goat, minimum agency. Being famous is the definition of double edged sword.</comment>


Ask HN: New Leadership Job Advice - <AUTHOR> I've been in either a senior or tech lead position for quite a number of years.  I've recently been offered a job in a leadership position (head of x).  I know I've done all of the individual parts of this job in the past, some of them together, some separately, and I'm pretty nervous / excited to start it.<p>I'm really interested in any advice on how to play this role, and especially how to be effective at it during remote work.  Thanks. <comment><USER2> You can read 'The Coaching Habit' to help you in your relationship with subordinates.

'Getting to Yes' and 'Exactly What to Say' could be helpful books when you have to negotiate with your superiors or peers.

</comment><comment><USER3> I think you might need to specify what X is to get better suggestions as to how to be a leader of it?

Are there any of the individual parts of the job you have done in the past you feel weak at, or strong at?

</comment><comment><USER4> Classic leadership book, that PG recommends. Managing Oneself by Peter F. Drucker > [https://www.goodreads.com/book/show/2477223.Managing_Oneself](https://www.goodreads.com/book/show/2477223.Managing_Oneself)

Paul Graham on The Maker's Schedule > [http://www.paulgraham.com/makersschedule.html](http://www.paulgraham.com/makersschedule.html)

</comment><comment><USER5> Treat people well. Fight for your team and they will respect you and go out of their way to help you.</comment>


Kicking Ass And Saving Lives – iHELP From Slovenia - <AUTHOR> http://www.arcticstartup.com/2013/11/25/kicking-ass-and-saving-lives-ihelp-from-slovenia <comment><USER2> This is great. In the US there are efforts to create an enhanced 911 system [0] (headed up by Henning Schulzrinne of Columbia). Many apps will be built on this infrastructure and hopefully save more lives.

[0] [http://www.911dispatch.com/911/nextgen_911.html](http://www.911dispatch.com/911/nextgen_911.html)

</comment><comment><USER3> There is another emergency use app in the Apple App Store here is the USA that's called iHelp Plus. It has no connection to the app described in the article, which doesn't seem to be available in the USA.

<comment><USER4> How do you know that, I haven't found any info regarding location restrictions on their website.

<comment><USER3> The Apple App Store has a search function, and the Slovenian iHelp doesn't come up in the search. That means either it is not available on your device or is not available in your country.

</comment></comment></comment><comment><USER5> There's a similar system in Sweden[0]. It really is a shame that AEDs aren't smaller and cheaper.

[0] [http://www.vice.com/read/if-your-heart-stops-in-sweden-a- mem...](http://www.vice.com/read/if-your-heart-stops-in-sweden-a-member-of- the-public-might-help-you-before-an-ambulance)

</comment><comment><USER6> What would be wrong with a world where this app was pre-installed on every phone and allowed EMT/Doctors/Firefighters/Police to indicate as such and set a radius for alerts they would like to see (100ft/500ft/1000ft/etc)?

<comment><USER7> You'd likely end up with a _really_ low SNR (if the current use and abuse of the 911 system is anything to go by). It'd be the 'cry wolf' app in no time.

There are other concerns I'd have too... Want to mug someone in a secluded area? Hit the HelpMe button on your burner phone and wait for them to come to you.

<comment><USER6> Well if the 911 system is already broken, maybe an app could try to fix it.

I think the problem with calling 911 is that it is free when it should cost enough money to weed out the noise.

If a call to 911 cost $100, how many people would be calling in about their tooth-aches/loneliness ([http://money.cnn.com/2009/08/24/news/economy/healthcare_911_...](http://money.cnn.com/2009/08/24/news/economy/healthcare_911_abuse/))? Increase the dollar amount until the number = 0.

An app that allowed you to purchase credit before you had a crisis (or came with $100 of credit and you had to top off after an emergency) might help reduce that noise.

What if the $ went directly to the first responder?

There are ways to solve these problems.

<comment><USER4> Charge the call, if the call is justified give a discount of 100%.

<comment><USER8> Try discussing that with the family of the murder victim Sally Geeson. She wrongly believed an emergency 999 (911 to North Americans) cost money so she did not call when she knew her life was in imminent danger as she had no credit left on her phone:

From [http://www.theguardian.com/technology/2006/oct/19/guardianwe...](http://www.theguardian.com/technology/2006/oct/19/guardianweeklytechnologysection2)

"...tragic consequences last year when Sally Geeson, a student, was abducted and murdered in Cambridge. Sally, whose phone had run out of call credit, sent a series of texts asking for help to friends, apparently not realising that she could have made a 999 call for free."

<comment><USER6> What about all the lives lost when it takes first responders up to 8 minutes to respond to a crime because of false positives?

I really believe that this would be a more efficient system on the whole.

<comment><USER9> You're right, because lives lost due to delays include some rich and therefore worthy people, so a system that saved them and killed more poor people would intrinsically be an improvement. typically blinkered comment that doesn't even admit the possibility of funding the service, employing more responders and attempting to fix the problems. Perhaps it could be funded with this new thing I thought up where it takes money from everyone based on their ability to pay, based on the assumption that everyone is better off in a society that has reliable emergency services.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> I have come here to kick ass and save lives. And I am all out of ass.</comment>


Have an iphone app that needs some review or rating love? Join the iPhone Mafia - <AUTHOR> http://thefridge.org/?ginvitation=b6wydl7cy08ow0w08o88gc0wo

<comment><USER2> Perhaps I missed something earlier on HN, but, _what is this?_ The title says nothing and the page opens to a sign-up sheet without any description.

</comment><comment><USER3> Pretty sure this is not a great idea.

However, one thing I'd like to see is a quality group of beta testers for apps that can give good consistent feedback on new versions. Currently I have a few friends/family in my beta network, but getting feedback from them is like pulling teeth b/c ad hoc installation is so stupidly cumbersome.

If someone could create a network of willing beta testers that want to test certain categories of apps, that would be a winner.

<comment><USER2> There's a way to bundle your app with an embedded mobileprovision file, so that building a beta amounts to double clicking a file with an iTunes icon and hitting Sync. Makes adding an app feel like adding a song to their library and to their iPhone would; much easier to explain than "drag this seemingly random file over to your iphone..."

<comment><USER4> Can you elaborate? I have learned to build IPA files, but I still require my testers to install mobilevprovision file separately. It would be nice if all could be packaged in one single file...

<comment><USER2> Making the .ipa should do the trick. You can test by renaming app.ipa to app.zip, unzipping it and looking in the .app bundle for embedded.mobileprovision. Also: you can see which UDIDs are valid for the profile (to make sure everyone who should have access, does) by opening it up in your text editor.

<comment><USER4> wait, embedded.mobileprovision file is already there when xcode is done building the FooBar.app package.

Are you saying that you remove it from the package and replace with the Ad-Hoc FooBar.mobileprovision file that you download from Apple's developer site?

</comment></comment></comment></comment></comment><comment><USER5> Seems a little dishonest.

<comment><USER6> It's also trying to take advantage of desperate iphone developers to promote a service.

</comment></comment><comment><USER7> I don't get it. Is the title an example of how TheFridge can be used?

</comment><comment><USER8> Really simple heuristics would detect this.

Sounds like a great way to get your app banned from the app store.

</comment><comment><USER9> This definitely endangers your app listing. You can easily get banned for this.</comment>


Telecom Lobbyists Downplay 'Theoretical' Security Flaws in Mobile Data Backbone - <AUTHOR> https://motherboard.vice.com/en_us/article/7x9q8y/telecom-lobbyists-downplayed-theoretical-security-flaws-in-mobile-data-backbone <comment><AUTHOR> Original title: _Telecom Lobbyists Downplayed 'Theoretical' Security Flaws in Mobile Data Backbone_ (it was 1 character over the 80 character limit).

Techmeme headline: _After DHS highlighted major SS7 protocol flaws, Verizon and AT &T lobbying group labelled the flaws "theoretical" in doc sent to Congress, which experts dispute_

Edited to italicize titles.</comment>