skysight-inc/HackerNews huggingface dataset:
Alan Kay's 1972 paper on the Dynabook [1] is very interesting how he designed the Dynabook from the perspective of what you'd want in a personal computer, and then described in detail what technology improvements would be needed to get there, and how to get the price down to $500.

It's important to remember that the Alto was called the "interim Dynabook", a system to try out the Dynabook ideas until technology caught up and made a Dynabook-like system possible (40 years later).

[1] http://history-computer.com/Library/Kay72.pdf - jump ahead to page 6 for the hardware details
Viaweb used Lisp as their secret weapon, and pg and rtm rolled the money from the Yahoo acquisition into Y Combinator's first classes.

http://www.paulgraham.com/avg.html

Hacker News itself is written in a new Lisp dialect that resembles Scheme.

https://github.com/arclanguage/anarki/blob/master/lib/news.a...
https://translate.google.com/translate?sl=fr&tl=en&js=y&prev...

> "This operation may seriously destabilize the Parisian trade balances" the Mayor ton, who regrets not having been informed of the arrival of Prime Now "a few days before launch." The municipality intends to refer the matter to the legislature, citing "the need to establish, by law, be able safeguards to ensure that such services come to constitute unfair competition against traders and craftsmen"

> The municipality requires the US company to be exemplary on its HR policy, the amounts of pollution emitted by its delivery vehicles and on maintaining the quality of life of people living near the storage center.

Also, my 3 local supermarkets refuse to switch on their automated checkout when there's fewer than 4 people queueing at human registers. Question, as a French citizen: Should I just give up on France?
>> "we're not sufficiently civilized to make it reality."

To me, the opposite is true, society has become too civilized. True change would require risks that the majority of Internet users would see as too risky, unnecessary, and a threat to stability & safety.
lol we've come full circle, most of my hackernews karma is from posting that article
Artificial Intelligence is because
metaprogramming is easier in homoiconic
languages.

Homoiconicity is something you can add to any language, dynamically or statically typed, simple or complex, it doesn't matter. It used to be belived that only syntactically simple languages like Lisp are suitable for homoiconic extension, but this myth was destroyed by Walid Taha and his development of the MetaML family of languages.

For an overview of how to add homoiconicity to languages, see
https://arxiv.org/abs/1602.06568
and start scroll produces some jittering on my mac book 2015 osX with chrome.
> The key question isn't "do they produce value?", it's "can they hire and fire?"

This is traditionally the line that people draw, yes, but I think the reasons for that come from the other end.

That's the thing; the manager who manages the cashiers at the grocery store doesn't have more power than the individual contributor software engineer who writes the software for the registers, not in any reasonable sense. That's not why the the line is traditionally drawn where it is.

The line is traditionally drawn where it is because it is management's job to act as a proxy for the will and interests of the owners, and pretending to do that while being in the same union as the workers would be very difficult, or at the very least, quite awkward.
A fairly long message exchange that appears to start here: https://mail.haskell.org/pipermail/haskell-cafe/2010-October...
As far as I can tell, no. The Alto had a program called Chat, but this was more like telnet/ssh, allowing you to connect to a remote computer, rather than communicate with a person.
Inconsistent is a good description.

It feels like a rollercoaster...
https://morganalyx.files.wordpress.com/2013/04/metric-system...
Job 1: Advertising interests be damned, this mass surveillance thing has got to go.
Not sure it's that, but that the founders had a bit of luck, and to believe any future efforts would not require luck would be foolish in my opinion.
I don't think we should reinvent the net, in its present day shape it wasn't supposed to be monetized or for statistics mining. I'm certainly frightened of the internet 2.0
In that case, it would be interesting to use steganography to bypass those restrictions.
That's a strange way to design a financial contract system. I mean, just like Rust checks for memory safety at compile time, can't the contract language make similar checks? Or perhaps the contracts can run in a simulator first?
It's one thing to have a tiny transaction-volume virtual currency like bitcoin circulating without any explicit government laws allowing it or not allowing it.

It's quite another thing for paavokoya to make the bold claim that bitcoin will replace government fiat currencies. That won't happen. Government currencies like USA dollars and Euros are backed by courts and police. Bitcoin doesn't have that. Bitcoin usage beyond the trivial can always be suppressed by the government. All it takes is for the government to pass a law that says, "property purchased with bitcoin is null and void".

Any non-government crypto-currency exists at the pleasure and amusement of the government.

Government has the ultimate power and infuses that power into the fiat currency. That power is spread across tax collectors, courts, and law enforcement. On the other hand, bitcoin can't create its own "Bitcoin Sovereign Island" with its own sympathetic government. Alt-coin enthusiasts overestimate the ability of bitcoin to overthrow government sponsored money.
Learning to code is easy, learning to use that ability to solve interesting problems is hard.
Scala can be a fine Java replacement, if you drop 20% of its features on the floor. As long as you never see a higher-kinded type, I think you are ahead of Kotlin, and the learning curve is not really any different.

The problem with this approach is that 90% of Scala libraries are built by people that live in higher-kinded land, and believe that since they have reached that level of expertise, so should everyone else, the second they start learning the language. For instance, look at SummingBird: The hello world example includes F bounded polymorphism, and path dependent types! Anyone new to the language would run away screaming, and I'd not blame them.
New Star Trek's Chekov, Anton Yelchin, Dies in Car Accident
Surely there's a middle ground right? Being a surgeon is hard, being an astronaut is hard... there's a lot of jobs popular culture says are hard but it doesn't stop people from trying.

The thing with programming is that it's turned into one of those things people say "you are born for". So when newbies have trouble with it, they give up and say their minds don't "work that way". I think it's good to tell people that anyone can learn the basics of programming and get started. No need to be a genius for that. I don't know why but people seem to think programmers are "different" than the general populace (even from those with other hard jobs).

But it's not easy. We've all dealt with hard problems in our jobs, classes, or personal projects, right? If you tell people programming is easy they'll hit that first roadblock like the article says and quit. Seen it happen many times.
Key to ending massive surveillance is not tech, but social change.
The hard part, as you describe it, is usually not the job of coders. It's the job of project managers. In lesser organization the coders are doing work that management is suppose to be doing, so they might be doing multiple roles which makes their job much harder.
FEMA spent the money to equip US local first responders with short wave radios as a backup comm system. But they have trouble getting non-FEMA agencies to use them and test them occasionally.

The problem isn't the radios. It's that the culture of operating with very limited communications bandwidth and slow message forwarding has been lost. Writing out messages on paper to be read over the air and copied by hand at the other end is totally alien today. You have to design your operations to minimize long distance traffic, and nobody does that any more.
There are really three separate problems that need to be solved:

* Remote access to your home network

* Recording and storage of video, possibly with motion detection and alerting.

* Remote storage of video/events (optional).

Each problem is "sort of" solved:

Most routers have some kind of VPN server built in. My Asus router supports PPTP, which isn't very secure, out of the box. I think some routers are starting to support OpenVPN, but without some easy wizard to set it up and distribute the profiles and certificates it would probably be beyond the average user.

A lot of NAS devices come with software to record from IP cameras. My QNAP has it, but I have no idea how good it is as I've never tried it. I know that to use more than two cameras they want you to buy extra licenses.

A lot of NAS devices can also sync folders up to various cloud storage providers. This could solve the optional remote storage requirement.

As for making it all work together, that's another story. I'm not aware of any kind of easy to follow HOWTO for a user who's goal is "access my cameras remotely without sending everything to the cloud".
Similarly, Kim Dotcom's Megaupload cooperated with the government and was even an FBI asset in investigations. All this was conveniently forgotten when they raided his home.
Very good article with great observations, and even greater practical recommendations. Anyone working in edtech should read this.

I posted a reply my thoughts on the topic here: https://minireference.com/blog/learning-can-be-fun/
Learning to fix electronics is easy. Learning to fix your car is easy. Just open up the enclosure/hood and... do stuff :D
The ubiquiti unifi video server (formerly aircam?) is ridiculously easy to set up on a local x86-64 linux system. They give away the software free for use with their IP cameras. Or it need not be physically local, the server could be on the other end of a VPN tunnel from the layer2 LAN that physically contains multiple security cameras.
Learning to code is easy (everyone who wrote a BASIC program as a child, raise your hand.)

Learning to code well is difficult and requires years of experience, obsession, and a titanic amount of patience.
Future efforts always require a bit of luck.
Here's a curious question: was there a need for sunrise? Between iCal, google calendar and Outlook, the calendaring market seems pretty full and perfectly functional. Is there something I'm missing?
I don't understand why tootie is getting downvoted but it seems that both of you talk about the same thing, albeit with exactly the opposite wording.
This doesn't seem true. There are plenty of jobs that are commonly regarded as being hard and yet they attract plenty of people.

I think you also drastically underestimate the number of people who are specifically interested in hard things, not easy things. And in many cases these are exactly the sorts of people you want to hire.
Yes, people aren't like they were 20 years ago, they've been trained to give up their privacy for a few shinies.
Put IP cameras in their own VLAN on a network that also contains network DVR software. Access it via VPN tunnel and/or https. For unauthorized access to an individual camera somebody would need to be on the same layer 2 broadcast domain as the camera, local on site. Following that principle, if an adversary has physical access to a device it's likely pwned anyways.
Wow, that sounds awfully fancy. How much does all of that cost? Subscription required?

Seems like Ham would be much cheaper and just as good, funneling local emergency communications into more sophisticated setups (that are probably owning and operating satphones for you).
I am still stuck on why this is titled Advanced Programming Languages. Wait, so anything other than the most widely adopted robust language technologies used in enterprise systems is 'advanced'? Language compilers, interpreters, database engines, and runtime implementations are advanced. Who says, "we need an advanced language for this solution", as opposed to "this problem requires an advanced solution"?
To be honest, I'm not surprised to hear a statement like this from Scott Hanselman. Learning to code is hard... when you have to do it inside Microsoft's byzantine, arbitrary .NET ecosystem, with its mandatory thousand-button GUI toolchains and fifty-file project baselines.

In environments with less absurd barriers to entry, like JavaScript, learning to code is easy (especially in light of the things Scott mentions in that post, such as the vast swaths of community support available when running into problems).
I'm in favor of self-exclusion. Anyone who holds interviews should be aware that there are way too many duds in the industry for no good reason. I want to work with the obsessives who tell themselves "no, there must be some right way to do this" rather than relying on some strange kind of cheerleading that didn't exist when I started.
This is so romantic! Earth has a little friend that (at least on a human timescale) has always been there, always will be, no questions asked <3
Seriously, I've got 5 years experience and I'm making $86/K per year. Granted it's a startup, but where I live the market is pretty depressed. Anytime you see a Bay Area company relocate or open an office here you can guarantee it's to pay low wages, and they usually try lower than market.
I find meta-arguments like this really silly. You are simultaneously telling him that people are entitled to their own opinions while at the same time saying his opinion is invalid.

As to it being political correctness, I would argue that has little to do with it. It's really marketing - an attempt to change the perception of something to achieve some goal. No one's feelings are hurt when you say something is challenging (I guess unless you explicitly say challenging compared to what).
The other part to this is what can they do about it. Kids these days see riots responded to with military force. Cops kill people on sight and get off unpunished. People get imprisoned over enumerating URLs and we're trying to extradite a person to charge them with treason for revealing that the government is indeed spying on everyone.

I don't think kids these days are naive, I think they just see that trying to fight this stuff can realistically get them life in prison and/or killed.
This is essentially the "Stalker Attack" discussed a few weeks ago as a failure in the DAO in http://hackingdistributed.com/2016/05/27/dao-call-for-morato... (related HN discussion https://news.ycombinator.com/item?id=11791671 (170 points, 22 days ago, 81 comments))

If they succeed blocking the attacker, then they'll also prove that nobody has a guarantee to withdraw any money from the DAO.

Somewhat related: "Why The Stalker attack is a non issue" https://github.com/slockit/DAO/wiki/Why-The-Stalker-attack-i...
Ah I see, thank you.
You can stipulate in a contract that it may only be settled with paper notes printer before 1974. It would be silly, since it would make transacting difficult. But no more so than holding some deprecated shard of a cryptocurrency. A better store of value are real assets.
That's a nice project. Ever think about adding an HDMI output? :)
I don't know why the parent post is even trending on HN, it's content-less trivial fluff, but I also facepalmed at the inclusion of the picture. I'm not a supporter of the idea of the "patriarchy" meme, but putting this picture on a post like that certainly implies at least an unconscious association in this guy's mind. Good thing he's a "former professor".
Seriously? There are restrictions against, say, sending a stream of packets with PGP encrypted payloads? Why? I mean, what could you do over amateur radio with encrypted comms that you couldn't do over the Internet?

And how do hams share information that should be private, like a bitcoin wallet's private key? How do you shell in to the admin interface of a remote tower? You just don't, over amateur radio?
No, and they never will be because we've decided that a group hug is the only cyber-defense you have a professional obligation to perform.

If you send me a paper investor-relations document with a document ID of 7, I'm not committing a crime by calling your documents department and asking for documents 1-6 and 8. If they give them to me, I now even have a legal right to that copy of the document - such that you can't compel me to return them.

But the USG put Weev in jail for accessing a series of incrementally numbered public URLs. It was theoretically so bad as to warrant jail, and yet so meaningless that they didn't even tell customers about it or reprimand a sysadmin. No security people were fired for incompetence.

So no, there's no technical obligation for the service provider. If the cleaners unplug your servers while cleaning, cyber-attack! If someone scrapes your website, cyber-attack!

To bring the physical world to parity, when banks get robbed we now recommending hanging dream-catchers around to make everyone feel better. /s
That's not true. You could just as well say that there is number of exchanges in the world that trade Bitcoin against USD and other currencies. It is this trade that give Bitcoin value, and only the Bitcoin fork the exchanges use is valuable. If all the miners would fork Bitcoin today to change consensus (perhaps to earn more from mining), and all the users and exchanges stayed behind, that would only be visible as a drop in mining power. In reality it's much more complicated, and consensus changes are not to be made lightly.
Well, technically speaking, writing can be used for both [nearly-]ephemeral communications (letters/messages) and persistent storage (books), so literacy levels alone don't immediately imply that the knowledge is archived and distributed this way.

But your point is absolutely valid, because, I believe, every (or so) civilization that had invented writing, had books or similar concepts (tablets, etc). Persistent information storage in form of written text just can't be "western" thing. Libraries had and continue exist nearly everywhere, regardless of the culture.
> * You can use tremendous amounts of power (1500W vs Wifi's piddly 0.5W or less)

Here's a fun one: wifi 802.11b channel 1 is in an amateur band, so if you have an amateur license, you identify with your callsign (using the ESSID works), and you transmit everything in the clear, you can use modified/amplified wifi equipment at higher power levels than wifi normally allows. (The standard common-sense restriction of "no more power than needed for the application" applies.)

An amateur rocketry group I worked with (http://psas.pdx.edu/) uses this to receive wifi at 1W from a rocket miles away (and going Mach 1.1).
The main thing that makes learning how to code difficult is the sheer amount of technologies you need to learn before you feel like you can make real progress. Each individual technology isn't by itself particularly difficult, with a few exceptions; (looking at you git) but also aren't particularly useful by themselves.

You either have to be willing to learn a simpler stack and pick up skills gradually, or deal with the intense frustration of drinking from the firehose right out the gate.

When I was in high school, I went from doing BASIC to elementary web stuff to trying to learn C++. (I didn't have practically anybody who knew how to code to guide me) I gave up and didn't go back to coding for some ten years, sticking to just being a power user.

If I were trying to teach someone to code nowadays, I wouldn't really know where to begin. People want instant gratification without the frustration. You can't have both. I've had limited success, but only after finally convincing them that they have to be patient.
Too much rough consensus. Not enough running code.
Programmers are still dealing with the laws of physics. This is why you get 10,000 asynchronous communication platforms all generally failing to result in massive improvements in usability and parallelization. Most programming problems are communication problems, and most communication problems are a result of physical limitations.
> How do _you_ know your contract is secure?

Ideally, using formal methods [1], one can write a provably correct program. Just because software can have bugs does not mean it must have bugs. Human contract law has no analogue.

Personally I'd be wary of any electronic contract that wasn't formally verified. The DAO exploit is unsurprising.

1. https://en.wikipedia.org/wiki/Formal_methods
Low-bandwidth, text based communications? There have been purely text based IRC servers (and XMPP/Jabber) on SIPRnet since 2003 or around then. All IP data and frequently implemented over geostationary satellite. It was interesting seeing what people in FOBs in Kunar province want to talk about. Very much agreed that getting non military people to learn communications discipline would be difficult.
10X Management
People can trade for things. They want a service. They are OK with being cattle. Who are you to get mad? It's like when the US got mad that the Palestinians elected Hamas. They get to vote. Let them have their way.
This is the real rub. As soon as remote storage is a requirement, you start to need some kind of service provider to do it. This service provider could be anything from a purpose-built service to a generic storage service (think S3, Google Drive, DropBox, etc), to a co-located server, to a VPS, to a machine sitting at a friend's house.

No system will be perfect though. What if the internet connection goes down? What if the power goes out? What if the provider for the remote storage goes down?
Playing piano is hard, but teachers that keep the learning experience fun see much lower drop-out rates.

Teaching, mentoring, and onboarding students to enjoy coding is the real hard work.
I find "Roboto Mono Sans" very pleasing and easy to read on dark background. Looks great in Terminal also.

https://fonts.google.com/specimen/Roboto+Mono?query=roboto+m... click on the paint button top right to switch to dark bg
Maybe in the US. Plenty of users in Canada speak in code, particularly in the north.
I've had tinnitus for years but only recently realized that I had it. I always thought it was normal.

I'm in the same boat where it doesn't really bother me. All I need is a small amount of ambient noise and it's a complete non-issue. A simple ceiling fan suffices for me. It only bothers me when I'm in complete silence, which basically doesn't happen.
Totally agree. I have taught to some friends and my gf (pointing that it's people that I care about). What I tell them is that there's easy parts and difficult parts, and that things like SUM() in excel is a basic way of programming.

Then I teach them about html+css but starting only on the "easy-ish" part. So using my own library [1] for things like ".row" where you'd need either floats+negative margins or flexbox. Teaching them about images, images sizes (should be set at 100% in many situations), colors, backgrounds, paragraphs and links. That really motivates them.

Then some day they will need more advanced things, but if they can make a layout with the content then they become really motivated since they can see their programming real time.

I have to do this mainly because some people hate "irrationally" maths, so if I taught the same way I started learning --calculating primes-- then they'd be bored to death. Instead I like choosing something they are personally connected: what website do you like? Okay, let's do something similar...

I've even tried doing a small course for free [2], but so far it's not been really effective with those people I'm teaching, but some other friends asked me things about it :)

[1] http://picnicss.com/
[2] https://en.libre.university/subject/4kitSFzUe
They give it up for free photo storage and a like button.