skysight-inc/HackerNews huggingface dataset:
The problem is when you have to maintain your code with millions of lines, and hundreds of abstractions.. those "features" will hunt you in your nightmares at night

This is the "The Curse of C++" and some languages pointed in the article while beautiful and correct at first sight are going down in the same road..

Do we use a programming language to look smart, to create correct code or to efficiently solve problems in a maintanable and sane way?

Go is pragmatic.. theres nothing wrong with that.. but i agree that adding some features to it would not hurt either (like generics and enums) :)
A) Do it in Q/A form, where people can ask questions and answerers get some kind of reward/currency/rep token in exchange for taking the time to answer. That way the initial content - questions - is low cost and easy to add to the site, and the high-value content is compensated for with something other than money out of your pocket.

B) If that's not an option, and you can afford this, fake it. Go to a freelance writer jobsite and find freelance writers who specialize in bootstrapping content for social news/discussion sites. Hire a bunch of them to create the initial content..
>If it does things that can already be done, just differently, it's complexity.

Doesn't that make programming languages themselves complexity? After all, you can already do anything in assembly.

That seems like a really weak argument. Sometimes having a more "complex" (in your terms) system leads to simplicity. For example, programming languages in general. Programming languages add "complexity" to computers over machine language programming, but the result is that making a program is a much simpler task.
> handful has been acquired, most are independent.

"Of the fifty companies named, 21 are independent, 19 were acquired, four pivoted, and six are dead."
You know, the embedded systems community has a heck of a lot of tools and formal logics for designing this stuff in the abstract. Lots of little DSLs and auto-checkers for thinking about processes and messages, that sort of thing. I'm not so sure about model -> code generation, I think that is mostly rolled by-hand.

For concurrency in the large, I wonder if there will be greater adoption of these sorts of engineering techniques.
I think most people who want to live in a planned-out corporate retirement community with 42 golf courses are not bold iconoclasts looking to stir the pot. I'd guess that most people who move there know that they are trading conformity for predictability and are probably happy with the decision.
I've seen HOAs that are both full of petty bureaucrats with unresolved anger issues, and ones that are out to make the community as widely accommodating as possible. No way to know without actually going and talking to folks.

That said, any community with the ability to push out people unwilling to abide by the communities standards will have a higher satisfaction rating with members of the community. Whether it is by incarcerating people who violate laws (general practice in most US cities), disallowing member to said people (common in private clubs), or killing and torturing their families (seems to be a technique used in less civilized places).

Some friends of mine have speculated what a retirement home for hackers would look like. Basically catering to folks who have strong opinions about "how" to live their lives. It isn't an easy question to answer.
Hn2mbox – convert HackerNews stories and comments from JSON to mbox format
Also a graduate student in cs theory and was a BSMer(huh, I realized I attended your midwest theory day talk)

There is a facebook group, computer science real talk. https://www.facebook.com/groups/500102603385910/
Things in there are interesting to grad students. It seems to start as a place for cornell cs graduate students.
There are people talking about STOC papers in there, neat.
I've recently tryed out Go for its Unicode integration. What I liked at first sight...

* the indexing makes a map[something]boolean act like a set. Sets and maps are so similar it always felt wrong for them to be two separate constructs.

* making exported functions/vars/etc begin with a capital letter. When naming important stuff, it's a relief not worrying about naming conflicts with keywords. When naming locals, just use i,j,p,q,p2 anyway.

* using defer and recover instead of catch and finally. The catch clause is really two functionalities rolled into one and using defer and recover decomplects them.

Other languages should copy those.

What I'm concerned about...

* printf and regex notation are used so much they're really part of the language, but have an entirely separate syntax embedded within strings which must be learnt. But unlike the rest of Go's syntax, they're unintuitive, especially regexes for Unicode. Unicode is meant to be one of Go's strengths. I understand quick parsing is one of Go's primary reason's for existing, but the regex and printf notations could have been cleaner. When you think about it, why are the arithmetic and bitwise operators generally part of a language's primary syntax, but string matching and formatting delegated to sub-languages?

* statements, like if/else and ++/--, don't return values in Go which is hard to get used to. I understand making statements generally be shorter so the code looks good after running through gofmt could have motivated this.

Overall, I think Go's a systems language intended for quick parsing and eliminating C++'s complexity, and the author's comparing it to languages with far higher level constructs. The correct solution is for people to implement languages like Haskell and Clojure in Go, making them execute as fast as possible.
Activists push for guaranteed minimum income for Canadians
That is how my project is going right now. As it turns out, many enterprise customers don't want an mvp.
Hey there. Yes, agree, thank you, but depends upon how many eyes you want on it along the way.

Said another way: didn't realize that today was Hacker News day! :-)

We DO have https://api.subledger.com which is Swagger documentation, but we lack a directed HOWTO document that describes double-entry accounting and how our API represents it.

Believe me, we're working on it! :-)
That's fair. I'll fix the article. Thanks!
If Go has a slogan that slogan is "Frictionless Development". It's easily the simplest, least annoying, and most "get out of your way" language I've ever used.

I suspect this is where many philosophical differences in these discussions originate. I appreciate the value of having quick and easy tools, but for production software where I care about quality, I don't want the language to get out of my way if I'm doing something silly, like treating data as if it's a different type to what it really is or assuming there is data to work with at all if a null value is a possibility. The web is plagued by security problems, so it seems odd to me that anyone would promote a new language for writing web-based software that retains obvious and entirely avoidable ways to introduce vulnerabilities.
I'm from a Linux/FreeBSD background. I'm currently doing work on a Windows platform.

> Oh and VS support for git has been around for awhile. :) TFS also has really good git support, it has been improving with every version and it is now at a really good place.

Git in visual studio does not work well. I'm using the built-in stuff in VS2013. If you want to do anything except the standard stuff (add, commit, pull, push without fancy options), it's horrible. There's no UI support for anything, and no CLI. I find myself resorting to msysgit a lot, and it has it's own problems. And the other devs laugh at me for it ("You're running bash, on Windows? Huehuehue"), only to experience the same problems as I do.

The .NET "async" model is not good for I/O bound problems, which is what I work on. Want I/O multiplexing? Well, you can have IOCP, but most people end up with one thread per connection anyway because I/O multiplexing is not an option in most parts of the library eco-system. Want to make an HTTP request? Have it done in a worker thread, because your HTTP library is blocking. I know things are changing, and I know there's other ways to go about this, but the author's claim that the concurrency model offered by .NET is inferior to others is a very valid one. I've done work in Java previously and it's basically the same problem. I've also experienced problems with lock contention, corner-case deadlocks, &c. Now these are problems related to the codebase, not the language itself, but threads as a concurrency primitive tends to cause programmers to make mistakes more often than other concurrency models in my experience.

And no, make files and .sln files are just not the same. They're both a part of the build system, but that's about it. I'm not even going to argue a point here, because it just fills me with rage to think about that god-forsaken fragile, XML setup that is .sln.
Null pointer dereference is unsafe memory access.
Looking foward to use the new beta through angles (https://github.com/lgsilver/angles) the Angular wrapper for chartjs.
This is existentialism.
> "there are people who downvote in group brigade fashion whatever they don't like."

HN is a very large site with traffic in, I believe, the 6 figure range per day. Some articles garner hundreds of comments and thousands of comment readers. It should not come as a surprise that, if you say something overly controversial, a handful of people might choose to downvote it without any collusion whatsoever. It only takes a few more downvotes than upvotes to put your comment solidly in the negatives.

Given the controversial nature of many of my views, I'd have expected to catch the ire of a downvote ring at least once if such things existed. Yet I've only ever had one comment in the negatives (and a small handful at zero.) Perhaps there are downvote rings out there, but I haven't seen any evidence of them.
Even without data caps, a TV connected box shouldn't be pulling down hundreds of GB per month while idle. Without data caps the author of this post may not have had an issue, but that still doesn't make what Amazon's doing OK.
The Northwest suburbs (Boulder, Louisville, Lafayette, Broomfield, Longmont) got quite screwed over in this deal - we approved and paid into the 0.4% sales tax in 2004, but ended up with only years of disruptive highway construction leading to a privatized tollway and fake Bus Rapid Transit. We didn't even get real BRT as the buses run in the private toll lanes rather than their own grade and the buses board and deboard just like a normal bus (supposedly the "train style" buses couldn't make it up a hill on the highway).

The Denver area really does have good mass transit, though - the Southwest suburbs are now well-served by light rail, the airport will have rail service soon, and the bus system is reasonable (as bus systems go), albeit with extremely high fares.
I doubt that null pointers lead to security vulnerabilities. Panics, yes; worse performance, yes; vulnerabilities, unlikely. Null pointers are not dangling or wild pointers, which are the problematic ones.
There's a version of that story on the wall of most Jimmy John's franchises.
Actually Twitch is a 100% pivot of Justin.tv. We took the entire team working on JTV, the platform, the cap table, etc. and pivoted to a specific vertical that had been promising on JTV. (I'm the CEO)
It only has 8GB of onboard storage, what the hell is it downloading and what is is doing with all that downloaded data?
It's a little less dangerous when you only need to cooperate with yourself, but yes, it does mean you need to be very careful that you don't have any means for some requests to take an unexpectedly long amount of time.

In MacOS if you grabbed a window title bar for too long with the mouse then all your sockets would drop. Fun times.
Your registrar may provide . . . forwarding.

And thus we return to my original question: Is there a way to do forwarding at the registrar level in a way that preserves the rest of the URL structure?

If you're willing to work at a less general level than the registrar, a Ruby gem called Refraction used to work for forwarding in Rails projects (I used it for the Ruby on Rails Tutorial and The Tau Manifesto), but Refraction rules included in a recent Rails project (the most recent iteration of http://tauday.com/) were seemingly ignored. Some Googling revealed a couple of possible more up-to-date solutions:

https://github.com/cwninja/rack-force_domain

https://github.com/tylerhunt/rack-canonical-host

I have yet to try them out, but they look promising.

As an aside, when someone asks a question of the form "How do I do X without feature Y?", it's rarely helpful to respond with something like "Why not use Y?" Typically, the person asking the question has a reason for not using Y, and by making not using Y part of the question they're trying to avoid exactly the kind of digression that happened in this thread.

EDIT (because HN won't let me reply): I agree that it's sometimes worth understanding why they want to do X without Y, but it's best done with a lightness of touch. Otherwise you risk not giving the asker the benefit of the doubt (e.g., via statements like "So? Your redirects don't need to be at Heroku."). It's usually better to either answer the original question as stated or tread very carefully, with phrasing like "I'd like to understand your reasons for not wanting to use Y" rather than the blunter "What's wrong with Y?"

UPDATE: I can confirm that [rack-canonical-host](https://github.com/tylerhunt/rack-canonical-host) does the kind of forwarding I wanted, as you can verify by visiting, e.g., http://tauday.com/tau-manifesto?foo=bar, which is correctly forwarded to http://www.tauday.com/tau-manifesto?foo=bar.
I don't agree with the GP, but if Go were very similar to C and the only big difference would be that C has no GC it would pretty easy to picture what the C equivalent of Go code would be. Exactly the same but with calls to `free()` at the end of some functions. (or preempted between instructions at unpredictable places)

Don't make GC's a bigger deal then they are. They are a tool to remove the need to call `free()` at the right time, with the downside that you don't get to control what the GC thinks is a right time instead.
Wait so that wasn't the point of using it? The author mentions custom OCR so I assumed he was using some sort of Gregg OCR solution.
Homepage grid breaks at 1440px wide for me (Chrome/osx).

Great update, love the tooltips.
>I'm relieved to see if I google Jeremy Bentham the first twelve links are about utilitarianism

That's only because Google knows you read this article.

Search in a private/incognito window incognito window and all the results are about Lost.
Have you done any benchmarking of canvas vs svg charts?
Is it fair to say that the laws are deliberately not published in an accessible manner? It seems more plausible that the sheer volume of the laws and amendments mean that it's hard to publish them in an accessible way.

If only we could adopt a git workflow. ;)
Customized Cookbook

=], I have a cookie/muffin recipe generator. Instead on a cookbook with limited recipes, the generator can be customized (produces recipes based on a user's preferences).

Baked Goods are grouped by type (e.g. chocolate chip cookie). The generator generates a unique recipe each time you click on a type of cookie/muffin.

http://www.easierbaking.com
I continue to see this idea grow in merit. It definitely seems if the trend towards automation continues that governments around the world will have to start providing a minimum income level to all their citizens.
Charging 1 euro is practical (so they don't have to be giving out a ton of change during the day...), but it sounds like they should have made sure they were offering something that didn't look too cheap -- e.g., get decent quality plastic cups that aren't tiny, do some actual work for each customer (instead of just pouring from a massive pre-filled jug), include a lemon wedge in each cup, etc..

I can easily imagine a lemonade-stand lemonade that would seem underpriced at 1 euro; but obviously they didn't take that approach!
Nick this is awesome. Would love to feature your work on blockspring.com so non-engineers can use chart.js graphs directly.
And Haskell certainly doesn't introduce breaking changes very often.

Actually, I'd say instability is one of the significant challenges with adopting Haskell for long-lived production code. For example, there have been a few discussions in various forums and blogs recently about how much of Real World Haskell no longer even compiles on the latest GHC and current versions of libraries. RWH is a book that rapidly became the go-to text for new Haskell developers only a few years ago, so we're not talking about either bleeding edge functionality or a length of time where software written back then has probably been retired here.

So stability is perhaps an area where Go does have an advantage over the likes of Rust and Haskell today. Rust is still evolving as a new language inevitably will; it has not yet reached the level of stability needed for long-term production use by the general programming community. Haskell is also still evolving, but for a different reason: it is valued as much for being a test bed of bleeding edge programming language design as it is for being a practical programming language.
I think it would be a retirement home for people that aren't hackers anymore. The idealized notion of a hacker is someone that is engaged with life and that sort of person, in my observation, doesn't end up in a retirement home.
Types Of Dogs In The World
So you're thinking about getting a dog. Sure, you've entertained the idea before, but this time you're really serious. Yet you're intimidated. You've never owned a dog, not even as a kid. It seems like a lot of work — walking it, training it, making sure it won't destroy your apartment or make your neighbors hate you because of constant barking. Luckily, there is an infinity of breeds out there to pick from, and many of them make particularly good choices for you, the first-time dog owner. So take a deep breath, choose from this list of breeds, and you'll be just fine.
I did the Clipper Race [0] in 2007 when Hannah Jenner was the skipper aboard Glasgow. I never sailed directly under her but I sailed with plenty of others who did and they had nothing but praise for her abilities. I was also on a boat racing against her's numerous times so I've witnessed the sailing aspect firsthand.

At one point her boat had a man overboard in a force 6 in the southern ocean. It's a testament to her skill that he survived. It requires true leadership to keep your cool in those sorts of conditions.

[0] http://www.clipperroundtheworld.com/

[1] http://www.yachtsandyachting.com/news/139315
Alas, she only won due to the massive headstart such a boat is afforded.

> Dorade’s finishing time in the Transpac race this year was 12 days 5 hours 23 minutes 18 seconds

> Dorade started a week earlier than Pyewacket, which finished the course in 8 days 15 hours 41 minutes 3 seconds.

Still, nice to see wooden hulls aren't dead.
https://www.youtube.com/watch?v=zmeDzx4SUME
believe it or not but you do not to have direct experience to be able to produce judgment. In fact researcher should have distance from the subject he/she is investigating.
> I've seen HOAs that are both full of petty bureaucrats with unresolved anger issues, and ones that are out to make the community as widely accommodating as possible. No way to know without actually going and talking to folks.

The real problem is that the association members could change overnight and there isn't really anything you can do to stop it.
>The correct solution is for people to implement languages like Haskell and Clojure in Go, making them execute as fast as possible.

Uh, what? Haskell already compiles to native code, and is faster than Go in many cases.

Also, if you were implementing a programming language, there are much better languages to do it in than Go.
I'd also like to thank you for your blog. It is a resource that I have repeatedly found myself going back to as I explore CS and math.
Do you really need a business plan?
GoogleAds attached to the article
Hashed solutions is brilliant! Thank you!
Why are so many Westerners homeless in Thailand
Yes, the guarantees provided by true immutability are not met by "const". I wrote the note loosely using the author's expectations and advantages of immutability, not the exact definition. But thank you for letting me clarify.

Also I just noticed with Go's Unicode support we can write `const π = 3.14..` if we really wanted.
Ask HN: Anyone ever had a business coach?
Anyone ever had a business coach?

Interested to hear the context and how you found the overall experience.
> And thus we return to my original question: Is there a way to do forwarding at the registrar level in a way that preserves the rest of the URL structure?

Depends on your registrar.

> As an aside, when someone asks a question of the form "How do I do X without feature Y?", it's rarely helpful to respond with something like "Why not use Y?" Typically, the person asking the question has a reason for not using Y, and by making not using Y part of the question they're trying to avoid exactly the kind of digression that happened in this thread.

Sure, but it is sometimes worth asking why someone wants to know how to do X without Y.
Coordination with the real world is and always has been the pain point with STM. It's fine if your STM universe lives entirely in a subset of your data on a single machine [1], or within a single database [2], or with a single decision-making unit [3].

Most languages have extremely poor support for separating interactions with the real world from interactions that occur entirely within one serializable context (a thread working with thread-local memory, for example). Can you safely replay arbitrary C, C++, etc.? No, because side-effecting code could run at any time and occur in any context. So that is one problem that has to be solved first.

Suppose you've solved that problem. Well, now for a distributed system, you need to make STM talk to STM. Make one module talk to another over a network, or a filesystem, or another database, or a client browser. Do you have STM working in the JavaScript running on client's machines? And even if you managed that feat, do you have end-to-end STM from your datastore to your client's actions?

Distributed STM that wasn't painful to use, either to write or in terms of performance, would be a sort of holy-grail of distributed computing. I don't think any language or toolchain is there yet.

[1] Haskell, Clojure, et al STM engines.

[2] SQL-compliant relational databases such as DB2, Oracle, SQL Server, as well as distributed databases like HyperDex that support true transactions.

[3] Paxos, Raft, and other decision-making algorithms only ever externally appear to be consistent, but are internally complex and might have an internal tug-of-war.
I saw a talk that said the branch of Mathematics that dealt with the interconnectedness of Mathematics was called 'Category Theory'.
You can see it here:
http://vimeo.com/17207564
and Part 2 here:
https://www.youtube.com/watch?v=yilkBvVDB_w
They're actually not that political, usually. They're immune to politics so that protects them a great deal from the pressures that can be brought to bear on other branches of government.

They also have historically had a completely different axis on which their decisions turn. Not left or right, but strict or flexible in their relationship to the constitution. It leads to some real surprises and people often interpret these in terms of political pressures but really the supreme court is the one set of people in government who care the least about pleasing some political masters.
just to know what are this different views by more recent pontiffs.
Re SW 2 and 4: You might want to base this on http://named-data.net/ that builds an information-based alternative to the host-based IP protocol. AFAIK this work was started by Van Jacobson at PARC who is a central figure in the TCP/IP stack.