skysight-inc/HackerNews huggingface dataset:
Sketchpad was prototype based, simula was early class based (though they didn't use those terms yet). It's likely they were developed mostly independently; OO just arises naturally when design is based on linguistic concepts like subjects, nouns, and things they can do.

What we know of UI today is more an artifact of smalltalk (both the first GUIs and smaltalk came out of parc and were related).
Just curious… why not? Isn't a class definition just a type constructor? For instance, if I have a class, Foo, with three types of fields: int, bool, and string, isn't that the same as:

Foo of int * bool * string

I don't have a full PC handy, but, while learning F# a few years ago, I remember using Reflector to analyze an assembly generated by FSC.exe and the pattern match turned into a class hierarchy.

It may not work for all kinds of pattern matching, but that seems like the most straightforward way of handling sum types. What am I missing?
It lacks wow-factor and it is not an iconic addition to the skyline. The Twin Towers (and the Empire State) very much said 'this is New York'. When I first went to New York I very much wanted to go up the Empire State - a visit without going to the top would not have felt complete. I am sure many, many tourists feel the same. However, with the Twin Towers there was somewhere higher to go so tourists would be siphoned off and up there.

The London skyline has redefined itself in recent times to be a bit like some theme park. The 'eye', the 'Gherkin' and the 'Shard' (as well as the 'walkie-talkie' building and 'cheese-grater') are what the skyline is now. The interior of the 'Shard' is one thing, the exterior is something else. I am not a fan of the new novelty London skyline, however, the 'Shard' looks awesome from afar, if you commute in. It has that aspect of awe and wonder that I think the new WTC needed.

How hard is it to have awe and wonder? The Twin Towers were as basic a shape as you can get yet they had it.

How valuable is it worth? Probably the French are best to ask on that, the Eiffel Tower has it but there isn't a lot of rentable space there. Yet the Eiffel Tower is probably one of the best investments in a building ever made, it defines the city and tourists as well as locals love it.

Innovation is important with iconic buildings. The Twin Towers - despite their many flaws - were truly innovative in their construction and in how acre-sized floors were possible without a lot of pillars in the way. Although the most recent London skyline additions are not exactly 'loved', they all innovate. Does this new WTC building innovate? No. Sure, some things are new and improved, e.g. the lifts, but there is no evidence of engineering genius.

As for 'reverence', why should the building stop at the former Twin Tower height? Some brash arrogance with an even taller building should have been the way.
I'll be one of the first to cheer, but even with the pope and co changing their minds about what god likes and doesn't like every other year, there are billions more.
The problem with JIT is that it's not very simple. Sure, you can write your own single-purpose runtime-code-generating routine. But the beauty of OO is that it's widely applicable. If you want to achieve comparable speeds with JIT, you pretty much need some sort of a virtual machine; in particular, simple method-at-a-time JITs are not very efficient; you need some sort of measuring or tracing, so that you know what code to compile and how to optimize it.
There are Marchitects, Tarchitects, and Farchitects (Market-oriented, Technology-oriented, and umm... "freaking" architects).

Sounds like you have a team of Farchitects.

I have the title "architect", and I write code. It's usually code that lets the other thirty programmers write one or two lines of code instead of 200 lines, 30 times, in 17 different ways.

Because it is framework code, I'm often providing them the Lego blocks to build the rest of their system in... With unit tests... and examples... and at least one real implementation... and a Wiki page explaining it... and a Powerpoint session teaching them how I expect them to use it.

I do get the occasional grumble ("Uhh... Can't I just use Doohickey V directly?" "Sure, take a look at the interface, and don't forget the externalized configuration." "Oh.")

Just sayin'. There are architects and there are Architects.
Why do you care so much? It's just a news site.
I learned when buying a condo that mixed commercial/residential buildings are hard to get loans for because Fannie/Freddie won't buy them from banks. NYC is probably its own beast, but in the rest of the US it's a problem.

People claim it's due to historical racism as Blacks tended to be the ones living above commercial spaces.

In my own city, historical mixed-use buildings were run as apartments by slumlords until vouchers allowed low-income people to move out. Then they were vacant, bought up, and redeveloped.

And the banks funding the redevelopment loaned to home buyers (in an attempt to make their original investment pay off) and the subprime lending spree also helped many people get financing. After the credit crash, most of the new developments were as apartments.

Anyhow, were this not a historical district, any new development would have probably followed single-use zoning.
> (Not crazy stuff like Monads)

Read this and tell me that "crazy stuff like Monads" is an accurate statement:

http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/ba...
> AFAIK "pure FP" is about getting rid of states

Of course not. It's about making state be always explicit and about carefully controlling side-effects. Some state is going to be there always.
I like your 'the syringe' name! Can we make that a meme so that is what people call it?
Chrome 39 on Windows 7, when scrolling the text gets blurry. On Chrome 41 Canary though things work well and fast.
Yet nobody in Alabama wants to secede. A significant chunk of European citizens are against the European Union.

Plus, the cultural, historic, linguistic similarities between Alamaba and Woyming are infinitely greater than between the UK and Croatia. A person visiting Alabama from Texas isn't a "stranger", and wouldn't be treated or considered as one.
Could you post more about your technique? Like, what emulator are you using (qemu)? How do you trigger the snapshots? Are you snapshotting memory or disk or both? How much disk space is consumed by all these snapshots? Do you discard snapshots? How do you know when the bug has been triggered?
post anything about PHP, everyone will jump in
Ough man, those negative feedback loops are a pretty fucked up experience.
I'm a little stumped by that, I'm all for repl oriented development, ~zero round trip time etc etc but I have to admit that when you thought the problem through in your head long before writing any, then the right code will fall through. So are instantaneous cycles good or bad ?
Great story about boating. I get a similar humility and fear experience from foreign language study and practice.
I've seen at least two similar pages - with people's configs as Org files, written in a kind of literate programming style, but I can't find them right now, unfortunately. It would be good to have them all in one place, I think, as this is a very good format for learning Emacs.
I've been thinking about how to stop toxic and/or drive-by comments like yours.

One idea I've had is a new account shouldn't be allowed to comment until 24hrs after the most recent login until it reaches 7 karma. The only exceptions are if the account is commenting on an article that it submitted or the email used to sign up for the account matches the domain of the article.

This stops people like you making a comments like this and also prevents the sock puppet idea you gave. Even if you create a bunch of "burner accounts" ahead of time when you actually try and use it, you won't be able to comment for 24hrs after login. If you try to circumvent this by constantly logging in but never posting, that pattern can be detected by HN admins. It'll look odd seeing 2 or more accounts below 7 karma always logging in everday but never posting from the same IP address.

Of course you could work around this by posting good comments with the burner accounts then going silent after the karma-7 goal but that's a lot of work and I suspect more than 50% of mundane comments would disappear.

I would love for the HN readers to poke holes in this idea of how you'd get around it or if it would damage the comment quality/diversity significantly.
Also, any distribution worth its salt will accept bugs for any package it ships and (especially for something as important as the kernel) report the bugs upstream. This may be a slow process, but it does mean that bugs introduced by distributor patches are more likely to be caught.
When Facebook real name policy becomes a tool of oppression
Yes, it means the same like in English.

There were people from the far left wing that tried to establish that it was meant literally, which would then become racist. But that looked so far fetched that it wasn't part of the official strategy of the far left parties.
Yeah, I chose a somewhat poor example. My main point was that order matters, you have to do A before B. You can not do them at the same time, or something different happens. (Contrasted with a language like VHDL where everything typically happens at the same time.)

Simply put, functional is not necessarily the opposite of imperative.

I took to googling to see if someone had made my point better already. The best I found quickly is this[1]. It is a good read. As it points out that we are most likely both stuck on different numbers in the "opposite of imperative" definition world.

I will say that throwing out mutability with the bathwater is perhaps the single most frustrating thing with most functional advocacy.

[1] https://existentialtype.wordpress.com/2013/07/18/what-if-any...
Does copying the stack really work? What if some local variable changes in between the call/cc and calling the continuation? If the stack is a copy, that change will not be reflected when the continuation runs.
OO has been tremendously successful, it has allowed us to build systems that we wouldn't have dreamed of before. The Web was invented on a NeXT in Objective-C.

Reuse in UI frameworks has been great, and I've had similar success with custom frameworks.

However, success invariably contains the seeds of failure, because success means that we are taken to the limits of applicability. To me, those limits were visible in the 90ies when I wrote my Master Thesis[1], issues like the non-composability of frameworks, the runtime/compile-time, composition/inheritance dichotomies, architectural mismatch etc.

Alas, nothing really happened, and IMHO, things actually got worse. At the time, I had two candidates for "the future", one being AOP and the other software architecture. AOP was a dud, but I am very hopeful about better linguistic support for software architecture, so much that I am creating a programming language that has software architecture as its organizing principle, deriving other paradigms such as OO from this base [2].

Having been exposed to FP early on, I have to admit I don't understand the current hype, because it seems to primarily address issues of "programming in the small" (tight coupling), although some of the lessons (communicate using simple data) are applicable elsewhere, and have been discovered elsewhere. I don't see a large-scale distributed system like the WWW built in the FP-paradigm, but happy to be corrected!

[1] http://www.metaobject.com/papers/Diplomarbeit.pdf

[2] http://objective.st/
"I treat my female coworkers with respect, I politely discuss technical stuff with them if they feel like. I do make sexist jokes if I was able to get to know them sufficiently before, like any healthy male."[0]

Wow. Any health male makes sexist jokes to women if he gets to know them? I guess I'm just not very healthy then.

"My wife’s male coworkers behave the same way and I have no problem with that."[0]

Easy to say you don't have a problem with something that doesn't affect you!

0: http://harmful.cat-v.org/political-correctness/girls-in-CS
The Node.js Profiling Guide That Hasn’t Existed – Profiling Node.js Applications
Method dispatch using a vtable (a pointer, embedded in the object, pointing to a record of methods) is way faster than practically any other form of dynamic dispatch (except calls of known functions, of course). To support it, you pretty much need some form of single inheritance/subtyping (C++ does support multiple inheritance, but it significantly complicates the implementation). Rust's single-dispatch type-classes and Go's interfaces are dispatched in a similar way, but the record of functions is passed along the pointer to object as a "fat pointer". Servo people figured out that that is too wasteful/slow compared to C++-style vtable approach.
I tried Psilocybin recently, with intent to see what changes the experience might make to my mood and mental outlook. My trip was quite uncomfortable, as others have related. I'm glad I tried mushrooms, however.
Upon return to this astral plan I was immensely grateful for sanity and the little pocket of warmth in time and space that is our existence. In the days since I have found my mood to be better.

My Psilocybin trip was an almost terrifying experience that served as a good reset. I will definitely consider repeating this on a periodic basis if needed, being most respectful of the dark power these little fungi possess.
Or a massively over-designed BBS ;-)
I do the emacs-config-in-org as well. I also have it auto-compile using a snippet I found on github[1]. Additionally I have git-auto-commit-mode[2] enabled for my emacs config org file, so any time I save the file, it compiles to init.el and then commits those changes automatically. I periodically push to master when I remember.

[1] https://github.com/larstvei/dot-emacs/blob/master/init.org#m...

[2] https://github.com/ryuslash/git-auto-commit-mode
Had this happen to me once when I opened my browser and it loaded a bunch of HN tabs. I browsed through a proxy for a few days and then eventually my ip was not blocked anymore.
What about people who use throwaway accounts for legitimate reasons?
Thanks for elaborating. I can see this making sense for a large Goog-esque type company with plush benefits.

But for a Series A startup "administrative staff, facilities people, security, office space, gym, various other insurances, transit reimbursement, educational opportunities" should be just "office space". 401k matching should also be 0, and probably dental too.

So I'm still not seeing anywhere close to 200k/employee for a startup.
>Generally, they will cause extreme anxiety in those who are naturally prone to it, possibly to the breaking point

Generally? No.

I've taken and been around people who have taken mushrooms for over 15 years. I still dabble on occasion. I've never seen or even heard of someone reaching a "breaking point". This is not to say that it can't happen, but saying that mushrooms will do it, generally, must be supported.

That said, mushrooms are no fooling around. If you have no experience with "being high", and the altered mental state that that entails, I would never recommend diving into multi-gram does of 'shrooms. Once you've had some experience, it's much easier to tell yourself, "I'm high, this will pass. Enjoy it."
If it's a large chance, it's specious to say it's non-zero, if it's a "non-zero" chance, it isn't quite large.

Which do you mean?
POE is (in my opinion) a bit grottier than some other solutions might have been, but certainly not on the "shrieking horror" level of Expect. ;) There are many different sugar layers built atop POE, but I'm now using MooseX::POE, which is nice. It's not a disgusting pile of hacks, unless you think that everything in Perl is that, in which case... y'know.

For example, IO::Async lets you do your work with futures, which are a very nice abstraction that people from many other languages are used to. You can do that in POE, but it's not the default way. POE also has, sometimes, weird choices of jargon for stuff. I know POE better, though, and my goal was to get it done, rather than learn a new framework or build something to last the ages. I mean, the kid might stop being interested in Minecraft at any second, right?

And yes, it was mjd.
Dynamic dispatch is a special case of predicate dispatch. In particular, captainmuon pointed out that:

>Pattern matching in functional languages solves this in a different way.

captainmuon wanted a more flexible way of dispatching on types similar to what can be done with Pattern matching (which is also a special case of predicate dispatch).

In the post I linked to above this example is given:

Basically, instead of basing the dispatch on an "is_a" check, you check whether a general predicate is valid on the argument. So, in imaginary syntax instead of writing

int foo( int a, int b):
if a > 0
return a
else
return b-a

you'd write:

int foo ( gt_zero? a, int b): return a
int foo ( int a, int b): return b
> I bought my first boat

The two greatest times in a mans life, when he buys a boat, and when he sells it.
Great comment! I want to emphasize this:

A Random Walk Down Wall Street by Burton G. Malkiel lays out the basics of portfolio diversification.

A Random Walk Down Wall Street is one of the best books I've ever read, and I'd only add that I think The Millionaire Next Door is also excellent. When most of us think about millionaires we think about Hollywood stars, tech company founders, and finance moguls. But most millionaires are actually normal people who spend below their means and invest what they can, usually in index funds and sometimes in a house. If they marry they don't divorce (divorce is very, very expensive and modern marriage is a high-risk endeavor).

Chances are good that most of the millionaires you know don't live like millionaires—which is why they can be millionaires!
The more mature a system is the harder the bugs will be. It's a simple bit math: easy bugs can be found by just reasoning about the code, harder bugs can be found with some persistence and sometimes a debugger. Those are all found relatively early on in the life of a codebase. But a really hard bug that shows up only under stressful situations on a system that has been running stable for days, weeks or even months will have a cycle time roughly equivalent to the number of incidences that you can generate on a single machine. Hard to reproduce -> hard to analyze -> therefore hard to fix.

Anything you can do to speed up the occurrence of such a bug should be reached for first because just speeding up the frequency with which the bug appears guarantees that you'll be able to fix it sooner, and to be more certain that you have fixed the bug once you think that you have identified the problem.

You can waste months on little nasty ones like this. I love it though, digging in on a bug and not letting go until the sucker is nailed for good. Especially hardware related bugs (interrupt handlers that are not 100% transparent for instance) and subtle timing bugs can be super hard to fix. But that feeling when you finally find it is absolutely priceless, it's like solving a very complex puzzle and finding the solution. I wished it did not take such a toll on my nights though :)
There seems to be a trend. It's really nice, because just about everything has a Lua interface these days and you can make nice applications in it. Like Lua works embedded in databases like Redis or web servers like nginx or operating system kernels, like NetBSD. And it's really simple to learn and really performant, especially with LuaJIT.

I always feel like it is showing off with simplicity, while still being a "normal" language the majority of people easily can get into quickly. I always like the give the example of my brother finishing games with love2d (basically just wrapping SDL, especially back then) in a matter of days, without prior programming knowledge (unless you call basic HTML and CSS programming, no JS).

Out of curiosity: How did you start out with Lua?
> like if you want to add a custom widget type

Add a custom widget from a gui program itself? So it's a gui program that has a widget builder then? Why not have an abstract data type which lets you encode the properties of both of those?
Multimodal Recurrent Neural Networks that describe images with sentences
Why do all of you seem to hate Krugman?
I have a macbook pro from 2011, a macbook air from 2013 and a retina macbook pro 2014. I had issues with heat dispersion with the macbook air but not with the macbook pro and the retina macbook pro.
1. Visit google.com

2. Search for [how can I get unbanned from hn]

3. Click first result

4. Do what it says
Just downvote and flag. Ignore the trolls.
Sheesh, I didn't even know it was possible for males to be vaccinated against HPV. How is that not a good idea?
Seems.. Useless...
> Maybe there is a role of operator overloading or templates in C++ but I never really found it.

Operator overloading like using + on strings or adding n-space vectors to other n-space vectors is at least convenient, isn't it?
Last Update 2005.

I miss the 1990s with IRC them days were unreal and so much fun. Today I think of it as a tool to get help and to help others and that is about it. Seems like channels get smaller every year except a few (Arch Linux and Ubuntu.
The not so wealthy that stay there get to start business on a level playing field, instead of having unfair competition from the wealthy ones.
>Why does all of you seem to hate Krugman?

I don't. I have much respect for the man.

But his NYT writings can sometimes lean towards what might be described as "left-wing blowhardism".
The IRS $.56/mile takes into account estimated gas costs, wear&tear and insurance. You are double dipping.

Also income tax is deducted off of profits not driver revenue.
Money doesn't buy good memories, but it sure helps finance many opportunities to make them. It's neither necessary nor sufficient, but that doesn't make it highly enabling.
Operator overloading is just a function call. Everything you say about overloading an operator could be said about the function call that would replace the overloaded operator. I've never had trouble recognizing that a use of an operator was being done with a non-primitive type, which is the only way the confusion you describe could possibly happen, and the problem you describe has never happened to me while working on C++ code. I don't know why you think it is even plausible.
"Allocate four digits for the year part of a date: a new
millennium is coming."

Nobody starts projects using two digit years anymore, right? And most of the existing software that did was patched and or replaced for Y2K.

Also the part about a new millennium coming is temporarily not applicable.
Logically, closed extension and open extension are different things. OO conflates them together for no reason other than having the polymorphic dispatch hammer. FP equivalents for polymorphic dispatch are pattern matching for closed extension and plain old first class functions for open extension.
Maybe this: "‪The job's not over until the paperwork's done."

I've worked a few jobs in the last 10 years (non-gov't), and I didn't experience paperwork around programming work.
Asymptomatic shedding. Yes, absolutely terrifying. It's also possible to have HSV and not know because you've never had an outbreak.
In France, New Review of 35-Hour Workweek
How can I do the pageDown and pageUp in my Mac? I often use ctrl-B and ctrl-F in the terminal. But it doesn't work here
AOP isn't a dud. Google Guice is AOP.
Slightly OT: That code makes me miss Perl. Working, nice looking, easily understandable, object oriented, async code.

https://github.com/rjbs/Soviet-Minecraft/blob/master/lib/Sov...
Maybe you can fix your '-' problem by putting '--' (like a blank option) in front of it. This tells send-keys not to interpret anything after the -- as an option.