skysight-inc/HackerNews huggingface dataset:
In a way anything that lowers the minimum cost of living can be bad, because employers will exploit this to justify paying less and society will label the ones that don't want to lower their baseline as "overspenders" (even if it may overall encourage you to spend more on other unneeded luxuries...).

By sharing your bike or any other thing you make the cost of making use of a bike lower. A more appropriate example would be for a family to own a second or a third car. If you own a second car, you have one more item that you own but don't absolutely need, therefore an item that provides financial security and independence because you can sell it when in need of money (even if at a lower value, it's still a way to get instant cash for an emergency). This is the kind of financial security that will allow you to show your boss the middle finger or ask for a bigger wage, because you know that that if you get fired you can still get by until you find another job, or you have enough stuff to sell and move to another place even if you bank accounts get frozen etc.

This is good because:

1. it make people less likely to accept a lower wage, driving wages up

2. it makes people with very risky but innovative ideas willing to start a business from their garage, because they know they still have enough savings to not end up homeless if everything goes south (note: I'm referring to the kind of ideas no sane VC would throw a penny at, but might very well change the world)

3. it makes people give more to charity, in two ways: (a) most people donate at some time the things that they buy but not use and (b) the fact that you "own stuff" gives you a sense of security that makes you worry less about your future and care more about the needs of others (dunno how healthy this way of thinking is, but this is how our minds work)

I know it's not a fashionable mindset, but I think that owning more, sharing less and giving (away) more (or reselling at way-below-market prices, which is close enough to it and doesn't hurt anyone's pride :)... ) is a much healthier, financially secure and more freedom promoting way of living than what we seem to encourage today! (because when you "share" you must create restrictions and limit people's freedoms, whereas when you give away something you also give away the freedom to use however they see it fit, and when you own something you don't have to limit freedom by imposing "fair use" policies because you are the single user)
Very pretty indeed! I did a similar thing in JavaScript but inspired by the "sound of sorting" http://webcloud.se/Assortment/
What if we could live forever?
Interesting. You seem to be defending inefficient bureaucracies (middle management etc) because you believe they promote more-human personal interactions. I've never really heard the corporate jungle described with such warm and fluffy sentiment.

I think it's tendentious nonsense, or anecdotal at best (did you just have a miserable experience at a start-up?), but rather than bickering about that per se, I'd prefer to offer a more important principle:

You cannot make an economy more prosperous by making things less efficient and spending more money on unneeded middle management.
It would appear you have a somewhat skewed understanding of history. Recall that in Europe enclosure of the commons predates the Industrial revolution. Feudalism. As the Industrial Revolution ramped up no one was 'forced off their land', rather people chose to leave their farm jobs because they perceived employment conditions in the cities to be better. Lander owners kept their land and bought machinery to work it. It's been a very long time since the common people worked the commons. Suggest you have a look at Deirde N. McCloskey's 'Bourgeois Dignity: Why Economics Can't Explain the Modern World', it does a decent job of dispelling every economic myth.
> better than bash in terms of functionality and elegance.

How so? I haven't used it much, but I've not noticed any elegance to it? is it like lisp and if I use it for a while it will hit me what the power of it is?
I don't see a future for Lyft and things like that. I don't see how semi-private people are supposed to manage their cars and apartments more efficiently than professionals. So if anything, those services will be transitional (until nobody owns their own car anymore).

That said, I really don't agree with the sense of entitlement from that post. The real world actually is tough. Just because we managed at times to build a small layer of security on top of it, doesn't mean everybody is entitled to it.

I don't think there is a conspiracy to deprive people of their job security, it is just a developing reality. And quite frankly, I think everybody should take responsibility for their own life. People might actually be better off if they do that.
It is common to say "Foo implements the Fooer interface" in the doc on the function. Also, looking up what interfaces a type implements is 1.) impossible (depends on what other interfaces exist in the universe), 2.) pointless - you shouldn't care what interfaces it implements, you should look for functions that you want to use with your type.

You're also missing one of the best parts of implicit interfaces - you can use other people's types in your own functions with interfaces that didn't even exist when they wrote their type. To do that in languages with explicit interfaces, you have to write ugly wrapper classes around the other person's type for zero benefit.
Are there any practical systems that are usable today that implement "managed time"? (I haven't read the paper yet(!), but I just thought I'd ask to shorten the turnaround time.)

Btw, are you familiar with David Barbour's Reactive Demand Programming and if so, what are your thoughts on it?
That's awesome! And congratulations on the dream job!
No story here, I'm just a lowly hacker whose most difficult challenges were because of my ignorance, I just want to say thanks for the thread, it's only few hours old and it's already pretty damn fascinating!
It's hard to make the time to blog when I am actually doing stuff that fires me up.

Maybe I need a ghost writer who can shadow me on projects and then write them up for us both. LOL
IBM Invents ’3D Nanoprinter’ for Microscopic Objects [video]
Surely "a + b" is nicer to the eye than "a.add(b)", but unless a and b are numbers, a method call with a meaningful name is more straightforward than any abuse of allowed operators.

> Take a look at Scala for an arguably worse implementation of operator overloading.

Indeed

> Though still, the IDE helps a lot there.

If I need an IDE to understand some code, and tend to stay away from that code/language.
I just can not keep quite. even worse, i end up exchanging cell numbers. And the experience is like, I am on my college bus, traveling with my fellow mates for a picnic trip. where everyone would secretly wish that the journey just does not come to an end and we keep having fun.

I am baffled they needed a 'scientific' research to figure this out.
That sounds like a truly great idea!
It's useful in go, because it means you can trivially turn a bare function into a type that fulfills an interface, which makes your function more flexible - it can easily take either a type with a method or just a method.
How about Clojure, which is a Lisp-like language with objects? Explicitly, you have protocols and multimethods; implicitly, almost everything under the hood is done with Java interfaces (and you can make new first-class datatypes by implementing the interfaces, though this is mildly discouraged). I cannot recall anyone complaining about the OO clashing with the functional patterns.

There's also O'Haskell, and in regular Haskell you can get something like polymorphism (implemented under the hood with actual polymorphism) with forall-qualified datatypes.

It's not OO and functions that class... it's functions and state. There's (literally) no law of computer science that says objects and functions must clash.
Freelancer.com is destroying my life
After slogging through _A People's Tragedy_ I'm interested in Figes book on an expanded time frame of Russian history.
Not that I necessarily agree/disagree with the general thrust of your comment, but...

Scheme is not a pure functional language, it's pretty far from it (see all the "something!" functions). Heck, it could even be argued that Haskell isn't given the existence of unsafePerformIO, though most people think of it as such. (Since unsafeXXX functions are generally vehemently discouraged in the Haskell community it's not really a problem that crops up in practice.)
Back in 1999, we had an idea to provide a mobile news service at a technology trade show/conference. I was a tech magazine editor at the time. The idea was to give journalists laptops on which they could write short items (about 100 words on the fly while they were actually in conference sessions - if Bill Gates said something interesting at the Keynote we could have it published in 3 minutes. The journalist would type the story into a structured Web form, hit send and the story would go to an editor for proof reading, who would then publish. The item would appear not only on the Web, but would be formatted for Palm Pilots: We had a bespoke app people could install on their handhelds and sync-stations around the show floor for them to plug them in and get news stories squirted into their machines when they wanted.

In the pre-Twitter, 3G world, where mobile Internet meant WEP this was a quite advanced. The main technical problem involved connectivity for the journalists. We borrowed cellular dongles and laptops, but there was simply no guarantee that the cellular network would be available at the show and wouldn't be overwhelmed by the number of attendees. Cellular data plans (we were roaming) were also runinously expensive and had to be minimised.

We wanted the journalists to be able to write their stories directly into a structured Web form, but we didn't want them to have to cope with the flaky cellular network and the story disapearing with a 'no network' error on submit.

In the end I came up with the idea of simply running Web server on each lap top, to present the for, handle the input and batch it up ready for sending as and when the network was available.

It worked rather well and we were all rather chuffed.
IIRC, Scheme is not a pure functional language in the way Haskell is.

http://docs.racket-lang.org/reference/set_.html
One of the side-projects I did when I was fairly new to development -- but which forced me to make a big leap in my skills -- was to crack a database access tool I used, when they crippled the freeware version.

The tool was written in Java, and I was coding in mostly Java, so I figured it'd be easy. That first version was indeed pretty simple to patch (decompile, find a class with a method that ran a bunch of license checks, and just replace that bit with "return true" then rebuild the JAR). Then they released another version with more serious obfuscation applied to it. I found myself digging through classfile specs, writing my own code to edit classes directly (where decompilers failed), etc.. As obfuscators evolved (and they upgraded), it got more interesting.

I bought a license after a while (and I certainly didn't distribute my cracked versions; I liked the tool and wanted to support them), but I kept cracking new versions when they came out for a few years; it was entertaining & highly educational.

I worked for a while on a standalone classfile editor, but eventually ran out of time for the hobby. But along the way I learned a good amount about Java bytecode, how the VM interpreted it (and how much flexibility there actually was involved). I learned about UTF-8 (and realized quickly that most text editors didn't seem to actually support it properly), put quite a lot of thought into security (trickier than I had thought) and how it relates to program flow (e.g., good design can easily mean more-easily-bypassed security).

The real downside is that I couldn't brag about it to my colleagues, or online -- I didn't want to tangle with any potential legal issues, or reputation problems, especially at the start of my career.

So I'd be walking around, buzzing with the new stuff I'd figured out (and new obstacles surmounted), but unable to say a word about it to anyone who would know what I was talking about. I considered contacting the developers of the tool directly, just to let them know this little contest was even happening and offer suggestions, but decided not to run even that risk.
Mini JSFiddle-like HTML/CSS/JS code editor
Only if the type already defines the methods for that interface. In e.g. Rust you can define whatever interface (trait) you want for external types. No need for wrappers.
scheme is not really a pure functional language ("set!")

One of the things I like about Common Lisp is its "multi-paradigm" philosophy.
Don't try to work around it, but embrace $GOPATH instead. As soon as you put your project inside $GOPATH/src (or ${GOPATH%%:*}/src if you want to be pedantic), things work flawlessly, esp. all the tooling around Go that expects to work with $GOPATH.

In my company, we have the convention for our internal Go projects to be checked out below $GOPATH/src in a $company_name/$project_name hierarchy, and that's also what you'd use as import path.
Film crew finds Atari ET games in New Mexico archaeological dig
Its an example of the "blub paradox": if you haven't used a pure functional language then its hard to see what the problem is.

The crucial thing about pure functional languages is that they decouple the logic of the program from the order of the computation. In an imperative language control flow and data flow are explicitly interleaved, with complex dependencies between the two. In many cases a particular bit of code is only correct if another bit of code has been executed previously, and its up to the programmer to keep track of all these dependencies.

In a pure functional language this coupling between data flow and control flow is broken because all the data dependencies are made explicit and visible to both the compiler and the programmer. That frees the programmer from bothering about it (and automating low level programming issues is always a Good Thing), and it also enables the compiler to optimise it. So for instance in Haskell the compiler will rewrite this expression

map f (map g xs)

into this

map (f . g) xs

The first line would iterate through the list "xs", building up an intermediate result list by applying "g" to every element. It would then iterate through this intermediate list applying "f" and building up the result.

The second line iterates through the list only once, applying "g" and then "f" to each element in turn. Haskell can do this because "f" and "g" are guaranteed by the type system to have no side effects, so it doesn't matter what order they are executed in. In impure languages the order of execution matters, so the compiler can't switch things around in this way without changing the meaning of the program.

The programmer also gets the benefit. If you see "x = complexThing" you can always replace "x" with "complexThing" and vice-versa anywhere that "x" is in scope, without changing the meaning of your program. That makes it much easier to reason about what your program does.
Why the advice against `make` and `new`? Is it only because make sometimes requires you to know sizes in advance?
No, it really doesn't happen a lot. If it does, you're doing it wrong.
The site seems to be down now probably because of the load. Anyone have a version they could put somewhere?
Woah, want! Glitch looks really cool. How real is it? Are there plans to make it real?

Everybody, really, if you have time and would like a look into the future, read chapter 2 of the paper seanmcdirmid posted (and co-wrote).
General information is here:

http://xem.github.io/miniCodeEditor/

Minimal editor demo:

http://xem.github.io/miniCodeEditor/minimal.html
Adopting a new Programming Language, or Not
[moved below to be in reply to the correct post]
I want to make it real; I'm working on some interesting ways of improving performance right now. It is kind of a climb though, I have no idea when/if this would ever reach production, but it's almost a brand new world if we can make this work.
I read your PDF. I haven't done anything along these lines, I just thought all the USB transmission and decoding sounded way more difficult than using standard RC transmission.
Made an autonomous vehicle out of a VW Golf/Rabbit, in around 2 weeks.

Custom built hardware, including the actuators.

Custom built RTOS on micro nodes.

Driving via openCV, hough transforms for lane detection, stereovision and flows for obstacles, surf/etc for traffic signs(don't ask, I was learning)on a stack of 2 laptops connected via gigabit ethernet.

Nicest thing: I got the models trained mainly without moving the car, by pumping the framebuffer of two racing/car games, rFactor and GTA3 through glcs to openCV and controlling the games via uinput to make a virtual city to drive in.

Don't have a lot of pics, here's some HW:

http://imgur.com/9cfzbMv ( yes, that's an old cordless drill and an angle grinder head with a bespoke bike chain :) )

http://imgur.com/5x9T9gi (piston is weirdly offset so I could still put my foot on the brake in emergencies, like that one time i smashed it into a fence...)

http://imgur.com/Ig7MaLT (notice how I kept the costs down to almost nothing, in this case the air distributor for the brakes made with Meccano and old air valves and a geared motor, since I didn't have the funds to buy anything)
I made a bunch of LCD nametags for a project a while back[1], and ran into the strangest issue. Occasionally, the display would fail to start up and would display an all-blue screen.

My initial hunch was that it was a timing issue, and that I was seeing different behavior based on temperature. Even when I made things super slow to exclude timing, the performance was inconsistent. Next on the list was excluding race conditions (maybe I'm not resetting in the right order, and getting lucky?)

At some point in time, it was 8am after an all nighter after I'd been debugging this, and I hadn't been able to reproduce the bug. Lo and behold, when I give up, the problem starts occuring, just as I open the blinds to get some sun.

Turns out that the display driver had light sensitivity issues. Since it was a cheap display[2], the backside of the driver IC was exposed (the epoxy fill didn't encaspulate it all the way, just the edges; you can see it as the white strip in the Digi-Key picture).

Putting a piece of tape over the IC solved the issue, and I didn't run into problems with the display again.

[1] PCB (business card sized): https://bitbucket.org/cyanoacry/ditch_day/src/3bf75f6bd2fba1...

Hardware picture: http://www.albertgural.com/blog/caltech-ditch-day-2013/image...

[2] http://www.digikey.com/product-detail/en/COG-C144MVGI-08/153...
The point is that we have something that sucks, not that we don't have anything at all.
One thing I have learned is that before writing much code, one of my main considerations is "how am I going to debug this?"
If there is community interest, I definitely would!

I love the Pibow, by the way. ;)
Ask HN: Would you work for the company being paid in Bitcoins?
any thoughts..?
I know. It would still be disastrous to be able to turn your head when doing fast moves like this. To make it work there would need to be something in the frame of the camera, or overlaid on the video, to indicate the center of the frame, because orientation is extremely important.
Erik did change his employer...so that might have something to do with it.
Basic Startup Valuation: How much are you worth?
I think spam was exactly the problem.

It's a shame and seems to really hurt. There's a lot of outdated information in the wiki and I suspect the obstacle to making fixes is a big contributor.
On my iPhone Chrome, no actual article appears. Just headline and comments.
Best languages allow both type systems with dynamic being opt-in.
Money is a leaky abstraction. What epicureanideal was really saying is that everyone's potential to create things or services of value to other people increase. Assuming people act on this potential and the monetary base stays constant we will get deflation. Of course, Uber and AirBnB are partly replacing taxi rides and hotel rooms - the total amount of rides and rooms for hire will stay more or less constant. So deflation for that reason is unlikely. It's not about the value of money overall.

But what are taxi drivers or hotel staff going to do? They can lower their prices (and thereby limit Uber/ArBnB) or they can do something else. Probably something less enjoyable and/or lower paying, or they would already be doing it. So money moves from professionals to hobbyists and the firms that organize the hobbyist movements. But who are the hobbyists really? Not millionaires, I would bet. The Uber drivers may be hotel staff and the AirBnB hoteliers may be taxi drivers. People who need money, in other words. So lower-class services get less expensive, low-class people get less purchasing potential and the potential go to the middle-upper class people at Uber/AirBnB directly, and to other trades not suited for hobbyisation indirectly.

It doesn't look very good.
I absolutely get the point about Scala, and hadn't looked at it from than angle before; can totally see that in a decade.

The difficulty with C++ does ultimately boil down to what you describe. But IME Objective C is an easier language in which to use OO features while retaining the flexibility of C where required - so it doesn't always have to the the case that a multi paradigm language fails. While ObjC is basically C + Objects + dynamic runtime, C++ has lots more stuff in there; I guess that's the kicker.
How does a weekend hobby project (and one that's been done before no-less) become a university research project?
حظك اليوم مع عبير فؤاد 28-4-2014 .. توقعات الابراج
Ask HN: Idea Sunday
Fresh start for the last week of April.
How is that an issue ?
Simple and fun for a while. Annoying that "submitting" a word with space makes my brain want to delete two characters instead of one if the last one is wrong.

Example, I spell "Charactet" instead of "Character". Space submits the word and creates "Charactet " in my brain so to correct this, I do two backspaces. Result is "Charact" instead of expected "Characte".