skysight-inc/HackerNews huggingface dataset:
So, I'm not David, so I'm not going to pretend to know what his thoughts are, but I'll say that I've always had really mixed feelings about Wasabi.

Let me start by saying that Wasabi as a strategic move was brilliant. If David disagrees there, I'm a bit surprised: FogBugz represented an awful lot of battle-tested low-bug code, and finding a way to preserve it, instead of rewriting it, made one hell of a lot of sense. I'm with you that the general thoughts in this forum that we'd have to be insane to write a compiler are misguided. Wasabi let us cleanly move from VScript and ASP 3 to .NET without doing a full rewrite, and I'd be proud to work at a place that would make the same decision in the same context with full hindsight today.

That said, I think Wasabi made two technical decisions that I disagreed with at the time and still disagree in with in retrospect. First, Wasabi was designed to be cross-platform, but targeted .NET prior to Microsoft open-sourcing everything and Mono actually being a sane server target. At the time, I thought Wasabi should've targeted the JVM, and I still think in retrospect that would've been a much better business decision. I really prefer .NET over Java in general, but I know that it caused us an unbelievable amount of pain back in the day on Unix systems, and I think we could've avoided most of that by targeting the JVM instead. Instead, a significant portion of "Wasabi" work was actually spent maintaining our own fork of Mono that was customized to run FogBugz.

Second, Wasabi worked by compiling to C# as an intermediary language. There was a actually an attempt to go straight to IL early on, but it was rejected by most of the team as being a more dangerous option, in the sense that maybe three people on staff spoke IL, whereas pretty much everyone could read C#. I also think this was a mistake: the C# code was not human-readable, made debugging more complicated (VS.NET had something similar to source maps at the time, so it wasn't impossible, but it was very indirect and quirky for reasons I can get into if people are curious), and that decision meant that Wasabi had all of the limitations both of its own compiler, and of Microsoft's C# compiler. IMHO, these limitations are a big part of why the ultimate move away from Wasabi was even necessary in the first place, since they increased both the maintenance and developer burden.

So from my own perspective, I think that Wasabi was a mistake in that, if we were going to go to C#, we should've just got the translation good enough to really go to C# and then ditch Wasabi; and if we weren't, we should've actually owned what we were doing and written a genuine direct-to-IL compiler so we'd have more control over the experience, instead of going through C#. But I still really do genuinely believe that our going to Wasabi was a brilliant strategic decision, and I think Fog Creek would have suffered immeasurably had we not done it.
The parent did not say that plugins caused bloat, instead that resolving common problems with plugins (stability, quality, conflicts etc.) by pulling them into core is what causes bloat (slowness, complexity etc.) and that trying to resolve the tension between flaky plug-in based systems and bloated monolithic systems is cyclical.
The Secret Service deals with counterfeit money not the FBI https://en.wikipedia.org/wiki/United_States_Secret_Service
A Reasonable Starting Point for Building a Web App
Thirty years ago people complained that GNU Emacs needed 8 megabytes of RAM.
To be honest, yeah, you stated EXACTLY one of the reasons they would never want to invest in training you: because the first thing you are thinking when you join what seems to be a nice company is leaving.

Of course they can simply make a calculation on how much time is required to get that training costs out of you, and I believe companies which offer the real absurd perks already have so much money that they just need to flush it out and maybe save taxes on the way of people leaving.
Objective-C categories are a land mine.

1) You have no way of knowing that your category method isn't going to collide with another method. That method could be one of Apple's private ones, or it could be a method from a category used by another library you included in your app, or it could be even be from a category used in a jailbreak tweak. In all these cases, it's entirely possible that the colliding method doesn't have the same size arguments or return type as yours, in which case you are going to get extremely difficult to debug crashes. You also don't have guarantees around whose categories win.

2) As a class developer, you have no way of preventing categories from messing up internal guarantees of your class. Want it to be immutable? Too bad, some developer you've never talked to added methods in a category that require local state. Want to add and use a new private method? Too bad, that name is already taken by some random category, and now it looks like your code is breaking everything because it was just committed.

Prefixing category methods is a partial fix, but lots of folks aren't aware that they should do that.
> Wasabi might have become a noteworthy language outside Fog Creek

We had an interesting question: "why are we using two different languages to develop client and server side functionality?"

NodeJS obviously has the better answer, but much later than Wasabi.
Atom's vim mode is a joke. No ex mode, you need another plugin for that ... which is kind of clunky.
Starting Soon: Interactive Computer Graphics with WebGL
Google Android M: 5 Secret Features Not Many Talk About
Interesting take on this. Outsourcing has always been a struggle for me, but every once in awhile you get a good contract going that makes life easier rather than harder.
I just timed it and it was less than 5 seconds. I would suggest giving 1.0 a spin before you judge.
The Sikhs who saved Parmesan
NEW POWERFUL DRUG IN ORANGE COUNTY
I've written like 3 compilers, and while I don't think Wasabi was quite insane (they had an interesting set of constraints, so I could at least follow the logic), it's not the choice I would've done. Or rather, it's totally the choice I would've done as a fresh college grad in 2005 having written my first compiler for work (which was ripped out in about 2 months...it didn't take me that long to realize my mistake), but it's not what I would've done with the hindsight experience of that and other compiler projects.

The cost of an in-house programming language isn't in writing the compiler. It's training all your new team members in the language. It's documenting the language constructs, including corner cases. It's in not being able to go to Stack Overflow when you have problems. It's in every bug potentially being in either your application code, your compiler, or your runtime libraries, and needing to trace problems across this boundary. It's in integrating with 3rd-party libraries, and in not being able to use tooling developed for an existing mainstream language, and having to add another backend to every other DSL that compiles to a mainstream language.

All that said, I agree that if you're ever in a position to take a compiler course, do it. It's one of the most valuable courses I ever took, and really peels back the mystery on why programming languages are the way they are. It's just that the difference between wisdom and intelligence is in knowing when not to use that brilliant technique you know.
I disagree with your characterization. Take jQuery for example.

1. Small, fast and minimal.
2. Easy to create plugins.
3. Budding ecosystem and explosion of plugins.
4. Conflicts ensued and some plugins got pulled into the core project.

Eventually, the growth of jQuery tapered off as the project stabilized. Not only did the size taper off, it got smaller as well. After nearly 10 years, we're talking about a payload of 30K minified and gzipped.
https://mathiasbynens.be/demo/jquery-size

The cycle of bloat doesn't always take hold if your team is disciplined and dedicated to keeping it small. You simply can't expect to your 3.0 to be as small as your 1.0 because it's very unlikely you're going to know upfront how people are going to use your software.
Actually I just realized that the law does not hold, the type `Void -> Maybe Void` has two inhabitants, not one:

f1 x = Nothing

f2 x = Just x
It highly depends on your usage pattern.

I usually have one long-lived instance of an editor for the project/thing I'm focusing on, but I also frequently fire up "temporary" instances for one-off editing jobs, from the terminal.

The difference between, let's say, "subl ." (launch Sublime Text in the current directory) and "atom ." is staggering: Sublime Text starts instantly with a boatload of plugins; Atom starts nearly instantaneously but then takes around 5 seconds to become usable, without plugins, after repeated runs.

(Speaking of specs, I'm on a late 2013 Retina MacBook Pro, 16 GB of RAM)
Branson-Backed OneWeb Raises $500M to Build Satellite Internet
a-d are all valid points, and (c) is certainly one crux when it comes to listing a higher-paying jobs - is listing 'competitive' the only way of combatting this (what about the application process finding the most compatible skill-wise, person-firm fit-wise, etc)?
It will take you less than a day to learn to read CoffeeScript if you are familiar with JS.
The first digital library to share revenue among all users
Doesn't the Soviet flag represent engineered famines that killed tens of millions? Certainly on par with the South's flag.
Thank you for your detailed response!

> But who knows what they future will bring, so don't follow it exactly but instead go learn the things that are both in demand and that people complain are too hard. That's what worked for me. When game developers said 3D was too hard, I jumped into it. When game developers said multi-core was too difficult, I mastered it. And those are the skills that led to my biggest paydays(1).

That sounds like a rather neat advice right there.
There are very few situations where writing your own langue and toolchain is a good idea. I used to work on a proprietary company language that was actually a compiler generator for language-to-language translation, plus a bunch of other stuff, and it was a horrible pain.

Documentation? None
Online community? None
Transferability of skillset? None, apart from knowing how compilers work. Makes for good nerd conversation, but that's it.

Writing your own toolchain is almost as bad. I've seen multiple talented people leave companies I've worked at when they were forced to build and maintain horrible tools for the in-house ecosystem. Some too-big-for-his-britches second-system-as-a-first-system ass had written them, and everybody else got stuck with it.

As the other commenter noted, this seems like epitome of bad software engineering and I'm surprised employees put up with it if they were any good.

EDIT: I learned to program in assembly, so compilers didn't seem super mysterious to me as they are for someone who learns Java first perhaps.
I've felt largely the same about vim. I think atom is the GUI'ed equivalent of excellent extensible minimalist command line tools.
Absolutely. The argument is not that he should be free to defraud people, the argument is that credulous buyers may still be liable for negligence charges (and certainly a civil suit and firing) after we prosecute this muppet for something in the vicinity of second or third degree murder / manslaughter by gross criminal negligence, plus fraud.
Flexible 'skin-like' colour display developed
Match.com IPO
Snoop Dogg for CEO of Twitter
The Limits of 3D Printing
Esp8266 quick and dirty dns tunneling
Sure, you can write your own packages in vanilla JS. Unfortunately though all of the documentation (and most packages themselves) are all written in coffeescript. Basically, the only way you can write a plugin in Javascript is if you already know Coffeescript (at least enough to read it).

It's just one extra barrier of entry for non-coffeescript developers. I personally thought about writing a simple plugin, went to the documentation and realized it was all in coffeescript with no JS option, and gave up. I simply don't have the mental capacity to learn another language that probably won't be around in 10 years.
Maybe it is because it isn't fan-subs but when it comes to watching anime on Netflix, I much prefer the dubs. The subtitles maybe closer to what they said originally but the English is usually stilted and hard to follow.
The main service management-related components of systemd very much exploit the Linux kernel's facilities, so your claim is completely incorrect.

The broader tools that systemd also provides (stub DNS/LLMNR resolution, network management [DHCP, PPP...], container registration, message bus introspection and library, event loop library, EFI stub loader, device and mount management, hardware database, TTYs, NSS plugins, session and seat management, SNTP client, time/date control, dynamic configuration population, etc.) exist mostly for philosophical reasons of being a one true toolkit/middleware that sits between GNU and Linux.

launchd isn't Unix-y at all, anyway.
Until you search and replace with regex that is. Jest aside, it's a great editor, thanks to everyone involved.
Those might all be true and it's understandable why nobody wanted to support all that long term, but that doesn't mean people should abstain from developing their own languages and platforms, just because it lead to nasty code that one time at Fog Creek. And it's a "failure" that - from what I can tell - was a pretty good business decision at the time. But even if you discard that, even if you assert this was nothing but badness with no upside whatsoever, it would still be a learning experience.

When a rider falls off a horse, they have to make a decision: abandon the idea of horse riding ("riding your own horse rarely makes sense"), or apply that as a lesson to your skill set and re-mount. While there is nothing wrong in deciding that, upon reflection, horse riding was not for you, I think it's harmful to go out and announce to the community that riding your own horse rarely makes sense and should be left to the pros. Because what you're left with then is a world where the only riding is done by dressage performers.

(Sorry, that analogy got a bit out of hand, and admittedly I know nothing about horses, but I hope the point is still discernable)
Yes, and at least there you can pick up on the marketing double-speak and guess that it doesn't work.
HTTPWebLog Aspen Wireless Portal Logs  Ftp://203-206-197-49.perm.iinet.net.au
Because downvote already says that the comment did not add anything of value to that specific discussion in context. Now you might say that what if someone disagrees with a comment and incorrectly downvotes ? In that case, an explanation will not be useful anyway because the person has already downvoted.

The purpose of downvote is to get rid of comments that are of no value and in my experience being on HN for a few years, it works pretty well for majority of the time. Yes, I am sure people downvote incorrectly but this is the internet. You cannot expect everyone to be on their best behavior. But again, most of the downvotes in HN seem appropriate to me at least.
You have felt it is easy to install, debug, and write vim plugins? As a vim user, I am super curious how?
Codr – A Whiteboard for Code
Not everyone is off Python 2.x yet, for a wide variety of reasons.
Can't you say the same things about a proprietary database, or a proprietary template language? What are the kinds of computer science that we can safely deploy without taking extra precautions to document and maintain it?
Very cool project OP.

@uniclaude: the HTML page on S3/CloudFront and MailChimp direction is built into my project called Gulp AWS Splash, which is another LaunchRock open source alternative at https://github.com/niftylettuce/gulp-aws-splash. I did a similar Show HN not long ago for this.

Adding in Heroku 1-Click Deploy and purify-css today!
A 9 second speedup! iMore should be ashamed of themselves!

Edit: Before anyone says it's not their fault, they can't control slow CDNs. Yeah, it is their fault. It's their page and they are responsible for the User Experience.
That unicode ligature would be an interesting surprise if you wanted plain text.
Regarding the removal of that article: it's not "vested interests" flagging that necessarily. Many users (including me) may have either found it offensive or overly political, and flagged it because it consisted of inflammatory political ranting where the political talking points distracted too much from any substance that article might have had.
I would concur with all of that. It's very similar to sublime, to the point that I can't really justify switching. If you care about open source that is a compelling aspect, though.

It pains me to say this as a JS dev, but I think basing it on web tech was a mistake. It makes the app slightly, but noticeably, less responsive. Just recently they posted a big long thing about getting scrolling to be fast. I dunno, I feel like if such things are an issue in 2015 you may have made a mistake.
It is admittedly not a totally methodical study, but the discussion is sort of compelling.

Human nature would suggest as much (we'd certainly hope for reciprocations of actions that demonstrate trust in the everyday at least). But as others have mentioned - there are drawbacks to being transparent, even with the potential benefits from the created virtuous circle.
I can't discuss how the rain interacts with the adults, but I have read scientific research that discusses how stagnant water is required for mosquitos to lay eggs and for the larvae to breathe. If the surface of the water ceases to be stagnant, the eggs cannot be laid and the larvae will suffocate.

I retrieved a link to an article last year that discusses a device that uses solar power to aerate ponds as a mosquito preventative [1].

A reasonable conclusions for the drop in population is therefore that two generations can be severely depopulated by a heavy rainstorm, leaving only the portion living in stagnant water that is sheltered from the rain and run-off to survive and repopulate.

1. http://www.wired.co.uk/news/archive/2014-05/19/mosquito-devi...
> And for what it's worth, Wasabi might have become a noteworthy language outside Fog Creek. There was no way to know at the time.

Nobody could know most things at the time. But we can estimate. What are the odds that small, random companies creating languages as side projects will have success? Well, looking at the languages everybody uses, I'd say: not so good.

> For example, Erlang started out being an internal tool at just one company, designed to solve a specific set of problems.

It was just one company, but it was one very large company working on something that they expected to be in operation for decades. So I think that's a bit different than a small company working on a product.
Do you really want to open log files in a code editor? It's not unreasonable to say that these are two different classes of programs, with different basic requirements.
I agree. Especially when we first had Wasabi, there were a lot of other legacy ASP code bases lying around, and I think we could've both helped ourselves and gotten more community support by going that route. But it's also worth remembering this was before GitHub; this would've meant a SourceForge account, mailing lists, etc.—a reasonable extra use of resources. It wasn't as trivial a decision then.
People wonder why I like HN so much. Maybe it's because a comment like this is buried in a thread and you have to dig for it. Thank you!
It's pretty much as other people talked about, I used OpenCV to try to detect the board, and then isolate each tile, and then used Tesseract to try to figure out the letter. The biggest problem I had was whenever the red score bubble landed on a tile, it would fall on top of the latter and thus lose information so I ended up having to create training data and associating that to get the letter. I was able to get to about 98% accuracy and it was relatively robust until they created a new app that I haven't had time to adjust for.
> Is it in a workable state?

Yes, I've used atom every single day since it came out to write my daily notes in markdown and then see them rendered as markup in the markdown previewer.

However after finding out about the vim bindings I've been using it as my primary text editor for the last month and I really like it.

It's got 95% of the `vim` goodness that I use combined w/ the thriving package scene and being able to extend it w/ JS.

FWIW here is a list of the packages which I'm currently using:

https://gist.github.com/cgcardona/79fa3a6dcd329c60c290

* atom-fuzzy-grep
* atom-jshint
* color-picker
* git-plus
* highlight-selected
* minimap
* minimap-autohide
* minimap-bookmarks
* minimap-find-and-replace
* minimap-git-diff
* minimap-highlight-selected
* minimap-pigments
* minimap-selection
* pigments
* vim-mode
> But I would really appreciate it if anyone else has more thoughts about how to filter out images that do not contain people :-)

Google allows image searches to be filtered by is/isn't a face. I think you could tap into that knowledge, although it isn't immediately clear what the route would be.

Here's a detailed rundown of the more obscure google search paramters: https://stenevang.wordpress.com/2013/02/22/google-search-url...

The relevant one to your interest is "tbs=itp:face".
It was a worthwhile article. It wasn't inflammatory at all, and it was insightful. You don't have to agree with the overall political analysis to feel that this was a worthy and substantial contribution to the discussion of very important issues in tech.

I have some sympathy for the mods in that I don't see all the submissions that get flagged. It could be that without aggressive flagging, which will inevitably lead to some "errors" (this getting flagged that perhaps shouldn't have). It could be that HN would turn into nothing but flame wars about politics and complaints about the tech industry. People complain about what HN has turned into, but the quality of discussion here remains much higher (vastly higher, in many cases) than a lot of other forums. Craigslist, a while back, devolved from a good forum into something essentially unreadable.

Still, I have my doubts as to whether an article similar in treatment, depth, and tone, but from a libertarian point of view, would have been flagged. In this case, I do think it was a mistake to flag and remove this article, though I appreciate that any meaningful defense of a good discussion forum will inevitably involve a few mistakes like this.
How a Blog Landed Me a Job with an Upgraded Title and a $12k/year Salary Increase
127.0.0.1 www.google-analytics.com
I did it to count the tiles, and was going to work on a full-on cheating program but never got around to it. I did find the algorithm online though, it's pretty interesting.
Wasabi: The ??? Parts
Great app dude! Really fun to use - the auto play video is really nice too.
Show HN: E-cards
While this is true, and I love JQuery, there's a significant number of JavaScript programmers who do say that JQuery is bloated and slow and old and you shouldn't use it. http://youmightnotneedjquery.com/ and all that.

Even if it's not actually true (as you've said, it literally is not bloated wrt filesize) people still think it's true.
Collisions are very very rare. In over 10 years of Objective-C development I have maybe seen it once. Also: clang got much better at detecting collisions at compile time (where possible).

That said: Swift extensions are safer because private categories cannot collide.
Oliver Heaviside Wrote Maxwell’s Equations (2013)
What about dependencies? Setuptools assume all is in place. That's why you need pip/virtualenv. So with that you expect your host to have all the stuff.

Virtualenv installs some .so files in its thing, so venv directory is tightly coupled with the python binary it runs. Ie: you need to sort it out on the moment you build venv, and shipping venv directory is not correct.