skysight-inc/HackerNews huggingface dataset:
well the key word is "meaningful". and i think it can be stated in a more nuanced form:

wankery: architectural shenanigans which suffer significant diminishing returns on investment
I don't think I agree with the fact that every time you isolate a piece of logic you add a layer. But I don't think I have a solid argument for that yet :)

You do make a good point though that in having many small objects is easy to mess with external dependencies. But in my case, the testing always suggested if I had done something like that, and I improved. If an object becomes hard to test in isolation, then something has been done wrong.
The "pilot error" is in not testing the solution before trusting it and in making an assumption that the data would be safe in an untested external system.

Let me put it into a financial context. I did a project that added up to some $800K in cost. Two developers over about a year. Do you think that for even a microsecond I would trust Dropbox as a backup mechanism without extensive qualification and testing? And, would I have that as my sole approach to backup?

Nope.

And this isn't me coming down on Dropbox or suggesting that they are unreliable. I use Dropbox and I am very happy with the service. However, based on experience gotten the hard way, I do not use it for anything that is mission critical. The important stuff is backed-up locally, sometimes with redundant backups.

I don't have any sympathy for an engineer who uses a service and relies on it without the proper testing and qualification phase. Behaving that way is most-definitely, as I said, to be kind, "pilot error".

It is completely unfair to blame Dropbox for anything. This is like the idea of cutting-and-pasting code from the Internet and trusting it with a mission-critical aspect of your application without dissecting the code, testing it and fully qualifying it for what it is you need it to do.

There are tons of examples of this behavior, perhaps the most common one in the web development community is email validity verification. How many careless developers copy a regex like this to validate their email and don't think twice about it:

^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$

These things are all over the web. And most of them suck. Even some of the most impressive ones will lead you astray.

How many engineers (and, as a result, websites) fail to test and research and end-up with questionable solutions?

Would you blame the regex writer for this or the engineer who chose to use it without doing any testing at all?

It doesn't matter what the regex author claims or how authoritative the website featuring the regex might be, you have to test it before deploying it! If you don't test, deploy and then loose customers because it is a bad regex it is YOUR fault, not the author's. Blaming them is nonsensical.

In case you are curious, here's "the" solution:
http://isemail.info/about

Not only is it well documented, the author offers test vectors and all of the relevant code and references so that you can take the time to qualify the solution.

So, yes, to be redundant, if an engineer does not do his job I am perfectly happy calling it "pilot error" and even going as far as calling it "incompetence".
I have three active web apps written using Noir and I have been thinking of converting them as recommended to plain old compojure (mainly just changing how routes are defined).

Luminous looks useful for people just starting out.

Off topic, but I am looking into writing my own little framework for 'one page apps' for Clojure. This is a common enough use case that I would like a fast start that is more scaled down than ClojureScriptOne, etc.
I'd much rather see three distinct languages, with a shared base syntax and style (ie, common formatting of comments, common scope delimiters, common operand behavior - something like C / Java / Javascript).

That way, you could have your low level language use pointers, nullables, inline assembly, goto and other "dangerous" things that are the most efficient ways to do stuff. You wouldn't want to have that language crippled like modern C++ though, you would still want modules, a well planned object oriented syntax, a better solution to name mangling, and better readability.

You could have an interpreted Java/C# esque applications language that would mostly be similar to modern Java/C#, maybe with auto, a better namespaces implementation (in C#, a class defined in two places with the same namespace and signature have situational behavior that gets really messy, for example). You would use this language for the application layer.

Scripting could just be an autoboxed dynamic language like Python. Maybe have a whitespace significant and insignificant dialect. I'd like to see dialects of such a language, where the context it runs from dictates available modules. Since it would be permissions based, it could function as a shell, web, and glue language depending on where you use it.

I do agree on this sentiment though. The wide base of languages in modern computing makes the whole thing a lot messier than it needs to be, and the lack of any full stack that really ties together nicely and is well thought out without the smudges would be really nice.
I think what the OP is talking about is just a ruby reimagination of the Operation pattern. Most sufficiently complicated apps that implement undo / redo use "Single Responsibility Objects" to encapsulate individual user operations. Each one has a "do" method and an "undo" method, and little else. In a web service, you don't have to worry about undo server-side, so using this pattern is more an option than a necessity!
Dave Cope's work using AI for composition has always been interesting, but this article is 9 years old.
Any thoughts on the right way to approach it?

No, that's a tough one, especially with a back up the size you're doing.

Everytime you do a restore that's just confirmation that a particular backup was/was not sound.

Wouldn't it be neat if the back up program had functionality that allowed you to restore a random sample of your files ( and maybe then compare these to the originals ) and give you a likelihood that your entire backup is sound?
A sort of sampling quality control process.
For nodeheads who also do web development, this is a great tool. The syntax is incredibly familiar, and tests are executed quickly.

Selenium is a better tool to test cross-browser compatibility, but if you're just testing your program logic PhantomJS/CapserJS can get you there (IMO) a lot quicker & easier. JS devs can get moving quite quickly.
I worked on the PLATO system beginning in high school as a 15-year old through college. (The building where PLATO was located was diagonal south-west of my high school). David Woolley who is created Notes mentioned in the article was an undergraduate when he wrote Notes.

PLATO not only had social networking but was the genesis for other technologies. The orange screen in the article was invented at PLATO and was the genesis for the color plasma TV screen. In fact, Larry Webber, the or a key inventor of the color plasma TV screen was a post-doc in the lab. Ray Ozzie who took over from Bill Gates as Chief Software Architect at Microsoft was also there. The PLATO terminals had touch screens.
For software development, when there were compilation errors, you could press a single key and you were given an explanation of the error.

Also, the PLATO system has been resurrected. You can run a terminal emulator from your computer and log into the PLATO system and experience and use it much as it was used 40 years ago using a terminal emulator on this website:

http://cyber1.org/

Here is a list of the notes starting from 1972. An image was made from the line printer at the time:
http://archives.library.illinois.edu/e-records/index.php?dir...

Use of the notes program mentioned in the article starts in 1974.

As undergraduates some of us would get EE degrees while working our way through college programming computers. We were in this very fertile environment of both software and hardware and we got an enormous amount of autonomy.

PLATO leader Don Bitzer had enormous trust in the abilities of even high school students to make contributions.
http://www.wired.com/culture/lifestyle/news/1997/03/2614
Come up with a battle plan and share it with HN if it works, please.
Ahh yes padding isn't the first thing that comes to mind when first encountering the acronym JSONP.
maybe so, but am i wrong? it would be cool if someone with better background on either subject would provide some harder evidence..
Quantum Processing Breakthrough?
Mostly OT:

I used this fact to consider a plausible simulation hypothesis. I had assumed you would need a universe larger than ours to simulate ours. However, assuming that since all the other places are far away, and we have found no other intelligent life, then it may be possible that we live in a simulated world in a Universe that is the same size or smaller than ours, since they would only need enough space to simulate the complexities of Earth at a low level, and the rest of the entire Universe could either be simulated at a very high level, or simply filled in.
Would that there were more McAfees.
What to Do on Christmas When You Don't Celebrate It
For scraping, how does this compare to pjscrape? (http://nrabinowitz.github.com/pjscrape/)
You'd think Dropbox on each computer would check the last time it had synced, using the time reported from a Dropbox server.

I pray they wouldn't ever rely on users' own system clocks.
With my rudimentary knowledge of physics, I would assume that helicopter blades and a rotor, although designed to hold the weight of the aircraft and its occupants, are not designed to slice through water. Given the level of resistance water provides, the speed with which the blades slice through the atmosphere, and the fact that a falling human hitting water at terminal velocity ends badly for the human, it's not really possible for a helicopter to push water the way a water propeller is designed to do.
E-Book Price War Has Yet to Arrive
To me, it all his arguments about "truth" boil down to "I'm into AI and don't bother me with Sociology", which is a terrible shame once he actually tries going into sociology. Since, you know, his own advice of following who has done the research is contradicted here. All he does is dismissing every argument he does not like as "discussing politics". Which is fine if you are an AI researcher, but very very poor advice to the other 99.999% of the world's population.
Math is just another API. Isn't it?
I find it easy to have empathy for Linus. He's human, just like any of us, but unlike any of us, he's responsible for the development and organization of one of the core pieces of software that drives a huge amount of stuff in the world.

He's allowed to have a cranky day sometimes, especially when somebody screws up in a way that he has been very specific about in the past.
> Our phones are becoming our remote controls for life.

I feel really freaking old for a 21 year old. I got an Iphone 3gs back in 2009 before going into college. I should have been the target market for most of the tech revolution, right? I only used the thing to watch youtube, read pdfs, browse websites (never write anything), and take really ugly photos and video. I rarely made calls with it and canceled text messages entirely in 3 months. The battery died this summer, and I just got a tracfone just so I can call my grandparents because almost all my vocal communication is done via skype, jabber, or mumble. Maybe most importantly? I not only never paid for an app, I downloaded a total of like 5 in 3 years.

I have a Transformer tablet though, which I still wouldn't call the center of my tech environment, I just use it to read articles, books, and watch video. I don't even do the picture taking with it because its a giant book and it is so obtuse to photograph with it. The high DPI screen makes reading wonderful on it though, which is the main reason I have it. I did get the Transformer + keyboard dock so I had the ability to write when needed.

I don't think I'll ever get a 4 - 6" smartphone again. Anywhere I go I'll just throw my tablet in a backpack and bring it with me if need be, or just carry it. You won't shrink the screen any more and I just prefer the 10" form factor.

I still carry about my dumb phone just because we still live in the stone ages of ubiqutious internet. I don't want to pay $50+ a month for data just to have internet on the go. I already pay way too much to run a DSL signal to my home router.

I dunno, I just feel like the smartphone market is saturated. Modern computers have a very finite limit of influence over the world since they can only impact it through vibrating air, itself, or through emitting electromagnetic radiation in various forms. And I already have all the audiovisual stimulation that I want already, so I won't be adding any more. An RSS feed of all my choice webnews and the front page of reddit and HN for laughs is all the digital media consumption I really need anymore.
People don't know how to actually make a python package. It's not hard.
I follow this market pretty closely.

My experience is that Codecademy is focused more on the marketing than on the product itself. When I last looked, it was only really basic stuff. But they've gotten a TON of media coverage, somehow! My hope is that they use their size to improve the educational offerings.

In my personal experience as a learner, Code School (codeschool.com) is strictly superior -- clearer instruction, great videos and slides, and interactive repl-like coding experience and much more advanced material. Only some of it is free though.

Khan Academy also has a top-notch format, has a lot of content and it's strictly non-commercial... but the programming stuff kind of spread out all over the place.

For the most rigorous teaching I know of that you can get for free, go to Coursera or edX. They have videos as good as Khan Academy or Code School, and they actually have homework assignments that get evaluated. You have to wait for the courses to open, but that leads to some good things too, like having lots of peers going through it with you.
I like it, the 4-Hour Hacker. Ebook would be good. Do you think enough articles are evergreen to stay relevant?
I've never used windows 8, but everything I hear about it makes me not want to. Is it true it covers the screen in tiles? My approach to windows 7 and osx is to have constantly changing screen backgrounds and as few icons as possible. Why would I want to cover that up?

Put another way, why would I want to go from this:

http://forums.unixhub.net/boards/b/src/1348934524725.jpg

To this:

http://www.superutils.com/wp-content/uploads/2011/10/3-win-e...
I find it a little contradictory to call an application open-source and then its developer spend huge resources beautifying an-already-awesome-software for a proprietary operating system.
Show HN: Using Processing to generate last minute Christmas presents
Window Screens Toronto
Looking for Window Contractor in Toronto? Chris Screening and Glass Providing Quality Thermal Glass, Window Installation
and Screen Door Repair Services in Toronto Ontario and the Surrounding areas since 1982.
Vision Zero Initiative - Traffic Safety by Sweden
Lost backstage at the O2... LonDumb Part III
* Teams admins want better control of data within a Team, and users want easy access to their personal stuff, but it’s not possible for us to differentiate between Team data and personal stuff in the same account.*

Of course it's possible. You just don't want to put the work in it make it happen.
I would rather pay more for the hardware, and get cheaper content, than get cheaper hardware, but then expensive content.
If you fired every programmer that ever introduced a regression into bleeding edge pre-release code, you would not have very many programmers left. I don't think that is a realistic mode of operation.
Personally, anecdotally, I would find it exhausting to try to catalog all the ways in which child-rearing has been disincentivised in my own life.

I find this all another instance of the outsized hypocrisy in the U.S. Bemoaning something, while simultaneously taking seemingly every action to reinforce it.

(There are a lot of secondary effects, that I won't go into here, that seem to trigger... "outrage" in some of the very people contributing most strongly to the primary condition. Deceit, or stupidity. Seems to be some of each.)
It's still wrong, but so is the assertion that everyone is breaking 3 federal laws a day, and the implicit assertion behind that the federal government is therefore a Bad Thing.
In noticing this sort of "Ask HNs" makes it easily to the front page while these other sorts of "Ask HNs" [http://news.ycombinator.com/item?id=4961812] don't get a single comment, I wonder whether HN might effectively be of some help to youngster industrial disenchanted folks.
In a serious and genuinely totally non-trolling way.
The School Girl, the Billboard, and Virgin (2007)
QUT / Emma Carroll

Tl;dr - Virgin mobile used CC licensed Flickr photos for a major advertising campaign in Australia resulting in multiple law suits.
Given the problems Tarsnap had with CTR mode

FWIW, the Tarsnap bug wasn't a cryptographic mistake, it was a refactoring mistake -- I knew what the code should be doing, and the code was doing exactly what the code should be doing, right up to the point when I decided to tidy it up.

The lesson to be learned from that isn't "crypto is hard" or "CTR is dangerous", but rather "pay attention when you rewrite existing code".
How did you even get to talking about engineers and testing/qualification and $800K projects?

Dropbox is a consumer service, also useful for businesses. Nobody's trusting it with the nuclear launch codes. But no matter what, it should never, ever delete your files, unless you do it yourself. Period. And if it's ever unsure, it should ask you.

It's meant to be used with the primary copies of your files, not relegated to a special drive. If it deletes your files wrongly, the fault is clearly with Dropbox. It's marketed as an easy-to-use product you just install and use.
Indeed! I couldn't agree more.

I liken a diverse company to what we see in biology. Diverse colonies of organisms tend to be far more resilient to hardship than homogeneous groups and lead to far greater overall success.
You were the one who defined the "stereotypical unemployed Gen-Yner", as "a liberal arts graduate, and for good reason. The engineers are fine". This just isn't the case, it isn't by a long shot. Anyone who makes statements risks having them checked against reality.
On the contrary, it has an excellent historical record. That's how we wound up with accurate clocks (for use at sea a couple of centuries ago).
Wow, I just found something really insightful. It was in the link that the parent article offered.

On Quora, the second highest response is excellent. It's from Michael O Church, and here's the heart of it:

"Resiliency comes from an ability to realistically analyze setbacks, which often have complex causes. People who aren't resilient have a variety of unhealthy tendencies, listed from the most unhealthy to the least:

* Internalize the rejection. ("It happened because I'm a loser.") This leads to depression and implosion.

* Exaggerate the damage or long-lasting nature (perceived autocorrelation) of the rejection. ("Now that I got fired, I'll never get another job.") This leads to bitterness and "cold" anger, which is more dangerous than the "hot" kind because it's long-lasting and tends toward generalization.

* Get angry about it. ("It happened because he is an asshole.") This leads to "hot" anger and, often, stupid behaviors (revenge).

* Prematurely generalize about the environment. ("It happened because <industry X> is full of sharks.") This doesn't usually impair general psychological health, but it creates an inaccurate model of the world and leads to sub-optimal choices and lost opportunities in the future."

I'm going to have to find some way to get this in front of my face every day for a few months until I internalize it. I have found myself making each of those mistakes at times, and when presented in this manner, it is crystal clear that they are nothing more than reasoning errors.
I'm considering Google Drive for company filesharing. I've always found shared folders on Dropbox are pretty awkward. Hopefully GD will be a bit easier, but only time will tell. The one thing I can be sure of is it won't need to interfere with peoples personal Dropbox accounts.
FWIW, xmonad at 3480/1916 virt / res...

But I took care to make it lean.
It's even better... Windows Explorer has a saner user interface, for example.

(Say what you want about Ribbon in Office, it's worked well for the built-in Windows apps)
The OP never said their colleague was a developer. And Dropbox isn't specifically marketed towards developers. When you develop software aimed at the general public, which Dropbox does, you do have to worry about most people. And regardless of how irresponsible the user was or how knowledgable they were, it's still a screw-up on Dropbox's part. "You shouldn't have relied on this service" != "this service isn't doing anything wrong when it breaks." You should lock your doors at night, but the robber who just saunters in to steal your stuff is still a badguy.

Also, since this is HN, let's talk about how we build software, as in, put yourself in the position of the Dropbox developer and instead of just the end user. Most of us, I imagine, build software used by non-developers. I hope your attitude towards these things isn't "fuck it, if they were a competent developer like me, they'd have known better", and instead, "damn, I really need to go bulletproof my software so it doesn't delete people's data like that." In that context, there's plenty to criticize and learn from in Dropbox's mistakes here.

Edit: grammar
If you haven't already, trade VLC in for MPlayerX on OS X.
Oh, I don't think isolating logic necessarily adds a layer, unless you go overboard with isolating it. I think we're probably caught up on the subtle differences between encapsulation and abstraction.

There seems to be a point where "I can't figure out what's happening here without an IDE" starts to happen, which is a) relatively subjective and b) sometimes a necessary side-effect. I only care when it's hard to test something in isolation when it's actually used in isolation. A private method, for example, exists only to be used by another component; it often makes little sense to test independently, and when it does it's easy to wrap in a public call that asserts that it's being run by a unit test.

But I think a lot of this is theoretical code purity vs prioritizing business goals. All else being equal I'd love a perfectly-factored codebase, but at the end of the day I have to target high-friction, high-confusion areas of the codebase to refactor because those are the ones that get in the way of building stuff for our customers, or cause the most production bugs.
WebGL around the net, 23 December 2012