Ask HN: Why would my post get buried by a mod? - <AUTHOR>

We had posted an announcement on some new hiring we're doing: http://www.myplanetdigital.com/digital_strategy/blog/myplanet-hiring-billion-people
It was a play on the Groupon announcement. We're a small company, and I'm a Hacker News regular so I figured this would be a great place to tell people about it.
The post was subsequently killed in its entirety. Not edited for perhaps having a silly title (which I will readily admit), but killed altogether.
Is there any way for me to discover why? <comment><USER2> The title was total bull, I guess that's a pretty good reason to kill it, if you go out of your way to produce a hiring ad then you might as well go out of your way to create a title in line with other HN hiring ads.

It's admirable you try to stand out but I think that was not the right way. Keep an eye out for the 'who's hiring threads' that pop up with some regularity and add yourself to those.

<comment><AUTHOR> I actually have done that regularly, and we consistently get - zero responses.

Look, I agree the title was silly (although did anyone honestly think we were hiring a billion people?) - but I would have gladly edited it if a moderator had asked me to. I'm a regular HN reader, the intent wasn't to spam... I just honestly thought it was the sort of silly headline that other readers would enjoy. Maybe "Myplanet Hiring, Like, Five People" would have been more appropriate.

Sorry if I offended? For something light-hearted it sure engendered strong reactions...

<comment><USER2> HN is kind of anemic in the humor department.

On odd days I think that's a good thing ;)

<comment><AUTHOR> Ahhh well, one can try :-)

We did manage to get a few applications in the hour or so the post was up, so it wasn't all for nought.

</comment></comment></comment></comment><comment><USER3> If enough people flag it, it gets killed without a mod taking any action.

Imo the whole post looks silly, not just the title. (Not sure I'd have flagged it myself, though.)

<comment><AUTHOR> It's supposed to be a little silly - I was just trying to put a light-hearted spin on our hiring process. The type of people who enjoyed it would probably enjoy working with us.

I suppose I overreached with the title?

</comment></comment><comment><USER4> Well Groupon actually raised "like a billion dollars" whereas you equate hiring "like a billion people" to 5.

<comment><AUTHOR> Is satire really such a mortal sin?</comment></comment>


How LEDs Are Going to Change the Way We Look at Cities - <AUTHOR> http://www.forbes.com/sites/uciliawang/2014/09/10/bright-lights-big-profits/

<comment><USER2> Too bad -- several thousand words about this new, brighter lighting, but no mention of its effect on astronomy, or of the light pollution that keeps city- dwellers from seeing the stars and planets.

<comment><USER3> First paragraph: _Five years ago a bright orange blanket of light used to saturate the city and stain the air above. Today it's a metropolis aglow with tens of thousands of cool silvery pinpoint lights. The grid is clearer. The skies are blacker._

4th _"What was once a most common human experience has become most rare," writes Paul Bogard, author of The End of Night, a book that assails the world's unchecked light pollution._

<comment><USER2> Upvoted for pointing out how I managed to miss these clear references while impatiently scanning for "astronomy" and "light pollution".</comment></comment></comment>


A Laid-Off Zynga Employee Trashed The Company On Reddit Last Night - <AUTHOR> http://www.businessinsider.com/laid-off-employee-trashing-zynga-2013-6

<comment><USER2> I read that AMA last night.

While I kinda broadly disapprove of it (it seems almost certain that it violated the terms of whatever severance package they had), it hardly trashed Zynga... if anything, it made them look like a better than average (in terms of employee-care) modern tech company from the inside.

The problem with unlimited vacations.. nothing new, not unique to Zynga (the same issue has been discussed to death here on HN).

The fact that Zynga copies other people's games, uh, yeah, no shit they do... they've always been shameless and obvious about this...

The insiders selling stock early, again nothing new or nothing we all didn't know a long time ago since that's all public data.

Where was the "trashing"?</comment>


Management and false certainty - awinter-py https://abe-winter.github.io/dress/for/the/job/you/want/2018/06/24/certainty.html <comment><AUTHOR> Wow, the author of this seems to have an incredibly inflated sense of the value of his or her opinion, and seems to have very hostile preconceived notions of teammates' errors and shallowness of their reasons for defending their choices.

Not to mention that this part, at least, seems completely wrong,

> "But an even slower way to uncover problems than argument is > implementation."

Nope. Argument and architectural documents invite all manner of bikeshedding, often wasting time when you could just implement things and adjust the parts that end up causing problems.

This is especially critical for taking a YAGNI approach. Architectural designs are such a slow waste of time that ends up leading you down a path where you don't need various abstractions or extensibility hooks for reasons that only become clear after getting a minimal prototype going, looping in business team feedback, and seeing what fails or works.

Basically, most arguments (in the way the author means it) are a really irritating form of premature optimization, and just implementing a first bad version is way more efficient.

<comment><USER2> This reasoning works until you need security, privacy, or any cryptography in the solution at all.

Then it is farcically irresponsible.

There is a technical play I have seen over and over again, which is just this: create a terrible prototype, add stakeholders with promises of functionality - use this momentum to bulldoze appeals to quality and common sense.

It is a way certain kinds of engineers create a crisis that has them in the middle of it, and ensures they maintain control and indispensability in the ensuing chaos.

If only there were a word or trope for it.

<comment><AUTHOR> > "This reasoning works until you need security, privacy, or any cryptography > in the solution at all."

This has not been true for me and my team generally, where privacy and security are up-front, primary concerns given the customer data that powers several machine learning features and data ingestion services we maintain. Treating these aspects of the problem as just yet another thing to throw into the prototype and iterate on has worked extremely well. Meanwhile other teams in my company have been caught out by nasty over-committment to certain security patterns that were then totally taken away from possibility when devops changed container-based deployments. Had they just not over-committed to a fixed, ahead-of-time design, they might not have been set back as many months of reworking it.

> "create a terrible prototype, add stakeholders with promises of > functionality - use this momentum to bulldoze appeals to quality and common > sense."

Well I think you falsley mention quality and common sense at the end in a way that makes it seem like you've got an ax to grind against approaches that don't prioritize long-term design, and that last sentence doesn't fit in with the rest.

Apart from that, I actually think the approach you describe is great and works really well to create robust and safe software, because it actually allows the team to generate buy-in from other business teams and product teams, and creates chances for the team to solve things in a high-quality and best practices focused way.

If instead you slowly start out with architectural debates, product or business people assume the solution can't be done on their unrealistic timeline and just force the team to pivot to the next unrealistic project, and you just flop around endlessly managing the tension between product people who want crappy prototypes that can be diff'd against changing requirements, and engineers who want stable requirements to pin down best-practices-compliant architectural documentation.

In the end, overpromising on a threadbare prototype and working iteratively on it is way better, and is not at all some disingenuous attempt to create a fiefdom or a personal walled garden sort of project. It's a technique for actually delivering the _business_ result.

<comment><USER2> I often encounter engineering managers who make appeals to _the business_ , as a way to sidestep their accountability to a direct internal customer. Mainly in orgs transitioning from waterfall to iterative, so I hope you will forgive any excessive skepticism.

I've found that either engineering can iterate to find fit, or product can iterate to find fit. If both are iterating to find fit, without either vision or direction, the wheels will and do come off. Architecture provides that direction for engineering if Product is still figuring out market fit.

If Product has fit (even customer traction), engineering can iterate its way forward. The alternative is "game of aeron chairs," where everyone is competing to hitch their wagon to the most prestigious customer they can to drive their internal pet initiatives.

When you deal with security, and in particular cryptography without a clear architecture, you are taking on risk of being spike-stripped because you aren't playing at an enterprise level.

Architecture isn't compliance, it's design, so it's not about best-practices and exogenous check boxes - it's about building something with an eye to maintainability, market fit, and stakeholder acceptance.

I do think the Lean approach with validated learning over iterations is very useful. I also think Agile is applicable in a lot of development. What iterative development has not figured out in general is how to integrate security for complex solutions, and these days security and privacy are the dealbreakers.

So here I will admit one bias, because instead of merely grinding an axe I figured I would bet the farm on a solution to this precise problem of how to do security in iterative development environments, where the value of architects and security analysts has been marginalized by a fundamental change in development culture.

Hustling on an MVP isn't bad at all, but with new freedom comes some anti- patterns that it would be to the benefit of all to articulate and recognize.

<comment><USER3> > I often encounter engineering managers who make appeals to the business, as > a way to sidestep their accountability to a direct internal customer.

I cant help but feel like this is not a fault of being "business focussed" but instead of misunderstanding what or who the business is. Business focussed (imo) is management speak for a focus on solving the right problem for the right customer within the constraints of that customer.

In the case you describe the customer is internal. There seems to be an implicit misconnect there though. Perhaps this is a example of a lack of information usually communicated through a sales process with a customer?

Similar to the issues that arise when you ask a friend for a favour and they do a bad job / ghost you / bail. Its hard to release them of the obligation they signed up for. There is little to no explicit skin in the game (money?). In a similar way the development team building for an internal customer have an unclear, poorly defined relationship with a convoluted accountability process.

Perhaps it can also be modelled in a game theoretic way? e.g:

Lets have 2 sets of players: A. (c) Customer <-> (p) service provider B. (c) Internal customer <-> (p) internal service provider

Each set of players plays a set of potentially unbounded games which represent projects. The moves available for each game are: 1\. Continue working together 2\. Stop working together

Each move has an associated reward and cost which has a simple numeric value but represents the aggregate of things both monetary and socially valuable / costly. This means that they are not of the same type though, so a single score for a move cant be produced just by subtracting the cost from the reward. (This probably needs modelling better).

Moves are represented in the form: A.c.1 which means the customer in set A chooses to work together.

A.c.1 and A.p.1 has a cost of 2 and a reward of 3. Im assuming that working on the project only costs the time and money of the participants and rewards them with a product, money and a happy relationship (socially valuable).

A.c.1 and A.p.2 has a cost of 1 and a reward of 2. Im assuming it costs a little socially to the relationship, especially if previous games have been played (the project is running) and the reward is the time and money saved.

A.c.2 and A.p.1 is the same as above.

A.c.2 and A.p.2 has a cost of 0 and a reward of 2. Im assuming that both players agreeing to not work together is amicable and so not costing anything socially or monetarily.

B.c.1 and B.p.1 has a cost of 1 and a reward of 3. Im assuming that the cost is just time spent on the project and that the reward is a better relationship between the players, and job security of both players.

B.c.1 and B.p.2 has a cost of 3 and a reward of 1. Im assuming the cost is to the relationships and the job security of B.p and the reward is for time saved.

B.c.2 and B.p.1 is the same as above except there is extra cost to B.c

B.c.2 and B.p.2 has a cost of 2 and a reward of 1. Im assuming that the cost of deciding not to work together internally is a risk to both player's job security and that the reward is time saved.

The goal is to maximise reward while minimising cost.

This is a pretty poor model I think but it goes some way to expressing my thoughts on issues with internal projects and potentially why using a third "arbiter of vision" e.g the business, to justify things in the project may be motivated.

I composed this on my phone on my hour and a half journey to work. I wish it were easier to compose meaningful responses to comments online. It likely puts other people pff even replying.

</comment></comment></comment></comment></comment><comment><USER4> Funny. This is why orgs like Bain and E&Y make tons of money. They give you the answer, and if things don't work out, you have a scapegoat.

</comment><comment><USER5> I read piece, but in all honesty, I have a hard time to understand what the point is here. Express certainty if you're leading?

<comment><USER6> It's an argument for vigorous, not-personal, dialectic in design and planning meetings. It should be OK to make your best case. And it should be OK to get skeptical questions about your case. Or to hear an equivalent case for an alternative.

It's an aggressive and competitive take on what a healthy collaborative environment should look like. I've seen other approaches, but, to be honest, they sort of exchange the aggressive for the passive-aggressive.

A key line in the post:

> ...an even slower way to uncover problems than argument is implementation.

The thesis is that it is expensive to avoid argument or doing it in an incomplete or lackluster way.

</comment></comment><comment><USER7> Do you argue more with those above or below you?

<comment><USER8> What about peers?

<comment><USER7> yes, peers ideally. I actually edited my post to clarify that the ideal is to be a team member of both groups, but than discarded it to keep the comment short.

My question remains whether there are more conflicts with those who have the ultimate say in high level things or with those who handle or do the implementation.

</comment></comment></comment><comment><USER9> Another way to put it might be creating a functional, collective "truth." We are really good at X. Y is the future. We are going to do ABC. 1...2...3... Go Team! It doesn't need to be true, but it does need to create a unified mission, an esprit de corps.

92.6% of all leadership advice is about creating this sort of common truth, so that everyone can cooperate: Team building. Mission statements. Voices of authority. Core values. Crisis of leadership. Everyone sweeps the shed. Extreme ownership...

There is a lot of worry these days, largely from the idealogical centre that we achieve a (public-political) consensus on "basic truths" anymore. There is no ground to stand on, in any kind d of divisided discussion. What they're refering to is an absence of "basic truths."

Anyway, truths are "expensive." We have 3 scalable, but highly imperfect ways ways of creating truth in modern society: democracy, justice & science.

Democracy is supposed to settle debates with the subjective will of the people. But, it's divisive as well as irrational and convinces half the population that the other half is evil.

Science is genuinely good at determining truth, where the truth is scientifically determinable. But, science has also produced pseudo-science. Basically bad science that can answer questions which good science cannot: Freudianism/psychology, Marxism, liberal economics/metaphysics and all the "social sciences" claiming to have discovered the truth about women's issues, colonialism or whatnot.

Law... Well... This is the most ancient and least believable source of truth. Common law and tiered court systems are almost modelled on cognitive dissonance, making sure new truths do not contradict old ones.</comment>


'Artificial Intelligence' Was the Fake News of 2016 - <AUTHOR> http://www.theregister.co.uk/2017/01/02/ai_was_the_fake_news_of_2016/ <comment><USER2> What a badly edited article. If this is the counterpoint to the hype there's no wonder the hype train is currently slingshotting around Neptune.

Still, the points they're trying to make are fair, especially this bit:

>> Out in the real world, people want better service, not worse service; more human and less robotic exchanges with services, not more robotic "post-human" exchanges.

And that's the risk to AI's future in a nutshell: artificial stupidity has the potential to make our lives miserable like natural stupidity never has.

And that's no mistake. The danger in AI is not that it will become smarter than ourselves and take over the world (where Pinky and the Brain failed). The risk is that it will remain dumber than cabbages and still take over the world, as we fall over ourselves to automate everything humans do, even the things that don't get better with more automation, until we're all left without a job, standing in a long line to speak to an AI assistant to get our food stamps for the AI food dispenser.

Just an hour ago I was on the phone with a public service. The answering system's speech recognition worked just fine- it parsed my 11-digit Customer Reference Number despite my Greek accent. It did the job better than a human- those 11-digit numbers are not meant for humans anyway! Still, it kept asking me to press numbers to choose options- why didn't it ask me to speak those aloud? And at the end of the line, when all the options ran out, and only then, it let me know that the offices were closed for the holidays and I should call again tomorrow- Byyye!

Is that natural, or artificial, stupidity? One way or another, it's a picture of the future: imagine a 1000-page form in triplicate, stamping on a human face, forever.

</comment><comment><USER3> > For example, how many human jobs did AI replace in 2016? If you gave > professional pundits a multiple choice question listing these three answers: > 3 million, 300,000 and none, I suspect very few would choose the correct > answer, which is of course "none".

It's probably very hard to evaluate the impact of AI, but their answer is not any better (nor sourced) than that of the professional pundits they criticise (by the way, I can't find any article of anybody claiming that jobs have been lost due to AI). Rubbish theregister article as usual.

<comment><USER4> The way in which technology replaces jobs is not usually explicit. Cell phones and email and automated voice mail systems replaced a lot of receptionists. Desktop computers replaced pretty much all the typists in the typing pool and a many secretaries. Smart phones replaced a lot of the secretaries that were left.

The thing about AI is that it doesn't seem like AI in the rear view mirror. Grammar check and voice recognition don't seem like a big deal twenty years later. But it was science fiction in real life twenty years ago.

<comment><USER5> > The thing about AI is that it doesn't seem like AI in the rear view mirror.

This. Related link: [https://en.wikipedia.org/wiki/AI_effect](https://en.wikipedia.org/wiki/AI_effect)

</comment></comment></comment><comment><USER6> I disagree. Have been reading a lot of AI papers in recent weeks.

 _" What we have seen lately, is that while systems can learn things they are not explicitly told, this is mostly in virtue of having more data, not more subtlety about the data. So, what seems to be AI, is really vast knowledge, combined with a sophisticated UX," one veteran told me._

Why be anonymous in such an article? You aren't leaking state secrets. I'd like this 'veteran' to explain to me why recent algorithmic advances like the DNC or recurrent entity networks are not "more subtlety about the data".

The last few years have seen major improvements in the underlying neural network algorithms alone, like the addition of 'neural memory', big advances in training of neural networks that have loops in them and so on. The major progress in fields like question answering, story comprehension and game playing aren't simply about using old techniques with more data. They do reflect significant theoretical advances too.

It's not a good article, just clickbait by Orlowski of the traditional sort. His final point about liability is so vague it could apply to industrial robots or autopilots too, somehow they manage to exist just fine.

<comment><USER2> Well, Geoff Hinton is on record saying that the reason ANNs are working now, where they didn't in the past is more to do with having more data and bigger computers and less with algorithmic advances (though these did help) [1]:

 _AMT: Ok, so you have been working on neural networks for decades but it has only exploded in its application potential in the last few years, why is that?

Geoffrey Hinton: I think it's mainly because of the amount of computation and the amount of data now around but it's also partly because there have been some technical improvements in the algorithms. Particularly in the algorithms for doing unsupervised learning where you're not told what the right answer is but the main thing is the computation and the amount of data.

The algorithms we had in the old days would have worked perfectly well if computers had been a million times faster and datasets had been a million times bigger but if we'd said that thirty years ago people would have just laughed._

As to the papers you mention- researchers publish papers and in them, they make claims. That's their job. The job of anyone who reads a paper is to take it in good faith but retain their critical and skeptical stance throughout. If you're not directly involved with ANN research, or implementing your own ANN systems for some commercial application, it's very hard to know whether a claim in a paper is useful to anyone besides the scientist who published it.

________________

[1] [http://techjaw.com/2015/06/07/geoffrey-hinton-deep- learning-...](http://techjaw.com/2015/06/07/geoffrey-hinton-deep-learning-in- baby-steps-and-the-future-of-google-and-ai/)

<comment><USER7> There are two ways to interpret what Hinton says:

a) the algorithms are unimportant because all that we needed was computation

b) the algorithms were ahead of their time

I think that it is actually the latter that is true; in the same way that electricity was a precondition for computation. Babbage designed the difference engine and the analytical engine before they could realistically be implemented, this doesn't mean the design was unimportant.

</comment></comment></comment><comment><USER8> AI isn't replacing grocery store checkers. It hasn't replaced auto mechanics or professional chefs. We barely have self-driving cars and trucks, and we don't even have robots to stock store shelves yet. Where is the brake-changing robot? Where is the robot that puts cans of beans on the Walmart shelf? Would humans even value such an automaton?

There will always be some problems that are trivial to have a human solve, but very difficult for anything else. The Butlerian Jihad, and the underlying fear that robots will take every single job, is as much science fiction as hard light or teleportation.

<comment><USER9> A robot absolutely replaced my cashier. Now I can scan the barcodes, insert the item into the bagging area, swipe credit card, etc. all without interacting with a person.

Sure, it's not AI. It's not a deep reinforcement learning neural network trained with Nesterov subgradient momentum.

But robots are robots. Whatever it is, my cashier's out of a job.

<comment><USER8> Last time I used self-check, I had to wait for another human to verify my age, to purchase beer. The time before, I had to wait for a human to verify I had bagged all of my items.

I was a grocery store checker in 2007, when these devices were first announced. They are as capable as they were 10 years ago, handle the same edge cases as 10 years ago, and require the same human intervention as 10 years ago. And there are still human checkers at every store - usually they "turn off" the self-check at night, since the human that watches it goes home.

All this AI is just a "mechanical Turk" \- using AI to perform most of the tasks a human doesn't want to, and keeping a human around for the edge cases that are too expensive to automate. Humans have such a robustness of variety and ability that we can quickly solve most issues. After a certain point, it just makes sense to keep a few humans around for the really rare edge cases, like the when the grocery store is flooding.

<comment><USER10> > I had to wait for another human to verify my age, to purchase beer. The time > before, I had to wait for a human to verify I had bagged all of my items.

So instead of 2 people to a register (one to bag, one to scan), you can have one person man 12 self checkouts? Sounds like an amazing reduction in labor. Even if self-checkout were half as fast as traditional checkout, that one employee is effectively serving way more customers per hour than they would be doing traditional checkout.

</comment></comment></comment></comment><comment><USER11> Not AI, but so called Deep Learning meme.

AI has been already well-researched in 90s.

The improvements in classification algorithms and the early commercialization, such as Siri or FB face recognition are responsible for the current bubble.

No major breakthrough in AI has been made so far. Better classifiers is not AI. They are mere pattern recognition.

<comment><USER12> In science and engineering you almost never have a "major breakthrough" where some radical change happens over night. Progress is made by slow incremental improvements. Only from a historian's bird-eye view can you make statements like "the steam engine started the industrial revolution". Steam engines existed before James Watt. He just improved them a little to make them commercially viable.

AI in particular suffers from poor definitions. Nothing computers can do is "AI", only the things that are still impossible can be called "AI". Doing arithmetic was once thought to be a sign of intelligence. So was playing Chess, or Go, or recognizing faces. Now that computers can do this easily it is no longer considered difficult.

So while the recent progress with neural networks is likely somewhat overhyped you shouldn't discount the importance of making things commercially viable. In the 90s we had software that could do image recognition, true, but it wasn't accurate enough, general enough, fast enough to be useful in practice. This has changed over the last ten years to the point where image recognition has tons of commercial applications.

<comment><USER13> > Only from a historian's bird-eye view can you make statements like "the > steam engine started the industrial revolution".

I'm always baffled by that example. The Industrial Revolution was already ongoing when the steam engines become practical.

<comment><USER14> Seems like it's unintentionally apt then ;)

</comment></comment></comment></comment><comment><USER15> I'm leaving my AI gloves and scarf in the closet for a little longer.

I don't think there is a need for 'real AI' in order to replace a lot of humans. Just normal programming in the hands of non-tech office workers can already reduce a lot of human labor.

</comment><comment><USER16> I feel like this is too cynical of the deep learning and AI phrases. I agree that so far the only thing deep learning has given us is advanced correlation of data to sell us stuff better. Google knows this and so it has not hyped up the self driving cars. Tesla on the other hand has no ads to sell us and had to sell cars for which it had to force the AI concept on us. I am cynical of self driving cars however becoming a reality in the near future. Of course there is probably a middle ground somewhere. The article seems to say the ad- people-tracking-tech and the more pure efforts like self driving cars are the same.

</comment><comment><USER17> Ironically, on the right of this article there is a link to another article from the same source, entitled "Top of the bots: This AI isn't a cold, cruel killing machine – it's a pop music hit machine" [1]. Perhaps the link was also placed there by a machine learning / AI algorithm...

[1] [http://www.theregister.co.uk/2016/11/11/ai_pop_music_maker/](http://www.theregister.co.uk/2016/11/11/ai_pop_music_maker/)

</comment><comment><USER18> Bit of an iffy article arguing "2016's AI hype will begin to unravel in 2017" because roughly:

3) When something goes wrong, such as a car crash... who do you put in jail?

2) "The Consumer Doesn't Want It" \- eg clippy, automated call centers

1) "AI is a make believe world populated by mad people, and nobody wants to be part of it" \- it's all a cult

Which is all a bit silly - 3) you don't put anyone in jail, you work on the algorithms to reduce our existing 1m+ road deaths a year 2) There's some crap but people like Amazon Echo and I want my self driving car and 1) hardly dignifies a reply.

Meanwhile in 2016, computers mastered Go, the tools became good enough that the likes of Zuck and GeoHot could make somewhat functional Jarvis like assistants or self driving cars in a few months hacking and IDC are predicting the "AI Market is projected to grow from $8 billion today to $47 billion by 2020."

<comment><USER19> I wonder if you'd be this dismissive if an autonomous car kills your parents or children, and you'll still advocate "don't put anyone in jail".

Just wondering.

<comment><USER18> Probably not but statistically I'm vastly more likely to be pissed off by a human driver killing them. I think in the last year the numbers killed were approx a million by humans, one or two by self driving cars. If the percentage killed by self driving cars gets over 0.1% I'll worry about it.

</comment></comment></comment><comment><USER20> Oxford dictionary

Intelligence...

"the ability to learn, understand and think in a logical way about things; the ability to do this well"

From this it seems to me that AI is not possible without self awareness which surely must be a prerequisite for understanding.

<comment><USER21> Ferengi Rule of Acquisition #239: Never be afraid to mislabel a product.

</comment></comment><comment><USER22> >Here I'll offer three reasons why 2016's AI hype will begin to unravel in 2017.

>3\. Liability: So you're Too Smart To Fail?

Seems like there is some missing text?

<comment><USER23> 1\. is underwear gnomes.

2\. is profit.</comment></comment>


A Geometric Intuition for Linear Discriminant Analysis - <AUTHOR> https://omarshehata.github.io/lda-explorable/ <comment><USER2> A very good and pleasant lesson!

<comment><AUTHOR> Thank you! It's the sort of thing I wish I knew when I was first learning about it, but didn't have the time to investigate deeper at the time, so I hope it reaches those who need it.</comment></comment>


Airmada (YC W16) poised to show their automated drone concept at Demo Day - <AUTHOR> http://techcrunch.com/2016/03/17/airmada-poised-to-show-their-automated-drone-concept-at-y-combinator-demo-day/ <comment><USER2> It seems weird to me that you now need to specify "automated" drones.

</comment><comment><USER3> This sounds like a pretty neat concept.</comment>


Software, the Tough Tomato Principle, and the Great Weirdening of the World - <AUTHOR> https://florentcrivello.com/index.php/2019/04/29/software-the-tough-tomato-principle-and-the-great-weirdening-of-the-world/ <comment><USER2> So, I'm a software developer, so it's not like I'm against software. I also work remote, and it's fine. But...

Sometimes you need to remove a restriction, in order to find out why that restriction was important. It's like if gravity goes away ([https://www.rosshartshorn.net/stuffrossthinksabout/end_of_gr...](https://www.rosshartshorn.net/stuffrossthinksabout/end_of_gravity/)), and you discover you were depending on gravity to do a lot of things for you, even though it was a drag when you have to get up in the morning.

The Great Weirdening that the author discusses, is not unrelated to the fact that every little pocket of greed, hatred, or delusion can reinforce itself online. Also, that one nation after another finds that it has no consensus anymore, no political center of gravity to use for keeping it together. And if you can't get to consensus by talking, eventually, you get to it by violence. I'm not sure the Great Weirdening is going to be all that good. It may be that having colocated physical spaces and shared media helped us learn to get along with people that aren't like us, and it may be that is a difficult but important skill to have.

</comment><comment><USER3> The name for this is co-evolution (though tough tomato sounds fun as well :D). It's been written about extensively in papers.

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

<comment><USER4> Co-evolution in biological systems is based on evolving organisms. There is a broken symmetry here (though personally I find the notion of 'artificial' constraints affecting the space of possible actions rather too dull to get excited about) in that we are considering changes in two categorically distinct mechanisms and organisms.

In fact, imo, what is actually interesting are the specific cases instances of the dull fact, such as of language and thought/expression. And btw, would you consider that specific case "co-evolution"? Is it really a linear history?)

</comment></comment><comment><USER5> I don't know if I can agree with the notion that software is bringing more flexibility. Software and other computer-based systems breed a type of 'systems thinking' which is very efficient and rule-based. And reality is neither efficient or rule-based. If the software doesn't have a field to enter the correct data, how do people react? Do they conclude the software is wrong? No, they conclude the person is wrong and must be fit to the system provided. Software systems are often very general, and they achieve this by ignoring the complexities and specificities of individual situations.

Software makes it almost impossibly tempting to reduce human situations to factors and linear approximations. While these may often work well enough, they also fail often enough to cause trouble. Hundreds of years ago, a work was written which I believe was quoted by Donald Knuth in one of his books that I've never forgotten: "Make game of that which makes as much of thee." That, to me, sound like the most cogent advice to anyone living in the modern world. If you are seen as a factor to be manipulated, maximized, or reduced, it is only fitting, appropriate, and ultimately, moral, for you to respond in kind.

<comment><USER6> Bureaucracy was doing that way before software came along, and I'm not sure the former was easier to subvert than the latter.

<comment><USER7> It's much easier, through software and the internet, for bureaucracy, or in a broader sense 'systems thinking', to extend its reach to every little part of life that used to be exempt or less affected in the past because of various constraints.

I do realize that the statement is a bit vague, and I'm not saying it's necessary development, but at least in my experience it seems to be true, in all sorts of ways.

There's the ability to measure and optimize things in ways never possible before: tickets processed, karma, time to respond to a chat or email, etc. And if it's possible and easy, why not do so when you're the one in charge?

Or ubiquitous communication channels, unbounded by time or place. It takes conscious effort/willpower to disconnect, and isn't always possible (at least not without negative consequences including social 'punishment').

There's a growing problem in the (mental) health care industry here, as I understand it, because doctors, psychologists, and social workers find themselves overwhelmed with 'paperwork' at the expense of doing their actual job, all because the various bureaucracies want measurements: insurance companies, the government, the CEO.

And it's not just that it takes time, it actually changes the way these people have to work. I've spoken to a number of social workers and psychologists who lament the fact that they can't build up any kind of relationship with their patients (err, "clients") because the 'system' actively reduces them to rows in a database and if 'a' then 'b' approaches, where personal connection (and ability to, at times, use human judgment) is significantly reduced.

I've heard the same is true with police work. Because of 'algorithmic' solutions (a whole other can of works) the 'beat cops' are told by computers, basically, where to patrol. As a self-fulfilling prophecy, their increased presence in certain areas increases the measured crime, which in turn affects the algorithm. This obviously doesn't just reduce the ability of cops to use their fuzzy human judgment to go where they think it makes sense, but it actually pollutes crime data which might, for example, mark certain areas (and ethnicities?) as more criminal.

To end my ramble, I'm not saying all of this is bad. I'm still a bit of a techno-utopian at heart, and I think removing human judgment can also be beneficial (especially when it comes to power dynamics). But it worries me to the rather rapid increase in our abilities, and the way we just seem to jump head-first into this new world without some very careful investigation.

And I definitely think a lot of this was a lot harder to do before software came along, and generally a lot harder to subvert.

</comment></comment></comment><comment><USER8> > removing gatekeepers means you don't need to run your idea through a dozen > filters before showing it to its final consumer. People get the uncut stuff > directly — in all its glorious weirdness.

Isn't the goal to be build systems where users are able to modify and optimize the gatekeeper in the fairest way to their collective needs? The assumption that all gatekeepers are bad just feels so undergraduate at this point.

To be honest, this whole post reads like an updated version of a 'the web is going to be so neat guys' / cyber-utopian rant from 1993. If the last 5 years are teaching us anything, it's that being able to 'run your idea through a dozen filters' may not be such a bad thing.

<comment><USER9> _> To be honest, this whole post reads like an updated version of a 'the web is going to be so neat guys' / cyber-utopian rant from 1993_

I'm glad I wasn't the only one who had that reaction. Don't get me wrong, I liked the first half of the article a lot. The exploration and discussion of coevolution principle in technology was very interesting. But the way the "software revolution" was described is extremely naive. The following are some points that stood out.

 _And of course, that communication is free and instantaneous regardless of its distance._

No, it isn't. It might be near-instantaneous in best case, but it sure as hell isn't free.

 _The gig economy worker and the digital nomad are two examples of lifestyles that are native to this new paradigm. Each just has to press a button to start making money. Each works when and from wherever they want. And each gets paid in direct proportion to their output._

This totally ignores the plethora of very real and very nasty issues plaguing the gig economy.

 _In practice, it means the factory no longer needs to run as slow as its slowest gear. Each gear can spin as fast as it fancies, and be rewarded according to it._

That's not how things work out in practice. The "gears" don't "spin" in isolation, so the "slowest gear" still affects the whole "factory". Worse, the competitive nature of our society turns this whole scenario into a race to the bottom.

 _Some will say that this measurability also comes at the cost of our privacy. But you rarely need your government-issued ID to do things online — something less true of the physical world. Software is anonymous by default._

Do we live in the same world? Sure, software itself is conceptually uninterested in identity -- which isn't the same thing as being anonymous -- but I think we've all had plenty of evidence demonstrating how software facilitates erosion of privacy.

 _You may not need to ask for permission to distribute your content anymore, but you do need permission to get paid. If the payment gatekeepers don't like you, you're outta luck._

Again, this is simplistic and naive. Cryptocurrencies cannot magically abstract away the real world. The "payment gatekeepers" are not just banks and credit card companies. There's also your government and your client's government and all the stuff that comes with them.

In short, while I agree we should be excited about technology, we really have to do a much better job of making sure it helps us.

<comment><USER10> I've spent a fair amount of time reading terms of service for various payment providers. They restrict a lot more than the government does.

</comment></comment></comment><comment><USER11> This is an old one:

"We shape our tools, and thereafter our tools shape us"

[https://mcluhangalaxy.wordpress.com/2013/04/01/we-shape- our-...](https://mcluhangalaxy.wordpress.com/2013/04/01/we-shape-our-tools- and-thereafter-our-tools-shape-us/)

[https://quoteinvestigator.com/2016/06/26/shape/](https://quoteinvestigator.com/2016/06/26/shape/)

</comment><comment><USER12> When you're a hammer, everything looks like a nail principle. Come on admit, you've hammered in a screw before.

Good easy read though.

<comment><USER13> I'm reading it more as "If the only tool everyone has is hammers, everything will be done with nails"

<comment><USER14> And screws will be refined to lose those hard-to-hammer threads and that unreliable taper.

</comment></comment></comment><comment><USER15>
      The Valley of Mismatch
      The Tough Tomato Principle is not a mere side effect of innovation.
      It's necessary for the new technology to express its full potential.
      You can't use your shiny new tomato harvester until you've got the
      tomato that goes with it.

We're seeing a lot of this in blockchain.

<comment><USER16> The problem with blockchain is that a significant percentage of people who are bullish on blockchain are only bullish because they think it will negate the need for governance.

They fail to see that many systems they want to replace with blockchain only exist because of the need for governance. The governance came first, then we designed a system around the rules we needed.

</comment></comment><comment><USER17> This, although a little different, reminded me of Conway's Law: [https://en.m.wikipedia.org/wiki/Conway%27s_law](https://en.m.wikipedia.org/wiki/Conway%27s_law)

</comment><comment><USER18> >> One instance of the Tough Tomato Principle is particularly interesting: when people are the tomatoes that have to fit their new technological paradigm.

Sounds like a lot of people are going to be thrown out.

<comment><USER19> No. People are going to change to adapt to the new environment:

 _Taste and nutritional quality were secondary to machine compatibility._

(Read "nutritional" in the sense that Harvey Keitel means it with regards to people. Or was that Michael Caine?)

<comment><USER20> > People are going to change to adapt to the new environment

We'll just be doing whatever the AI tells us to do.

<comment><USER19> We're already doing what _the machine_ tells us to do -- where _the machine_ is the machine of the market, or the market-like machine which is social media.

</comment></comment></comment></comment><comment><USER21> Tough Tomate principle is a new (to me) take on how the tools and the product shape each other, but it reminded me of this gem: [https://dourish.com/publications/2012/ubicomp2012-colonial.p...](https://dourish.com/publications/2012/ubicomp2012-colonial.pdf)

Ubicomp's Colonial Impulse

</comment><comment><USER22> People have been grumbling about that since the invention of fences.</comment>


How to Work Quietly - <AUTHOR> http://blog.idonethis.com/quiet-work/

<comment><USER2> How many of the executives who push open offices make sure that their kids have a quiet place to do their homework?</comment>


My hacky Twitter robot got 10K followers behind my back - <AUTHOR> http://whotrended.it/blog/my-hacky-Twitter-bot-got-10K-followers

<comment><USER2> It would be interesting to use the data to find out what makes a hashtag trending. I imagine that there are a few common themes which will pop up again and again. The question is whether the data used by this bot are usable for such an analysis. Any thoughts?

<comment> dimi-31 Oh Yes there are... mainly Justin Bieber, 5SOS and One direction. You want success on Twitter? You should definitely talk about that!

Also yes he could definitely do some text mining on the trending topics, that would be an interesting topic.</comment></comment>


Road safety: UK set to adopt vehicle speed limiters - <AUTHOR> https://www.bbc.co.uk/news/business-47715415 <comment><USER2> Although the title says UK, this is really an EU initiative. The interesting part is that this would also appear to be a framework for the development and adoption of self-driving technologies. Not sure how restrictive it might be to competition in the sense it levels the playing field in terms of expectations and prevents the first company with a sufficiently good system to run away with the market.</comment>


Xiaomi Mi 10 Ultra Transparent Edition with 120X Zoom Official Posters - <AUTHOR> https://sparrowsnews.com/2020/08/08/xiaomi-mi-10-ultra-transparent-edition/ <comment><USER2> Surprised Xiaomi haven't fallen foul of the US's anti-China protection racket yet.

<comment><USER3> My money says DJI is next.</comment></comment>


The economic returns to attending university - <AUTHOR> https://www.economist.com/blogs/graphicdetail/2018/02/higher-education <comment><USER2> A design principle this article illustrates by violating it: Don't use Javascript to make reading an article less random-access.</comment>


We're entering the decade of the developer - <AUTHOR> http://blogs.techrepublic.com.com/hiner/?p=6020

<comment><USER2> I was with the author until "every platform will have its own app store."

I bloody well hope not.

<comment><USER3> I'm firmly convinced that the app model is a dead end, which makes the whole article pointless.

<comment><USER4> The two main benefits I see of the app store model: \- Centralised program repository. (Users can go to one site and find programs listed in a consistent format, with related services provided alongside, like ratings and reviews.) \- Program "quality control". (Spam, malware, and unusable programs aren't admitted: developers must make their programs _good_.)

Googling for programs, then having to find out how good they are on Wikipedia, forums, and blogs is a pain. The app store model means users can easily find good programs.

(Admittedly the app store model has some flaws but I'm playing devil's advocate here.)

As for the app model, making every little function its own program can seem overkill, but this allows them to be tailored to a device and have greater consistency with the device's look and feel.

</comment></comment></comment><comment><USER5> <http://www.youtube.com/watch?v=8zEQhhaJsU4></comment>


Your Kinect Is Watching You - amazing, disturbing things it can learn about you - <AUTHOR> http://www.slate.com/articles/technology/gaming/2012/03/kinect_research_the_amazing_disturbing_things_your_gaming_console_can_learn_about_you_.html

<comment><AUTHOR> Kinect is more powerful than video footage because video can _show_ what someone does, but the Kinect can analyze what you do and get a deeper understanding.</comment>


Encryption Workarounds (2017) - <AUTHOR> https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2938033 <comment><USER2> Very nice discussion paper that outlines the taxonomy of breaking encryption. The outcome is six classes of attacks, mitigations and legal implications.</comment>


Meeting OpenMoko - <AUTHOR> http://research.operationaldynamics.com/blogs/andrew/software/openmoko/doing-open-the-right-way.html <comment><USER2> I don't like the circular design, it makes the phone seem bigger than it is. The $350 price tag without service contract is pretty good, though.

OpenMoko dimensions: 120.7 x 62 x 18.5 mm | iPhone dimensions: 115mm (L) x 61mm (W) x 11.6mm (T)

<comment><USER3> Not to mention that this has a 480x640 screen and the iPhone uses 320x480.

</comment></comment><comment><USER4> So Paul when you brought this idea up earlier (an OS for a phone), what kind of apps did you envision people writing? What's not out there now that you think needs to be?

<comment><AUTHOR> I didn't propose that startup idea; that was from Robert Morris.

<comment><USER4> Ah, I guess I'm programmed to think YC == PG. Don't know if Robert frequents the site here but it'd be a cool discussion to have.

</comment></comment></comment><comment><USER5> Wouldn't it make more sense to basically just have a web browser on the phone to access all your data?

</comment><comment><USER6> I can see this definitely having more nerd-cred than the iPhone. Hope it works out.

</comment><comment><USER7> "no binary drivers allowed, period"

That's the only part in bold. Why is that such a big deal? I thought forbidding binary drivers was a hurdle for Linux.

<comment><USER8> I think the idea is the hardware is fully documented, hence the reason to go with this particular model. (This is just an assumption.) The project developers won't allow _themselves_ to be tempted by a closed-hardware phone.

</comment></comment><comment><USER9> I'd totally buy one the next time I get a phone, but I can't help thinking that the iPhone is going to kill this.</comment>


Wehn did u fnid out taht olny the fisrt & lats lettres cuont - <AUTHOR>

<comment><USER2> "Anidroccg to a Utisreviny rcraeseh waht mrettas the msot is the fsrit and lsat ltretes of ecah wrod. Waht do you tnihk?"

Not as easy, ha?

<http://www.bisso.com/ujg_archives/000227.html>

Transpose the letters in the way I did above and it won't be easy at all.

<comment><USER3> I had no problem...

<comment><USER4> Yeah it's actually easier the faster you try to read it.

</comment></comment></comment><comment><USER5> About 10 years ago, when someone sent me an e-mail telling all about it ;-).

</comment><comment><USER6> There is a Firefox extension to do this:

<http://addons.mozilla.org/en-US/firefox/addon/3997>

</comment><comment><USER4> lats is wrong ;)

</comment><comment><USER7> Tihs is olny ture if the wrods are sohrt!

</comment><comment><AUTHOR> Accordnig to a Unviesrtsy reseacrh waht mattres the msot is the fisrt and lsat lettres of each wrod. Waht do you tinhk?</comment>


Intel's 10th-generation H-series laptop CPUs break 5GHz - <AUTHOR> https://arstechnica.com/gadgets/2020/04/intels-10th-generation-h-series-laptop-cpus-break-5-ghz/ <comment><USER2> Intel's single core turbo frequencies are rarely achieved much less sustained on desktops with big water cooling. Their marketing based on turbo gigahertz has always been very misleading. I'm skeptical that they've changed any of this with their 10nm parts, especially because we're talking about thermally- constrained laptops here.

Ryzen 4000 has Intel running scared. This next generation should be interesting!</comment>


The Truth about Aaron Swartz's "Crime" (2013) - <AUTHOR> https://unhandled.com/2013/01/12/the-truth-about-aaron-swartzs-crime/ <comment><USER2> From 2013.</comment>


AutoFlip: an open-source framework for intelligent video reframing - <AUTHOR> https://ai.googleblog.com/2020/02/autoflip-open-source-framework-for.html <comment><USER2> "By detecting the subjects of interest, AutoFlip is able to avoid cropping off important visual content."

And they manage to demo it with a scene where a lady talks to a guy in a checkered shirt in front of a yellow background. The algorithm cuts off the lady completely and only keeps the guy. I guess she mustn't have been important. Next time she should try to look more like "interesting, salient content".

<comment><USER3> Yeah, I noticed that. While it's possible this is the result of the machine learning algorithm implicitly picking up a male bias in the data set that causes it to rank men more highly in terms of importance, I don't know how likely that is in practice. Maybe the explanation is as simple as the man taking up more pixels, or a bias toward lighter colors (like the man's white & blue shirt) while black colors (like the woman's clothing) are more likely to be considered unimportant background. Maybe the algorithm considered both approximately equally important and the result was essentially a coin flip.

Regardless, I agree that it's not a great look when the caption on that example talks about how AutoFlip "detects the subjects of interest" and "avoids cropping off important visual content". It's definitely not sending the intended message.

<comment><USER4> I interpreted it as just picking one visual entity to focus on for that cropped clip for design reasons, since the letterboxes necessary to get both entities in that portrait orientation would be huge and visually unappealing [1].

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

</comment></comment></comment><comment><USER5> Results actually look really good. Having to just worry about filming in one format, such as widescreen 4K. Means you just have to worry about getting the shot. I think its good enough to build an emotion predictor vector.

</comment><comment><USER6> Aside, but I've always wondered how pan and scan was done in practice for converting film to VHS. It seems either tedious or sloppy.

<comment><USER7> Pan and scan was historically done manually. Turner Classic Movies made a great 5-minute documentary about the practice and how much of the filmmakers' intention it loses. Definitely worth a watch: [https://www.youtube.com/watch?v=5m1-pP1-5K8](https://www.youtube.com/watch?v=5m1-pP1-5K8)

</comment></comment><comment><USER8> This is a more scalable solution then the Spectacle solution (record both hori- and vertical). I wonder if filmmakers will adapt their filming to cater to this algo - i.e. having a bigger margin to the edge in order to have AutoFlip give even better results.

</comment><comment><USER9> Anytime I see anything with the phrase "open source" \+ "google" I immediately think programmer API trap.</comment>


The economics of restaurant reservations - <AUTHOR> http://www.thestar.com/living/article/535086 <comment><USER2> See also: <http://www.gourmet.com/magazine/2000s/2000/10/pocketful> \-- I think I first came across this from a link on YC.

<comment><USER3> You're right - these articles do make a very good pair. The one helps to explain the other.

</comment></comment><comment><USER4> Fascinating. I wonder if some sort of math model could help them squeeze out extra 5% or so?

<comment><USER5> In some ways, yes. Although it's less of a math model, and more of a server (as in waitstaff) model. A good server will make suggestions and upsell you on things like premium side-dishes or other add-ons, without making it seem like they are doing so.

A well mannered and sales-oriented waitperson can easily bump up the average per-seat revenue by 10-15%, without making the diners feel rushed.

<comment><USER4> I was thinking more around scheduling the tables.

A model could take into account who is coming (given caler ID), today's events, weather, traffic accidents, etc. and see if there is effect on how late people come and how long they stay.

Now of course a good waiter would be very helpful in that customers will not have to wait to order deserts and so they can leave earlier. Good waitiers however are very rare and once found can not be easily scaled like a good model can.

<comment><USER5> Trust me, I know what you were thinking :)

The problem, IME (past sous chef) is that it is really really really hard to manage the aspect of getting the people in the door, and turning the tables in any scheduled manner. World events, the weather, another restaurant featured in the paper or on TV all can greatly affect your ability to get asses in seats.

It's more achievable to maximize revenue through sales than through anticipated table turns.

</comment></comment></comment></comment><comment><USER6> Most operations courses in B-schools use the "Benihana of Tokyo" case ([http://harvardbusinessonline.hbsp.harvard.edu/b02/en/common/...](http://harvardbusinessonline.hbsp.harvard.edu/b02/en/common/item_detail.jhtml?id=673057&referral=2340)), which is all about maximizing profit per square foot. I was sort of shocked by the times they gave in this article, after recalling that article. Clearly the restaurants talked about are more upscale.</comment>


How interesting can a Dev-Ops Engineer positon be? - <AUTHOR> <comment><USER2> I am a DevOps engineer and everyday is different. That is why it is so interesting. If you work for a company that follows the true DevOps model it can be a very rewarding experience.

DevOps at my company make a great deal of infrastructure decisions as well as planning and security. We also get to write fun tools to make our jobs easier.

Not all DevOps departments are like this, I've worked in some really bad ones.

</comment><comment><USER3> That totally depends on the position.

Sometimes it is really a sysadmin position, sometimes a developer who does infrastructure, and sometimes something entirely different..

Most often there will be shell-scripting, automation and perhaps cloud computing involved so if you like those it will be interesting.</comment>


The Algebra of Algebraic Data Types - <AUTHOR> http://chris-taylor.github.io/blog/2013/02/10/the-algebra-of-algebraic-data-types/ <comment><USER2> Author of the blog post here. It's amusing to see this submitted by Don Stewart, since it was his explanation[0] of algebraic data types that first made them "click" for me! I think I forgot to mention him in this post, but I remembered in the talk[1].

If anyone's interested in this and where else it might go, I recommend read Don's SO answer[0], this SO question and the related answers[2] and these papers [3,4] on derivatives and dissections by Conor McBride. There are also several good blog posts[5] and a paper[6] by Brent Yorgey on the topic of combinatorial species, and of course Dan Piponi's blog[7] is a treasure trove of interesting insights at the intersection of math, physics and computer science.

[0] <http://stackoverflow.com/a/5917133/546084>

[1] <http://www.youtube.com/watch?v=YScIPA8RbVE> (shitty audio for the first minute or 2 - it gets better).

[2] [http://stackoverflow.com/questions/9190352/abusing-the- algeb...](http://stackoverflow.com/questions/9190352/abusing-the-algebra-of- algebraic-data-types-why-does-this-work)

[3] <http://strictlypositive.org/diff.pdf>

[4] <https://personal.cis.strath.ac.uk/conor.mcbride/Dissect.pdf> [5] <http://byorgey.wordpress.com/>

[6] <http://www.cis.upenn.edu/~byorgey/papers/species-pearl.pdf>

[7] [http://blog.sigfpe.com/2010/08/divided-differences-and- tomog...](http://blog.sigfpe.com/2010/08/divided-differences-and-tomography- of.html)

Edit: It should go without saying, but because a few people last time around seemed to think I was trying to pass this off as my own ideas, let me state that there is _nothing_ original in this blog post. It's a repackaging of the ideas and work of lots of other people, all of whom are way smarter than I am.

<comment><USER3> I don't mean to be negative, it's probably the material as much as you but as I read the article, I find a voice repeating "what is the point, where is this leading, why, why?". I mean, as I read the article, my impression is "here's verbose syntax that does describe types but whose relation to the tasks of an ordinary programming language, to getting things _done_ is left unexplained for too long for attention span, if it is explained at all".

And I'm fairly mathematically sophisticated (MA a while back with some effort to keep current).

It seems like the constructions "thrown on the floor" everything that happens in the creation of a type. But I can't understand what that does except make simple operations look like a giant mess.

I would add that the stack overflow mentions that the construction is a way to construct an algebraic with "polymorphic parameterization". IE, Haskel uses the laws of algebra and some supplied primitives (AddL AddR, which you mention but don't define!)to calculate A + B. Perhaps if you make that explicit, the article wouldn't have the "floating in the clouds and never coming down" quality that it has for me now.

<comment><USER4> Aside from the practical interest in defining zippers as noted in another response, isn't it enough that there be this interesting and (by many, anyway) unsuspected correspondence, that holds fairly deep down? I mean---taking the Taylor series of a type! After all, we are told that "anything that gratifies one's intellectual curiosity" is suitable for an HN submission, no?

<comment><USER3> Well, the correspondence sounds interesting but if remains just on the level of the unexplained, it is hard to see it really being interesting.

If you define a function, call it a "type" and then take the Taylor series of that function, how mind blowing is that really?

My point is that without a motivation to these constructions, they are just constructions. It may be everyone in-the-know understands the motivation already, knows why this thing labeled type really has a "deep" relation to an abstract type-thing. Fair enough but I'm just saying if one omits this motivation, your whole exercise doesn't look interesting to those not in-the- know, OK?

</comment></comment></comment></comment><comment><USER5> If you find this way of looking at of algebraic data types strange, or want to understand why it is sound, pick up a textbook on analytic combinatorics (a great one is free [1]) because the parallels are _very_ close. (In analytic combinatorics, the goal is to count the objects in various combinatorial classes.)

Part 2 of the linked-to article, for example, shows that the list data type

        data List a = Nil | Cons a (List a)

can be mapped to the algebraic form

        L(a) = 1 + a * L(a),

having the solution

        L(a) = 1 / (1 - a).

In analytic combinatorics, the sequence operator _F_ ( _a_ ), representing sequences of the underlying class _a_ , is given

        F(a) = 1 / (1 - f(a))

where _f_ ( _a_ ) is the ordinary generating function (OGF) representing the class _a_. It's basically the same as the list data type's representation, which is what we ought to expect since a list is just a sequence.

[1] <http://algo.inria.fr/flajolet/Publications/book.pdf>

<comment><USER6> Robert Sedgewick also has created a Coursera course for analytic combinatorics where he develops some of the ideas in his book.

<https://www.coursera.org/course/ac>

The topic is incredible. Basically all the math you learn in Undergraduate mathematics gets pulled in to solve counting problems and perform algorithm analysis. It's inspiring. :)

</comment></comment><comment><USER7> For me, this was a great article. I deepened my admittedly limited understanding of algebra, and picked up a little of the flavor of Haskell in the process.

"Every little bit helps," said the old lady as she pissed in the ocean. I now own a little less dumbass.

</comment><comment><USER8> The idea that types are the same because the cardinalities of their sets of values are the same is weird. So my type for the days of the week is "equal" to my enumeration of the Seven Dwarves, and the sum of Maybe Bool and Bool->Bool? How is that a useful definition?

<comment><USER9> They aren't the same, they're isomorphic—there exists some isomorphism between them, which is to say a bijective homomorphism, which is to say a one-to-one mapping between two algebraic structures, which is to say types. Category theory is too damn abstract.

In any case, having isomorphic structures means that any transformation you apply to one can be applied to the other by way of a particular isomorphism. There is a "next" day of the week, in the same way that there is a "next" Dwarf by order of introduction[1], in the same way that there is a "next" value in this partial ordering I just made up for (Either (Maybe Bool) (Bool -> Bool)) which you can't program in Haskell:

Left Nothing < Left (Just False) < Left (Just True) < Right (const False) < Right id < Right not < Right (const True)

[1]: Doc, Bashful, Sleepy, Sneezy, Happy, Dopey, and Grumpy.</comment></comment>


Interesting startup GitHub projects to follow - <AUTHOR>

I'm trying to find good startup repositories to follow and study on github. projects like  reddit, discourse, etc. <comment><USER2> Github has the useful trending section, [https://github.com/trending](https://github.com/trending), which shows which repositories are getting starred frequently and gives a good sense of which repositories are gaining traction

<comment><AUTHOR> Yes, i've seen those projects but those are almost new frameworks, libraries, etc. not startup projects per se, i would love to see for example a really good stackoverflow clone, or trello clone or some really exiting webapp for example basecamp etc.</comment></comment>


Ask HN: GUIs on embedded linux, oh my - <AUTHOR> By day I am not an embedded developer; by night I'm trying to be. I have an i.MX6 (solo) based device that I ultimately intend to sell in [very] small quantities for a niche market. In other words, this is closer to a hobby than an actual business.
One of the requirements is a very attractive and responsive UI. Based on my research Qt seems the best fit, but its LGPL restrictions and very expensive commercial license makes it almost impossible for me to choose. Qt wants $6,600 up front plus royalties and afterwards a subscription for support. I'm just a guy trying to build a thing... I can't afford that!
Trying to look for alternatives has been frustrating. The practicality of HTML5 on my platform isn't sure to me. To real embedded linux developers out there, please tell me what you use for your GUIs? It needs to be something of similar quality to a car infotainment system. <comment><USER2> Current commercial Qt developer on iMX6 here.

You can use the LGPL version of Qt as long as you use dynamic linking to the Qt libraries and provide for the other things in the agreement (like letting users access the Qt source code, provide a way to update libs, etc). I haven't had a need to modify the libraries at all, I'm using a vanilla build for ARM right from the Yocto output.

In my opinion (been doing this for 25 years) Qt is the only embedded UI that's worth using these days. I stick with 4.8 and don't use Qt5 or QML, although you probably get a lot more performance out of the system that way and get to harness the accelerator under OpenGL.

Qt4 on 6Solo works fine enough for me and it's dead simple to do stuff like talk to lower-level drivers or make a Windows version for demonstration. Freescale supports enough of the backend stuff to use gStreamer and ALSA. I like that.

I recently tore down a car infotainment system that used iMX6 and Opera as the UI. The backend was all in Javascript. It looks like hell to develop for, but then again I don't work in Javascript all day.

<comment><AUTHOR> Thanks so much for your answer. For an embedded device, what's a recommended way to make it so my users could change out their Qt libraries as required? From my inexperienced POV it sounds horrible - I'd have to create some kind of custom update for them, provide them the tools to build Qt, and probably something else I'm missing in my understanding of the LGPL.

Also I was hoping to use Qt5 if that makes a difference (QML seems nice..).

<comment><USER2> I've pondered the same question and I really have no clear answer.

But I also think you're not obligated to provide as much as you think. You have to provide source (easy enough), but you really don't have to actually give them all the tools to build it do you? Be nice and point to the Yocto build you used and say you got your gcc toolsuite from there.

As for installation, all you really need to do is provide a way to _replace_ the libraries. I wouldn't give out an entire rebuild/reflash suite or anything. Make a hidden screen in the program somewhere to let you mount a USB drive and replace the libQt?.so.4 files. And that's it. If they brick it, you shrug and say "not my deal".

In all my time I've never encountered anyone that actually wanted to _do_ any of this. It's all a formality, especially when Qt literally does everything you need. I'm not even really sure what you would want to hack on Qt in the first place.

<comment><AUTHOR> I can't imagine why anyone would want to do it other than to mess with me. However, as there is a competing product that could be a possibility.

<comment><USER2> Ah, you think someone would do this to brick a device they don't own in the field?

Then I would make the method accessible, but behind some kind of authentication method. User mails you and asks for the way to install it, once you've verified it's really them you provide the _unique_ backdoor to that machine. Might be one way to approach it.

You can burn a unique serial number or whatever directly into the IMX6, there's a eFuse/OTP driver that lets you access it from the filesystem.

<comment><AUTHOR> I don't think they would sabotage a device in the field, but they would check my compliance with the LGPL in hopes they could hang me on it. Maybe, I've really no idea. Would hate to find out.

Great tip on the eFuse and an authentication method! Have you ever released a product built with Qt under the LGPL?

<comment><USER2> I'd need to catch up with what happened in the BMW i3 case to understand what your obligations are to people that don't own the actual target device. At minimum, you provide a link to a repository you control with the vanilla Qt source. That should satisfy the requirement, right?

Installation of a modified library would seem (to me at least) to be a method you can share only with authorized owners.

I've released Qt products under LGPL, but they're all industrial equipment and I've never had a customer give any of this a second glance. They just want their shit to work.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> Qt is basically unrivaled in this space in my opinion. If you really control your hardware and software, it seems like its easier for you to just comply with the LGPL requirements. You can find some other vendors for similar software with Google but they aren't as 'attractive' and 'responsive'. That being said I think IVI systems will start looking at web rendering soon if they haven't already. If the LGPL is a show stopper for you, you can always give CEF a shot to see if its fast enough (though I've always been confused about CEF because I thought it used WebKit which was LGPL)

Also depending on how complex your UI is going to be you can always take the crazy route and roll your own. If your scope is very specific and limited, it wouldn't be that bad.

<comment><AUTHOR> Based on some quick research building CEF for the imx6 doesn't look trivial. Do you know of any devices (for sale) that do use Qt under the LGPL? Or in your experience does everyone get the commercial license?</comment></comment>


Show HN: A new protocol for packet radio including ECDSA and compression - <AUTHOR> https://github.com/brannondorsey/chattervox <comment><USER2> Maybe messages should include a coarse timestamp to prevent replay of old messages by some adversary.

Someone could resend a month old "yes" with your valid signature to a question someone asks now.

Also it might be beneficial to include sequence numbers or message IDs and for example echo the last 4 ids in following messages so recipients can detect holes. - The chat could insert some placeholder to notify recipients of missing previous messages.

<comment><USER3> This is a really great idea. Might be a good github issue to open?

<comment><USER4> I've opened one lest it gets forgotten: [https://github.com/brannondorsey/chattervox/issues/10](https://github.com/brannondorsey/chattervox/issues/10)

<comment><AUTHOR> I've opened an RFC for this issue and welcome comments here: [https://github.com/brannondorsey/chattervox/issues/19](https://github.com/brannondorsey/chattervox/issues/19)

</comment></comment></comment></comment><comment><USER5> Does this do any sort of FEC? One of the things that makes stuff like this tricky(and APRS in general) is that one flipped bit throws off the whole decode.

From what I've seen out there would be a 40% improvement[1] in just base APRS if there was some form of basic FEC built into the protocol. Sadly most of "state of the art" is stuck back in the 80s.

[1] [http://eludium.stensat.org/mcguire/projects/FX-25/FX-25_perf...](http://eludium.stensat.org/mcguire/projects/FX-25/FX-25_performance.htm)

<comment><USER6> Does AFSK imply the use more than two frequencies? Using 4 or 8 frequencies and trellis modulating should get significant gain (i.e. using 4 frequencies and trellis modulating 1 bit per chip should be more robust than using just 2 frequencies).

<comment><USER7> AFSK, as used in amateur radio modems today, uses the Bell 202 modem standard, which is 2-ary FSK [https://en.wikipedia.org/wiki/Bell_202_modem](https://en.wikipedia.org/wiki/Bell_202_modem)

Unfortunately, most folks on the VHF/UHF bands use FM radios with pre-emphasis and de-emphasis circuitry, so you would need to design a waveform that deals with those challenges.

<comment><USER8> Also known as binary frequency shift keying (BFSK).

</comment></comment></comment></comment><comment><USER9> _An AX.25 packet radio chat protocol with support for digital signatures and binary compression. Like IRC over radio waves_

I just wanted to say thank you for such a concise, _clear_ summary. So many projects get posted with cryptic descriptions full of insider terms.

<comment><AUTHOR> Thanks mate! I appreciate that. I was looking for a way to describe it that seemed as down to earth as possible. Actually I was trying to go for that with most of the documentation so far (and what will be coming). It's not always so easy with stuff this technical but it's good to hear it's working for some people.

</comment></comment><comment><USER10> Cool project! I have always been interested in the amateur radio scene.

So encrypting amateur radio comms is illegal in the US? Is there a particular reason for this?

<comment><USER11> It's also illegal in Canada.

With amateur radio "dying" as an interesting hobby (my opinion, but widely held) it is often speculated that if encryption was permitted in amateur radio communications, there would be quite a resurgence in interest. I predict a new generation would start to pick up the hobby and find untold uses (and abuses) for it.

<comment><USER12> There are more hams in the US, and more active hams, than ever before. That's a funny sort of dying!

Joe Taylor's work on below-the-noise signal extraction has revitalized shortwave: [https://physics.princeton.edu/pulsar/k1jt/wsjtx.html](https://physics.princeton.edu/pulsar/k1jt/wsjtx.html) , particularly at the nadir of the sunspot cycle. That's a funny sort of dying!

Amateur satellites are accessible for $100 in parts: [https://www.n2yo.com/satellites/?c=18](https://www.n2yo.com/satellites/?c=18) ; with the same parts and some practice and luck you can talk to the space station. That's cool for anyone but especially cool for students; NASA will do more amateur radio work in 2018 than in any previous year. That's a funny sort of dying!

If encryption were permitted on amateur bands, I'd expect to see commercialization right quick—along the same lines as the PACTOR modems embraced by the long-duration recreational sailing community: [https://www.cruisingworld.com/staying-connected-at- sea](https://www.cruisingworld.com/staying-connected-at-sea)

<comment><USER13> Is there a good description of what those $100 in parts for satellite work are? Or better yet, something purchasable that's likely to work? I've been wanting to get into it, but I've never found a really accessible guide to getting started in satellite communication.

<comment><USER12> Sure! To talk to a satellite you need an antenna, a receiver, a transmitter, and maybe a computer—not for voice, but for text modes.

Arrow will sell you a great antenna: [http://www.arrowantennas.com/arrowii/146-437.html](http://www.arrowantennas.com/arrowii/146-437.html) , or you can google "tape measure yagi" and build an okay antenna.

Then you can get the transmitter and receiver together, in a package like the regrettable BaoFeng UV-5R: [https://www.amazon.com/BaoFeng-UV-5R-Dual-Radio- Black/dp/B00...](https://www.amazon.com/BaoFeng-UV-5R-Dual-Radio- Black/dp/B007H4VT7A) . This is a terrible radio. Their quality control is so bad that you sometimes commit a federal offense by pressing the transmit button—and for $100, you can't afford the test equipment to tell! So maybe use it as the receiver in a two-radio setup, and transmit with something like a Wouxun KG-UV9D.

A Kenwood TH-D72A is an excellent choice to do the transmitter and receiver jobs, but hundreds of dollars. A Yaesu FT-60 is a great choice too, but it won't have full duplex—so you can't be sure your signal is getting out without help.

To _listen_ to a satellite you need even less: a crappy antenna and an RTL2832 USB software-designed radio: [https://www.adafruit.com/product/1497](https://www.adafruit.com/product/1497)

For all of these, you'll end up wanting miscellaneous coaxial cable and a bunch of ends. Hams tend to build up a library of crimpers and spare ends and such, so look to borrow from a friend or a club as you get started. The 75 Ω cable that's ubiquitous for television signals will _totally work_ , but you'll have much less loss and much much less stress on components if you buy 50 Ω cable.

Why not try the tutorial at [https://www.rtl-sdr.com/rtl-sdr-tutorial- receiving-noaa-weat...](https://www.rtl-sdr.com/rtl-sdr-tutorial-receiving- noaa-weather-satellite-images/) ? If that works, you can expand from there: the tutorial teaches you a huge amount about aiming at satellites and the physical work necessary to capture signals from space.

<comment><USER13> Thank you! This really comprehensive. I'll probably start with the NOAA weather tutorial, and go from there.

</comment></comment></comment></comment></comment></comment><comment><USER14> > With amateur packet radio anyone can pretend to be anyone else. With > Chattervox, you can be sure you're chatting with the person you intend to.

This is a great idea, for both the community and as a hobby project. Has there been any other attempts at similar protocols for amateur radio?

<comment><USER15> You can run just about anything over AX.25 since it's just the data link layer in the OSI model. You could run HTTP on top of IP on top of AX.25 with TLS/SSL message encryption turned off so you don't run afoul of FCC rules. The authentication would still be there but everything would be in the clear. You could also run IPsec with just the authentication field in the header, no encryption. Even if you didn't want to get that deep into the layers, you can always just pgp sign your messages on packet radio. Depending on the signature length, it could take several extra seconds to send the pgp signature at the typical 1.2Kb/s!

Decreasing the complexity of the stack is a good move forward. The speeds of packet radio require a custom protocol that limits overhead but leaves options for authentication and message signing. Some hams have been using packet radio at wifi frequencies which basically creates a wireless WAN with much higher data rates, making any of the authentication methods much quicker.

<comment><USER16> Wouldn't they need to significantly decrease the transmission power in order to use the ISM bands, making that application more LAN than WAN? And if the result is both legal and technologically superior to existing WiFi hardware then why hasn't the IEEE picked up on it?

<comment><USER15> Oh, it's not better than normal wifi. It's just better than 1200 baud over VHF or even 300 baud over HF. It's just typical wifi hardware hooked up to high power amps and high gain antennas to get greater distance. People are adjust the frequencies to the ham band and then running mesh networks. Part 97 allows you to modify part 15 (normal wifi hardware) to put up to 10W out. 10W frequency hopping spread spectrum links can go pretty far at GHz frequencies.

<comment><USER16> That merely transforms my previous question into a question of why WiFi routers+adapters with discrete antennae, don't also ship with 10W output and a suitably-beefy electrical system to match.

</comment></comment></comment></comment></comment><comment><USER17> I would love to another version of this using gnuradio and lime sdr mini (or similar)

<comment><USER18> This looks like it implements the packet processing only, and suggests using Direwolf as a software AX.25 modem. Direwolf can decode audio piped from rtl_fm or gqrx, so using a SDR is likely already possible for receive; not sure about transmit.

<comment><USER17> Maybe the Direwolf source code can work via the python calls from gnuradio itself.

</comment></comment></comment><comment><USER19> If you every want to listen to ham packet radio in the US, tune your radio to 144.390 MHZ and it sounds like a modem :)

</comment><comment><USER20> This is pretty neat, and its nice that I already have all the pre-reqs :-). Although I'm wondering if I have to use the analog cable for the radio as I've got the USB one, that will be a bit of investigation.

<comment><AUTHOR> After a bit of prodding I caved and bought an aux cable, but I've wondered the same about the audio -> USB cable. It think it's FTDI so I think a clever person might be able to figure it out. If you get anywhere with this let me know!

</comment></comment><comment><USER21> Pretty neat. I like the ECDSA for remote control.</comment>


Ask HN: What are some cool startups that are doing well but not in the press? - <AUTHOR> <comment><USER2> Indie hackers covers them regularly, but I guess that also qualifies as "press": [https://www.indiehackers.com/interviews/page/1](https://www.indiehackers.com/interviews/page/1)

You'll have to define startup though. Some are bootstrapped but growing slower. Some have millions in revenue but plan to be family businesses rather than giants.</comment>


Migrating a Google Code issue tracker to GitHub - <AUTHOR> https://github.com/JamesMGreene/gc2gh-issue-migrator

<comment><AUTHOR> .. because the issue tracker API is vanishing:

<http://googleblog.blogspot.com/2012/12/winter-cleaning.html>

"The Issue Tracker Data API allows client applications to view and update issues on Project Hosting on Google Code in the form of Google Data API feeds. We'll shut down the Issue Tracker API on June 14, 2013."</comment>


Videos from Scala Days 2010 - <AUTHOR> http://days2010.scala-lang.org/node/136 <comment><USER2> Damn! I was planning on writing code tonight... Ah well...

</comment><comment><USER3> Thanks</comment>


All You Have to do is Ask - <AUTHOR> http://www.jamesaltucher.com/2011/05/all-you-have-to-do-is-ask/

<comment><USER2> This is a great post. It covers the "you just have to ask" approach made famous by Feynman (<http://news.ycombinator.com/item?id=1196928>) and elaborated upon by Mystery ([http://en.wikipedia.org/wiki/The_Game:_Penetrating_the_Secre...](http://en.wikipedia.org/wiki/The_Game:_Penetrating_the_Secret_Society_of_Pickup_Artists)), which was initially developed for picking up women but is also devastatingly effective in raising investment and entrepreneurship in general.

But the post goes waay beyond that. His sympathy for the investor who turned him down and his reasons were moving. Read this one, then go back and read the "The Last Post" on HN yesterday (<http://news.ycombinator.com/item?id=2514270>). Then, go grab a cup of tea/coffee and stare out the window for 10 minutes and think.

That's what I'm going to do now.</comment>


Show HN: Pion-WebRTC, a Go Native WebRTC Implementation - Sean-Der https://github.com/pions/webrtc <comment><AUTHOR> Wow. This is so cool, we would definitely like to use it in our app at provlem.com, Exploring the use cases.

</comment><comment> Sean-Der Hey HN!

WebRTC is a powerful, but complicated technology. You can build amazing things, but it comes with a steep learning curve though. If you aren't sure what WebRTC is, here are some of the cool things you could build

* Send a video file to multiple browsers in real time, perfectly synchronized movie watching.

* Send a webcam on a small device to your browser, with no additional server required

* Securely send video between two servers

* Record your webcam and do special effects server side

* Build a conferencing application that processes audio/video and make decisions off of it

Using WebRTC in the browser is easy, but outside the browser is more of a challenge. There are multiple libraries, and they all have varying levels of quality. Most are also difficult to build, and depend on libraries that aren't available in repos or portable. pion-WebRTC aims to solve all that! Built in native Go you should be able to send and receive media and text from anywhere with minimal headache. These are the design principals that drive pion-WebRTC and hopefully convince you it is worth a try.

## Portable pion-WebRTC is written in Go and extremely portable. Anywhere Golang runs, pion-WebRTC should work as well! Instead of dealing with complicated cross-compiling of multiple libraries, you now can run anywhere with one `go build`

## Simple API If you know how to use WebRTC in your browser, you know how to use pion-WebRTC. We try our best just to duplicate the Javascript API, so your code can look the same everywhere.

If this is your first time using WebRTC, don't worry! We have multiple [examples]([https://github.com/pions/webrtc/tree/master/examples](https://github.com/pions/webrtc/tree/master/examples)) and [GoDoc]([https://godoc.org/github.com/pions/webrtc](https://godoc.org/github.com/pions/webrtc))

## Bring your own media pion-WebRTC doesn't make any assumptions about where your audio, video or text come from. You can use FFmpeg, GStreamer, MLT or just serve a video file. This library only serves to transport, not create media.

## Safe Golang provides a great foundation to build safe network services. Especially when running a networked service that is highly concurrent bugs can be devastating.

## Readable If code comes from an RFC we try to make sure everything is commented with a link to the spec. This makes learning and debugging easier, this WebRTC library was written to also serve as a guide for others.

## Tested Every commit is tested via travis-ci Go provides fantastic facilities for testing, and more will be added as time goes on.

## Shared libraries Every pion product is built using shared libraries, allowing others to review and reuse our libraries.</comment>


6 features Apple should include in the iPad 2 (not the ones you think)  - <AUTHOR> http://www.xconomy.com/national/2011/01/07/here-are-six-features-apple-should-include-in-the-ipad-2-and-theyre-not-the-ones-you-think/

<comment><USER2> Article on one page: [http://www.xconomy.com/national/2011/01/07/here-are-six- feat...](http://www.xconomy.com/national/2011/01/07/here-are-six-features- apple-should-include-in-the-ipad-2-and-theyre-not-the-ones-you- think/?single_page=true)</comment>


Show HN: Generate Rest API from JSON in Seconds - <AUTHOR> https://github.com/singerbj/SinatraApiGenerator

<comment><AUTHOR> Code is a bit sloppy still, but i was surprised as to how easy it was to get it up and running...in less than 150 lines!</comment>