skysight-inc/HackerNews huggingface dataset:
This looks like a really good way to stop putting all your messy code into Controllers and start putting it into Operations.

The problem with messy code or where it lives will not go away because you think about it differently, you just have to either hire better people or spend more time and money refactoring.
Life Lessons of Star Wars
so are you suggesting that everyone should learn everything?

or that people shouldn't attempt things without expertise?
There is value in specialization. You denigrate the OP with your condescending "too busy doing whizbang gollygee Important Work" and mischaracterize him as using words like "silly and useless", but the OP never said that. All he said is that he's focused on one part of the work and doesn't know that much about the others.

I've been considering these choices a lot. In my own career, I've made a conscious choice to pursue lots of different things that I found interesting, but I've become a generalist, pretty good at lots of different things but lacking the deep domain knowledge in any one of them that a specialist gains. You seem to be arguing that specialists should not exist, everyone should go for broad rather than deep. I think there's a place for both, and becoming a specialist often requires the discipline to stay focused and not pursue every interest and curiosity that rears it's distracting head.

I think there's value in a programmer knowing the whole stack, from language APIs to hardware implementations, and being able to understand the consequences of every line of code. But time is finite and someone at the beginning of their careers must make choices on where to build their expertise.
Cara Merawat Blackberry Supaya Awet
So you renamed "controllers" to "operations".
sounds: coreboot.org is a worthwhile cause but unfortunately, for better or worse, whether we like it or not, most hardware vendors have decided to adopt UEFI.
I would definitely agree with all the advantages of having less (less people to manage, less communication, less lines of code) provided that you can find the ideal situation.

But alas, finding the ideal situation is like winning the NBA Championship trophy: you need all the stars to line up including "Lucky" star.
The OxJS library is really impressive, it's the JavaScript library used to build pan.do/ra's frontend. [1]

[1] https://oxjs.org/
This does not belong on Hacker News.
This quotation is particularly scary:

"It's not the first time we've been targeted as sacrificial victims," Tara wrote. "We were targeted by the entire Buddhist community when I told them to go fuck themselves, for being nihilists, elitists, and authoritarians."
This post seems like somebody looking for an excuse to attack "the cloud". AWS's issues last week were caused by a whole datacenter going down, due to an electrical storm. No matter what your configuration is, whether you use cloud hosting or traditional hosting, losing a datacenter is going to throw a wrench in things. Even if your failover works perfectly, the increased load on whatever you fail to might bring things down.

The procedure for high availability is the same for cloud hosts as traditional hosts: multiple datacenters and multiple providers. If somebody made the decision to only host only with amazon and only in US-East, the traditional hosting alternative to that is not a high-availability network spanning 5 datacenters. You're comparing apples to oranges. You can host with AWS across multiple regions, just like you can host with any other provider in multiple datacenters.
The 40 hour experiment...

http://mojolabs.me/2012/03/28/the-40-hour-experiment/

For each of these ideas, create a marketing campaign to see if you can sell the idea. Do this before you even start coding. If you can't sell the idea, then move on to the next one. Repeat until you have a winner, then start coding.
"virtually no answer to that question that makes you sound like a better candidate "

My first reaction to this was to think that someone could somehow turn this into a positive if they could solve this dilemma as in "No! I was fired for (insert reason) but I overcame...and now I"m ..."

But then I realized that similar to breaking up in a relationship if you reveal the reason to your new partner and say that you learned from it, and aren't the same person, all that will do is alert the other party to be especially vigilant to the particular behavior, and in fact then you are automatically disadvantaged. Everything you do is magnified greatly. "Oh boy. Here we go again just like their old job"

About the only thing I can think of (and in fact recommend this when trying to get rid of a sales person) is to produce a reason that can't happen again. Such as "I was fired because I had to take care of my sick mother. But she died and I now live alone and don't have any other relatives". Etc.
WebSocket based chat system with tadpoles
Monads are important in providing well-defined semantics for code. They are a way of taking imperative code and making it functional; the semantics of functional computation are much easier to define than those of imperative code. If you were interested in proving your program correct with a deductive proof (rather than, say, statistically acceptable with tests) , monads would be very important to you.

They weren't designed to provide useful design patterns. That's why articles attempting to demonstrate them as useful design patterns often seem artificial. But I think that as the art of software engineering progresses, the problems they solve will become more important.
Inman's lawyer is quoting Justice Harlan in Cohen v. California:

http://en.wikipedia.org/wiki/Cohen_v._California
Good to know that I am not the only one.
Our approach was: If the best name we can think of is a nine-letter URL, we got it.
Leaked Windows Phone Keyboard: Curved For Your Typing Pleasure
I think the problem with most MVC frameworks is not the framework themselves, but that that the MVC design pattern should only be considered while refactoring existing working code. Starting right off the bat with a giant MVC boilerplate isn't necessary and may even be counter-productive.

I write my code initially as one monolithic controller, and then refactor my code into an MVC pattern. It doesn't take that long to move functions from one object an other, and now you're working with an already-functioning piece of code rather than guessing how things might work later on.
New technologies and concepts enterprise IT will have to adopt
Why just not pick one idea and make an MVP during your free time? Get some experience in making an MVP, marketing it, etc. Even if it does not amount to anything, you will have learned something about the proces which you can use for your next MVP.
I used to watch the History Channel all the time. I'd keep it on throughout the day while I worked, always enjoying war documentaries or historical pieces. Now it's all reality TV and "Who would win in a fight: Navy SEAL vs. Samurai" nonsense. I guess the "watching television to be informed" target audience is dwindling faster than I thought.
Kinda, but without the pain of having to rewrite your pages, and with a much higher efficiency. Actually have a blog post about this queued up to go out tomorrow.
Not intentionally, but we get the same effect unintentionally because a lot of the ideas we suggest are bad and we later realize it.
I think a quick fix that would resolve the "emails from work" scenario would be to include messages from people in your network (assuming your workplace has a FB network).

Though if you're in a network for, say, the city you live in (imo silly to do this) then my 'fix' would become rather annoying unless the user was able to designate what networks go to Inbox and which go to Other. But then that just seems a little messy and overly complicated :)
The New Type of Startup Entrepreneur
Please don't undervalue yourself like that. This kind of experience and insight is worth much more than "a buck or two".
So this could be the part where I'm not that great a programmer, but the I've had trouble creating apps from scratch with MVC, not just refactoring existing code.
OxJS... haven't heard of that one before. Anyone used it for anything else?
> 1. a bunch of netsec/security geeks have looked at it (calling @tptacek, @cpercival)

Agreed - but it seems that this is an authoritative-only name server, which means it shouldn't be susceptible to cache poisoning, which is where the most awful DNS server security vulnerabilities have been.
If you want something that looks like UTC minus the leap second trouble, then there is TAI. Right now TAI and UTC differ by about 30 seconds.
We've been using Acunote for almost three years. How is this a "launch"?
At some level, I can agree with this sentiment. You don't know where the servers are, you can't see the cables, and a lot of things are just plainly out of your control.

TL;DR: AWS can realistically provide high-enough availability for most; but I think the article makes good points for those looking to get deep into the nines.

However, I think the real issue is that while you can make fairly HA systems on AWS, it quickly gets expensive. A huge pull for AWS (IMO) is how cheap it is for an org to spin up four or five servers of various specs, and keep them running or shut them down. In order to achieve some aspect of HA through AWS, you need to mirror your entire setup in three places (not to mention some archives in S3, and ideally some archives on non-AWS). The cost savings start to quickly degrade as you configure your AWS-hosted system for real HA (or real close to HA).

IMO, many of the organizations that use AWS are in a position where they probably wouldn't have true HA configured if they were using VPS or physical hardware, so it's not so much of a concern. For the larger organizations who have more funds and more dedicated Ops employees, we've only seen a couple of issues that should have affected availability, and usually availability drops because they cut corners. Granted - at least two of the recent outages showed errors on the AWS-side, and decisions that Ops made for AWS regions/AZs should have been fine, but weren't. That in mind, any HA sysadmins out there would have shuttered to think of relying on two different mechanisms that were potentially in the same data center (that is, backup servers or load balanced servers in the same region).
7 Startup Lessons that you can START USING TODAY
Appreciate that, Alex. I think you're probably right.
Wedding Bells for a Facebook Co-Founder
Facebook needs to dogfood their own stuff. I remember reading about how they use IRC internally. Very cool, but it makes you wonder why they don't use facebook messages for everything.
Evidence of Higgs Boson particle found
"Are there any MOVE frameworks yet? "

I don't think so, but I feel that Grails may be the closest thing currently. It has a concept of a Service construct that feels like an Operation. Then again I could be completely wrong.
Let's say I have several functions I want to compose, feeding the result of one as the argument to the next. But each of these functions has some failure condition, which, if it occurs, causes the function to be unable to return a normal result. In an imperative language, I might represent that failure by returning a null reference, and I'd write something like this:

fooResult = foo(x);
if (fooResult == null) {
return null;
} else {
barResult = bar(fooResult);
if (barResult == null) {
return null;
} else {
bazResult = baz(barResult);
if (bazResult == null) {
return null;
} else {
quuxResult = quux(bazResult);
if (quuxResult == null) {
return null;
} else {
return quuxResult;
}
}
}
}

I think that's a pretty common pattern: call a function and check whether it succeeded. If it did succeed, then pass its result to the next function and repeat. If it failed, then propagate the failure outwards, skipping the rest of the computation.

But that's pretty tedious and repetitive code to write. The signal to noise ratio is incredibly low. Not only that, but if I get lazy or forgetful and don't check for null in any one of those cases, my code could blow up at runtime. It would be nice if we could abstract out the pattern of error checking and propagation of errors so we didn't have to type so much boilerplate around the real meat of the computation, which is just the four function calls. Haskell's Maybe type serves precisely this purpose. The exact same code as above, in Haskell using the Maybe monad, would be:

return x >>= foo >>= bar >>= baz >>= quux

That's it! Error propagation will happen automatically, and if no errors occur along the way, we'll get the same result at the end.

Now, you might think that there must be a lot going on behind the scenes to make that one-liner actually do what we want it to do. But there isn't really. Maybe comes for free in the standard libraries, and even if it didn't, we could trivially define it ourselves like this:

data Maybe a = Nothing | Just a
instance Monad Maybe where return = Just
Nothing >>= _ = Nothing
Just x >>= f = f x

That's the entire definition of the Maybe data type and its complete error propagation behavior. There's nothing more to it than that. And not only will it work in the specific example I gave, but in any situation where I have a chain of functions to call that might fail in some way. After writing that once (or not at all, since it's in the libraries), I can now apply that pattern anywhere I need it, in any program, to concisely express what took around 20 lines of onerous and error-prone repetition without the benefit of the monad.

That's how monads eliminate boilerplate, and one of the reasons why you might benefit from understanding them even if you're not a Haskell user.
I haven't read Halloway's, but I found the O'reilly book much more helpful for learning Clojure than The Joy of Clojure. They're both great, but I'd definitely read the O'Reilly book before Joy.
I'm still a little caught up in the "identity theft" thing. Names and appearances are not the limits of one's identity. If this were the case, halloween would be the criminal's holiday. The trio, perhaps inadvertently, point out a fundamental flaw with both twitter and how the user approaches it. If someone cannot differentiate themselves from a bot spitting out ("dreaming of %x and %y", x, y) then is there really an identity to steal? This man is fighting for his unique right to present 140 characters, a string of characters (his name) next to 5329 pixels captured at one specific moment in his life, all grouped together? By what virtue does he own those rights?
Shenzen, IPO capital of the world
Startup Clinic: Pinterest clones and the difficulty of getting timing right
I agree with you, but there's another issue here: some of your friends may not actually respond to email messages. Personally, I'm a fan of email and letter writing (and not a fan of the phone), but I've fallen out of touch with several friends because if you don't contact them via Facebook or Twitter (I do neither), you won't hear back from them.
Double Stealth
Facebook has monetized the hardship of letting friendships go. People change, shit happens, and you have to move on. Facebook, however, makes us believe we can keep these relationships going forever. I'm sure there are many successful reconnection stories, but I bet there are magnitudes more 'talked for a few days after not seeing each other for a few years, and that was that' stories.
The advantage of operations over controllers is the composability.

Whereas controllers have a pretty undefined lifetime, operations are finished when they're done. This means that operations can use each other to get work done, a pattern you don't see with controllers.
Seems like a reasonable way to structure an application. It would be great to see a concrete example or two. The login example that is sketched out gets you partway there.
You'll soon find out that the answer is "yes". As unfortunate as it may be if you're serious about this then I'd definitely 1) consider a different name or 2) get written confirmation that you're free to use it.

Actually, IANAL. Don't take my advice. Definitely check with a lawyer. The headaches today will be worth avoiding MUCH larger ones down the road.
Is it just me or is there anyone else too who has seen the spelling mistake in the title? "Peson"???
The article doesn't really mention this, but it's all very linux specific. On OpenBSD, for instance, it's mostly the same except entirely different.
I prefer the term "Services" over "Operations".

Services is where the logic of your application should live, and services should be HTTP (or any protocol) agnostic. They should only speak in models and native types, and should abstract all of your logic away from your controllers and models.

This leaves the controllers as a thin http handling layer that parses inputs and then lets the service handle the work.

The response from the service is then transformed appropriately (JSON, HTML, etc) and sent back to the caller.

Just my $0.02
Wow. I understand that Cisco wants to sell a service to consumers instead of commoditized hardware. But who in their right mind wants to buy that kind of service?
I think it's just something about Law as a discipline that it attracts people who can be very literal-minded and who at least in their own mind are moral crusaders.

Since this whole case is, um, horribly embarrassing to my profession, I'll just respond here and move on. The huge majority of lawyers I know are much more like the EFF lawyers here than like Carreon. They're smart, creative, resilient, flexible, and more often than not they're honest and respectful. Some of them do it for moral reasons and some are just doing a job; some of them make the world a lot better in my opinion and some of them end up screwing it up. But there's not one lawyer I know who I can imagine acting anything like Carreon, let alone his wife. I mean, even the few jerks would at least make more effective choices.

In short: don't think of this guy as a typical lawyer. He's not. Think of him as a typical guy-screwing-up-his-career-with-a-weird,-paranoid-flameout,-in-an-unusually-public-way-thanks-to-the-internet. It's just too bad he happens to have a career that will let him waste a lot of other people's time in the process ...
Some people would have open-sourced the code and then there would be no need to sneak into Apple headquarters and lurk in the bathrooms waiting for facilities people to leave. But I guess in 1994 it might not be as natural as it is now. I wish more companies would open-source their "not quite worked out" projects instead of just burying them.
I would like to know as well. It's hard to find anything going through the usual routes (ventureloop, etc)
>> "you don't need an application to managed personal relationships"

You do when you're keeping in touch with friends you've made throughout your life and not just your current ones. That's the thing Facebook makes easy.

Also email and writing letters don't really work. If I sent a letter to a friend I seriously doubt they would bother responding, and most people I know personally don't use email. They use Facebook. That's the big problem - Facebook has replaced email for a lot of people making it one of the only ways (besides visiting/calling) to contact them.
Irony. Available in India but not in US/Canada.

Confirmed on twitter https://twitter.com/videolan/statuses/219753251598385154
And what if getting recognized as the brand involved in a trademark conflict about the name of a Greek mythological figure is a risk we're totally willing to take?

That's some bravado. To make the case more poignant, you should also open an online shoe store at http://ni.ke
Ah. Someone's posted Double Stealth. The follow up to my parody of the 'day in a life of a startup CEO' from the other day: http://news.ycombinator.com/item?id=4166183
You're assuming that there is an actual net benefit to having the second form of protection. I don't think there is. It may seem like a short-term benefit if some regulator actually catches, say, Facebook in the act of misusing people's data; but the long-term effect is that people believe that they can actually trust a company with their data when they're not a paying customer (or even, beyond a certain point, when the are a paying customer). And since the long-term outcome of any regulatory scheme is regulatory capture, sooner or later FB will just be buying the regulations they want, and the so-called protection won't be there any more. Again, I refer you to the economy since 2008.
Anyfi.net turns any Wi-Fi network into a small cell
This is certainly interesting. I like the event based model. Here are my thoughts:

If your controllers are getting fat and spaghetti like, I wouldn't blame MVC. There are many patterns one can use that are compatible with MVC without going to a completely different architecture. For instance, if you need to encapsulate multi-model interaction you can create a presenter abstraction that the controller simply calls into. Just because there is a bunch of code that ends up in the controller because "you don't know where to put it" doesn't mean there isn't a better place to put it without re-designing the entire application.

Another thing is while I love the data-binding event deal, this really only works for client-side frameworks like Backbone. Server-side kinda goes at the window, but I suppose you could add a framework that piped event signals in the response from changes that occurred in the ORM layer (although this further couples components).

I'm not convinced that separating the data from the methods that operate is a great idea unless you want to go purely functional. Doing this clearly breaks encapsulation, throws any notion of OOP out the window, and still binds the "operations" too closely to the data. Generally speaking, the data is useless without the operations and vice versa.

So the real difference between MOVE and MVC, at least according to this article, is that models are no longer useful on their own, the controllers aka "operations" know everything about how to manipulate models (it shouldn't), and models generate events which are only consumed by views, which makes no sense if you wanted to use the model on its own (but you can't without your operations).

Generally speaking, the model should MODEL something. That includes data and behavior. Without both, you have a database, and a set of operations kinda like a C library but only because OOP hadn't been invented yet.

In my mind this further couples all of the components because it actually increases the reliance on each other for them to be useful.

MVC isn't dead. There is a good chance you are using it wrong. I highly suggest Rails Antipatterns. While it is specific to Rails, it works for MVC in general. http://www.amazon.com/Rails-AntiPatterns-Refactoring-Addison...

edit: spelling
FWIW, this is a very old story (close to two years old)
That's strange. When I click a file, then click on the repo name, it just blanks the whole section out.
"Don't make the mistake of thinking you're Facebook's customer, you're not – you're the product," Schneier said. "Its customers are the advertisers."

<http://www.information-age.com/channels/security-and-continu...;
Most users didn't want another email account period. They certainly didn't want Facebook to make that decision for them.

It doesn't sound like "Other" was meant to be a spam folder. If that's the case why didn't they just call it "Spam" and install a spam filter to send mail there?