skysight-inc/HackerNews huggingface dataset:
> Again, Apple will come into a market where a lot of their competitors make reasonable hardware but the software is complete trash.

I've worked for a number of consumer electronics hardware manufacturing companies. For all of them, software was an integral part of the product, but at the end of the day, what they're making money from is selling hardware, not software. Their business is turning raw physical materials into physical widgets, stuffing those widgets into plastic packaging, putting them on trucks, and shipping them off somewhere. Almost universally, the software produced by these companies is crap.

For whatever reason, most hardware companies just don't grok software. They see it as just another cost of manufacturing--a line item on the BOM just like screws and sheet metal. In order to move these widgets onto store shelves, we need to source these parts, assemble them with these steps, test the electronics like so, environmental, stress, UL testing and, oh, by the way, we need to spoon in some of this software stuff or nothing shows up on the screen, but keep it cheap! It's almost seen as a nuisance, a necessary evil: Just slap something together so we can get on with our real business of shipping widgets. Go to leadership in one of these companies and start talking about software best practices. User experience, A/B testing, unit testing, re-usable code, refactoring, hell--source control! They'll look at you like you're wearing a horse head mask. Software is just not a priority--it is seen as an unfortunate cost, not as a differentiator.

So, yea, when a software company (not just Apple, anyone who fundamentally gets software) enters their market with their own product, expect it to be light years ahead.
Windows XP. Python through about 2.6. Java until quite recently. Old Perl code that I shudder to think about.

<shudder>

Oh, and some old Android. The Android version that started supporting SNI is apparently also the version that tightened up licensing, so a number of third-world forks still use the old version. And as long as most of the web works without SNI, they don't have a huge incentive to change that.

The work that some browser vendors (Mozilla, Google) are doing to privilege imperfect-TLS over no-TLS is crucial here. Also, yes: new Web work should all be done over HTTPS.
Google needs to actually develop Android as a platform where drivers and their software can be distributed separately. Like Windows. Even Windows Phone lets Microsoft push the OS directly (first tested in the Dev Preview feature) separate from the firmware updates from the carrier or OEM.
Those are all great, in fact I'd recommend reading pretty much all of his books. I've got a shelf full of them. :)
I also do it most of the time. When ever I see a book recommendation here then I go to amazon either to buy it or save it in my wish list.
For a meditation on which aspects of our text-based programming tools derive from merits of the medium versus historical accident, see: http://westoncb.blogspot.com/2015/06/why-programming-languag... —there's also a second part (linked to within) that describes an alternate, general purpose architecture for programming tools that lets us stay powerfully text-centric while moving away from operating on character sequences under the hood.

I wrote this non-traditional program editor: https://youtu.be/tztmgCcZaM4?t=1m32s

And a new kind of visual debugger: https://www.youtube.com/watch?v=NvfMthDInwE
With some frugality, I think it's physically and economically possible. Imagine an America where grandparents (and great-grandparents if any) live with one of their children's family. Assuming an average of two children per grandparent, it will be half of the households will have 2 children, 2 parents, and 2 grandparents, and the other half the traditional nuclear family. The nursing home infrastructure will be much reduced because only the childless will live in them. It can reduce the liability on social security. This can be countered with tax cuts to children who are working to support their parents. Implement a law where elderly parents can sue their children for parental support, to cover cases where children do not care about their parents. A society that cherishes the dignity of dying at home surrounded by friends and family as opposed to enduring 3 months of humiliating treatment before dying violent death surrounded by nurses, will reduce healthcare costs. Grandparents will also reduce the labor requirement for childcare, and also provide guidance and teaching during times when parents are too busy working from day to night. In the case of widows and widowers, and single parents, grandparents can increase the chance a child grow up with a role model of their own gender. Being supported by adult children means even in the case when a 50 year old parent loses their job due to ageism, they will not be forced to live on their streets; With some frugality it should be possible for a pair of children to support their parents and grandparents living in the same home. These dynamics will reduce the pressure on the government budget, increase social capital, increase the sense of belonging, reduce the dependency for "a job" even when you're 50+, reduce the cost of housing by reducing demand, and by sharing furniture and other goods, reduce household expenditure. A 50 year old unemployed couple will be able to converse and socialise with their retired 75 year old parent(s) as a day-to-day activity.

And when you're spending time with people, in a house with a family, with clean water, sufficient food, electricity and internet access, with regular social gatherings, can you really be said to be in "lonely poverty"?

That said, all this is physically, economically possible today, but it is probably not politically or socially possible. It will take further decline before people finally realise it is what they've wanted all along.
Interesting to place the technical debt creditor/borrower relationship that way round: often it seems that it is seen as being the engineering team who are the debtors, and the debt is owed to some sort of abstract entity - possibly the codebase itself. The developers wind up going to the business and begging for the time to pay down some of the debt, like a college kid going begging to dad to help pay down the credit card after they ran up too much of a bill.

I much prefer this characterization, where the engineering team are the lender, and they can call the business in to confront them with the unpaid bills that are coming due and demand a structured plan for how they're going to clear down some of their debt.
I have done some programming in these and they are definitely more suited to the applications that their creators had in mind.

I wouldn't want to do general purpose programming in them --
at least as they exist currently.
That was a whole lot fluffy vagueness. What they want are stable jobs that don't require higher education. Quite a bit follows from that.
A Nail Salon Helps to Bring Refugees to Light
I generally discourage "smart TVs" for this reason. It's a lot cheaper to replace/upgrade a set top box than it is to replace/upgrade your whole TV.
Oh man, this is exactly what I've been thinking about lately (though I think it should be built on something like Scheme). The more research I do, the more it seems like a Hard Problem. In a nutshell, how do you handle inherently ambiguous composed grammars? Do you see your system being flexible enough to be able to essentially "behave like" arbitrary existing languages? It would be very easy to port things to it if this were the case.

Anyway, good luck!
IBM's Watson Chief on Future of AI
We used to have this technology called email which seemed pretty cool. You could even embed photos of your cat.
This needs a (2012) in the title
If you're interested in a modern rigorous treatment of the classical infinitesimal, check out "smooth infinitesimal analysis" (https://en.wikipedia.org/wiki/Smooth_infinitesimal_analysis)
Yeah, head starts can be overcome. Especially with each generation. I thought MySpace was horrible but also unbeatable because of its reach.
I would argue that networking services, backend services, and apps are indeed much higher level than the things Apple succeeds at (hardware, industrial design, and operating system).

In fact, Steve Jobs never even wanted third-party apps on the iPhone (http://www.theguardian.com/technology/appsblog/2011/oct/24/s...). So, it's understandable why Apple has struggled with their networking services, backend services, and apps: such concerns weren't even remotely a part of Apple's DNA.
I recently switched to WorkFlowy for GTD and Note taking. It seems like a more pleasant experience.

Before that I used org mode for nearly 3 years. But unfortunately I could never master it; the learning curve was steep and documentation/tutorials on both elisp and org-mode were scarce. As a result, I mostly ended up borrowing pieces from others configuration. And that never worked well for me, any small change I would make would result in weird bugs and I would spend hours without being able to find a fix. Overtime I became very reluctant to making changes in my config and totally lost my love for EMACS/org mode.

Did anyone else have a similar experience? Or did I do something wrong?

To conclude, I love the customisability and the philosophy of org mode (lists within lists) but I think it needs to put in a better package (probably rewrite org mode in JS and make it available on web/atom?).
> A/V Receivers are finally updated to 4:4:4 4k@60Hz/HDCP 2.2 - why not mainstream HTPCs??? Personal computing used to be a way ahead of other computing devices in the past, why is it now trailing?

Betcha a nickel that shenanigans from the HDMI Consortium have something to do with it. The world would be a much better place if everyone would have a flag day and adopt DisplayPort everywhere.
There are many different projects, I feel however that Idris and Scala are the places where innovation should be done. Although there are ideas in Subtext, etc, they should be implemented as libraries in Idris or Scala to gain the maximum usage from developers.
>Updated January 18, 20161:39 PM ET

>Published February 29, 201210:10 AM ET

I remember reading the article in 2012. I wonder what the update was? I only skimmed, is it mentioned anywhere?
Export CAD Layouts to PDF and Export PSD Layers to Raster Images inside .NET Apps
I disagree with pg all the time. I don't think I'm too dumb to understand, so why would I argue that?

I didn't even agree with pg in the above post. Instead, I made an abstract point -- that communication breakdowns can be the fault of either party, and that they're not necessarily related to someone being "dumb" but can be due to problems in effort or methodology.
Does not look like there's anything much new...
Given facilitated communications, I'd give this a BS until proven otherwise.

“The patients’ families were very happy when they found out that the patient could do maths”

A Chinese study in New Scientist where they admit to giving the family false hope, a lot of alarm bells.
He's a professional tone policer, I wouldn't read too much into it.

Literally fluctuates between DH0 and DH2 on nearly all of his comments. [1] It's just articulate name-calling.

Wouldn't want someone's perspective to be too tedious, would we? Tsk tsk tsk.

[1] http://paulgraham.com/disagree.html
I can't help but think that all they have to do is to look at other airlines in the US and don't do what they do. Then you look at any airline in Asia and do what they do. Problem solved.

I fly a lot in South-East Asia and judging by what I see from US commenters here, the things I can complain about are problems a US airline would love to have.
Good question.

My guess is it will be OK for the text, but links will be out of whack so bots won't really "crawl" the site. Then again, maybe advanced bots will run the js?

also, I know words in h-tags are usually "counted" as more important, so that logic won't work with raw .md
Those things scare the bejeezus out of me (irrationally, I'll grant), but these stories give me hope, if at least a little.
Thanks, subscribed. When Google Code shut down, I migrated the IPvFoo[1] source code to GitHub, but it felt dirty using an IPv4-only service for that purpose; I'll probably move again to GitLab if they follow through.

[1] https://github.com/pmarks-net/ipvfoo
I enjoyed the article, although I disagreed on some minor points, some of the broad strokes seem solid to me. Very thought provoking.

I think it's interesting to contrast the thrust of the article with Ward Cunningham's original definition of technical debt:
https://www.youtube.com/watch?v=pqeJFYwnkjE

Wards definition is much more about the differences between the current implementation of the software and your understanding of the problem, particularly as your understanding changes over time.

He explicitly says that "tehcnical debt" is NOT an excuse to write known-to-be-poor code, which is why I disagree with the //TOBECLEANED approach.

This change in perspective shifts the point of view quite a bit. In some ways this problem defines a startup, your biggest problem is that you don't understand your problem. It's somewhat likely that you won't even have the same problem you'll successfully solve later. The first points are salient here, focus your engineering efforts on the things you don't understand yet, and the minimum support it needs to be viable. Shorten your feedback loop as you navigate the things you do not yet understand.

In this light, a startup is actively SEEKING technical debt, because it represents gaining understanding about a problem, and exploring that space quickly. This doesn't mean you have to "cut corners" and do things you know to be flawed, but it suggests focusing on small 'forays' into the unknown, gaining understanding quickly, and being willing to throw away your exploration for a new one if it isn't working. Then once you find a problem you start to understand and seems like a viable direction, you have a body of 'technical debt' that is the work you need to do to bring the software to your new growing understanding.

It seems like being willing to throw away the exploration if the direction isn't working out is a key advantage of a startup, along with the quick iteration times and lean support for explorations. This is why I dislike the suggestions of writing known-bad code. You're slowing your exploration down, but you aren't gaining understanding of the problem. It's junk debt, not technical debt. You can carefully minimize the supporting infrastructure your exploration requires, and avoid writing extra code, but you can't just slap it together.

It's not enough to flail around building as fast as you can, you have to deliberately learn and explore problems and understanding as you go, and evaluate which ones to put more exploration into and which to abandon. To me, this is the core work of a startup that differentiates it from established companies who are executing on a reasonably well understood problem. The (sometimes gradual) transition happens when you stop exploring, and start focusing on clearing the technical debt from your current exploration.

Thanks for sharing the article, I enjoyed engaging with these ideas!
Indeed! I can't even read it without resizing my browser window.
In a world dominated by hyperboles, opinions, click bait and general Fox newsification, I do realize that demanding unbiased facts can be an alien concept, but generally expected the hacker news community to embrace this thinking. I've been repeatedly surprised by down voting for not being an echo chamber - HN doesn't like dissidents.
I use emacs with evil-mode. It is great.

I actually don't use org mode much though. It's one of the nicer tools I've tried, but I'm just not an organized person.

Pretty much every organizational tool I've ever tried is really good at helping organized individuals become more organized, but do little to help those who are disorganized.
And yet Scheme hasn't turned into something like that. There's a limit to how radical a syntax you can achieve using (define-syntax), and there's no provision for modularity. Worse still, syntax definitions are "imperative" - it's really hard to see what they do by looking at them.

I'd like to see a system where you have tiny, composable pieces of syntax written declaratively in a domain specific language that's as terse and general as possible - stuff like "a[n] -> (list-ref a n)" and "a..b -> (iota a b)". You want to make it as easy as possible to port language concepts to the system. Most of the wacky semantics you can get in other languages can be had in Scheme through some sort of library already, they're just usually kind of a pain in the ass to use without the syntax. Then making the language of your dreams is just a matter of enabling all the syntax you like. You'd need some kind of mechanism for handling grammar conflicts.

Of course, it's really hard. "Syntax" masks a lot of complexity. A feature I want, for instance, is to have the whole language behave like a CAS, where instead of bombing out on an undefined symbol it just computes as much as it can symbolically and hands it back to you e.g. "x+2+3" returns "x+5" if x isn't defined. That sort of thing has been done in Scheme of course, but it's hard to imagine a syntax specification language that would let you just turn that on as a single "feature" without massively affecting basic things like expression parsing grammar.
Imagine how you would feel if, to stay relevant and in-touch with the major decisions at your work, you felt pressure to get involved in things that you have literally no interest in. Going on wine tours, maybe some yoga, trashy soap operas that the office loves to hate.

Which isn't to say that people would exclude you from their team if you don't get involved, but you couldn't say that you have the easy camaraderie that most of the team seems to have. You're a little outlier, you're not quite in-step, references fly over your head. And you have to be _so careful_ to be friendly, but not _so_ friendly that your co-workers think you're hitting on them.

Occasionally, you miss a decision that happened to be discussed at the cocktail bar over lunch - it was just a spur of the moment thing, forgot to invite you, didn't think you would be interested. You talk about how you would have solved the problem, but it's just not seen as graceful enough to be worth exploring further. Because you weren't involved in making those decisions, your name doesn't come up when being considered for lead positions.

You're at a company event, and you think you've escaped someone asking you about your spouse that must work there. Then, someone hands you the trash to take out while they tell a hilarious joke about the only things men are good for.

You can't put your finger on any one thing (ok, maybe the trash thing), but when another opportunity comes along in a different field, maybe you take it. You can't say you really enjoy your work anyways.
Recently having become a father has made me think a lot about general intelligence. Seeing my son getting excited about his 'world state changing' gave me an idea. What if the main thing that holds us back is the reliance on cost functions? Human, and to some extent, animal intelligence is the only intelligence we know about. If that's what we want to emulate, why don't we try modelling emotions as the basic building blocks that drive the AI forward? Until now, the way I understand neuronal nets, we have basically modelled the neurons and gave them something to do. My hunch is that brain chemistry is what's driving us actually forward, so what if we model that as well? Instead of seratonin, endorphin etc. we could also look at it at a higher level, akin to Pixar's Inside Out - joy, fear, sadness, disgust, anger, and I would add boredom.

Let's stay with video games for a bit. What if we look at joy as 'seeing the world change', graded by the degree of indirection from our inputs (the longer it cascades, the more joy it gets). Maybe let it have preference for certain color tones and sounds, because that's also how games give us hints about whether what we do is good or not. Boredom is what sets us on a timer - too many repetitions of the same thing and the AI gets bored. Fear and disgust is something that comes out of evolutionary processes, so it might be best to add a GA in there that couples success with some fear like emotion. Anger, well, maybe wait with that ;-).

Edit: Oh, and for the love of god, please airgap the thing at all times...
ZeroMQ: Disconnects Are Good for You (2012)
NES Super Mario Bros. 3 “Arbitrary Code Execution” Glitch Gives In-Game 'shell'
Board games on the AppleTV with a young family

I haven't followed the AppleTV at all but this seems interesting... do you have time to go into more detail regarding the game(s) you have found best?
Caveman – an Android library that allows you to manage environments at run-time
The Common Lisp regex library cl-ppcre has had this as a feature for a long time. The library uses a sexp-based format for regexes, but you can also use plain regex if you want. When you pass a plain regex to it, it will always parse it into the sexp form first. This gives you the benefit of both the compact standard regex form as well as the more readable sexp forms at the same time. For example:

(cl-ppcre:parse-string "(?<!\\w)([*_])(.+?)\\1(?!\\w)")

Gives the following:

(:SEQUENCE
(:NEGATIVE-LOOKBEHIND :WORD-CHAR-CLASS)
(:REGISTER (:CHAR-CLASS #\* #\_))
(:REGISTER (:NON-GREEDY-REPETITION 1 NIL :EVERYTHING))
(:BACK-REFERENCE 1)
(:NEGATIVE-LOOKAHEAD :WORD-CHAR-CLASS))

This may look complicated, but it has to be in order to be able to fully cover all features of standard regex. I would like to see how complex regexes like this is represented using Verbal library.
You'll have a lot of fun looking at https://en.wikipedia.org/wiki/Embodied_cognition
agreed. Its just hard to have title that says "Why some companies fail repeatedly".

All of us are competing with "17 people under 30"... listicles.
More information on the glitch:
http://tasvideos.org/forum/viewtopic.php?t=15249
Looking good, where are the details to set something like this up?
I work for a company doing unsexy IoT and I've been dreaming about writing this article for months now. We're a tiny company in New Jersey whose been around in some form or another for the last 25 years, supplying remote telemetry units (RTUs) to the industrial assets industry. Helium, oxygen, nitrogen, whatever, on boats, trucks, and static sites. We also provide a monitoring platform which is where I come in. We're a very uncool Apple - vertically integrated, we design, build, manufacture, ship, and program all of our RTUs in-house. IoT has been around for a long long time now - a lot of our work comes from clients who can't maintain their old systems anymore.

The entire hype wave of IoT has more or less passed right over us. Nobody has heard our name, save for the gas industry itself. But that industry is about to (not literally) explode. Helium is an extremely lucrative industry and is growing by the minute, and there's really nobody in this space but us. Remote monitoring - IoT - has never been more critical to helium than it has now. Without going into too much detail, knowing the pressure levels of your tank 24/7 can save you a lot of money.

So where do I come in? Our platform is written in C#, with the front-end done in Silverlight. I'm the dude getting us off it with some really hip JS work in React. Before that I wrote a lot of microservices to handle various aspects of our system. We were in a pretty bad state when I got there so I spent a lot of time improving our development team. We didn't have PRs for a long time. For a first job out of college, it's not bad. I get to do a lot of cool work, and on my current project I've made every technical decision. But sometimes I wish that we could attract better talent. Oh well, I'm (hopefully) leaving soon.