skysight-inc/HackerNews huggingface dataset:
MVC is terrible for web apps (in the original local GUI domain it's fine for some things), you aren't an idiot for using it because you're probably not actually using it but rather only something loosely inspired by it, and the solution is simply DRY. MVC at its best is simply one manifestation of DRY, but there's no real reason to get too stuck on it when with practice DRY is something you should just always be doing. If MVC falls out of that, great, but if not, so what?

(The original MVC is actually useless for web apps because there is no client-server connection in it, and that profoundly changes everything. There's no point in trying to bash a GUI top-level design into a new client-server world, especially when DRY is just sitting there, waiting for you to use it.)

MVC, MOVE, all the variants just obscure your vision from the underlying and far more important principle.
Whats it got over PowerDNS?
<i>On the other hand, if you make it somewhat vague, lots of people will feel represented by the statement</i>.

This is how horoscopes work. That and 75% positive, 25% critical or cautionary.
You should make an Android version. Then I'd use it.
> where Scala really excels.

Functional programming in general.

An awful lot of finance (that used to run in Excel) is just side-effect free, compute-centric transformations over data. Time series, for example, have a relatively nice algebra that makes it easy to manipulate in terms of maps, scans and folds. And anything that makes it easier to avoid off-by-one errors is a big win, especially if your traders and quants aren't trained software engineers.
Life imitates The Far Side, only 7 years too late!

http://imgur.com/gallery/RgqxZ
the problem with the 4th amendment (really with any of the amendments jefferson wrote) is that it uses vague words like 'unreasonable' and 'probable' that have to be determined/explained in a later trial, which makes it much easier to skirt around the intended meaning of the amendment.
Very spot on explanation of what is circulating in my head for months now. This seems to relate to the Data-Context-Interaction movement and what Bob Martin calls Entity-Boundary-Interactor pattern in his latest talks.
You join!
consuming status updates containing skewed and filtered representations of someone's life.

I much prefer skewed and filtered representations of my friends.

It's much easier to interact with a caricatured, mean-field average of my 900 or so Facebook friends (aka "the audience") than to do it (shudder) one-on-one.
For the curious, read the original papers from R.Trygve : http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html
The geographic distortion is neat.

I don't like the bubble charts though -- when loading a new set of data the bubbles are completely rearranged making a quick glance comparison between two countries difficult.
I'm willing to try it out.

I usually get around the cited issues through dependency injection into the model. That is, instead of placing large amounts of logic in the controller, I let the model hold the logic.

In a naive implementation, this may couple the model to things it shouldn't be coupled to. So, to avoid the model coupling to infrastructure resources (say, storage), I let the controller inject those objects into the model, as needed.

But, I realize that that's an architect-y, OO kind of way to do it that requires some background knowledge which can may obfuscate the code. So, I'm all about making things easier for everyone.

As others have mentioned, it'd be useful to have a more sophisticated example.
The one you are about to start, right? ;)
Can you honestly think of a country the US has dominated against its will since the Philippines?

There are many countries where the US has toppled one government for another, or propped up a leader the populace didn't like.

That's where most of the criticism comes from.
Thanks for your feedback! I'd love to make one (eventually) since I have a Samsung Galaxy Tab 10.1. But right now, I don't have the cycles.

I'm looking into getmoai.com to do cross-platform development.
>Wayland is the way forward

Parenthetically, Google Chrome already has an alpha-quality port to Wayland whereas to my knowledge Mozilla has made no commitment to support Wayland, and no one has started porting Firefox to Wayland.
I'm not sure what you mean. Do you mean "why would a team choose EC2 over App Engine?" I never claimed that you are unable to do anything specific on App Engine.
The meaning of those words is defined not in one trial but in 200 years of case law.
Operations are just a temporary stop on the road to functional programming.
+1 for the MetroOS moniker. MS will eventually learn to stop calling everything Windows. Glad my Xbox is not a Windows Game System (WiGS) or whatever stupid name they would've come up with.
I wouldn't like it to be a religion! I'd just like some precision. Design patterns point to a large region of possible configurations, so to say something is "MVC" isn't saying very much.
Just to make a point, and certainly not capturing all the grammatical problems with this post:

"Your sitting down eating lunch at your desk."

One list ends with periods, the other does not.

"No one knows who you really are besides your previous title’s"

Is grammar now a lost art? I understand the author has a message, but it feels lost and less professional when one doesn't take the opportunity to proofread work.
I've never seen such a spammy startup post on HN.

No need to pitch HN like an infomercial - Just do a SHOW HN: Tripl and you'll see a way better response.
Sorry, but data-bound events are not useless in server context. It might be exactly what we need when fat controllers go out of control. Perhaps you meant they are too much of a complication if taken too far to work across all concurrent requests?

Binding data and behavior together breaks the rule of single responsibility, which I believe is far worse than designing separate roles in sepearate components that work together. Models should model the data structure only, if you need a presentation abstraction anyway for multi-model operations. Why not go the extra mile and use this abstraction level for all operations?

It is a false dichotomy that you go either full-OOP or purely functionaly. Models wrap knowledge as the article suggests, That means that, in addition to getters and setters, they might contain functions that let you check "is this the user's password?". I envision these methods to work on a single attribute, whereas multi-attribute and multi-model business logic belongs to operations.

MVC isn't dead, but it was a local maximum OOP gave us. Event-driven development seems to raise and work well with objects and datasets.
> So you'd understand technical articles by women are plenty, but they're not immediately obvious.

Actually, we have insufficient evidence to know that they are in fact plenty. However, we also have insufficient evidence to say they are rare.

Also, I think you mean moot, not mute. ;)
Arduino - Boon or Bane
Piece Petit Godin - Piece wolnostojące - kominki Kraków
The Art of Organizational Manipulation (I/O 2012)
Interesting little tidbit, Jack Thompson was disbarred permanently by the Florida Supreme Court for making up BS about ebil vidya games and how ebil the people who play/make them are.
Energy systems everywhere have to deal with large energy densities and risk. A transformer explosion or substation short are dramatic and dangerous as well - yet we deploy them throughout the nation (even in your neighborhood).

The adiabatic cycle management is the principle point in the article; their solution reportedly drives efficiency to 70%.
Illinois Supreme Court nixes latest porn trolling scheme
For a succinct description that also explains the origins of some of the discrepancies:

http://c2.com/cgi/wiki?ModelViewController
On a flip side you can get models that do too much. At one point I had a method on a model that, in order to get data into correct format, just went and rendered a [Django] template. It came to that naturally, the line is thin, and I now prefer to err on the side of models doing too little.

> it's the part of the Operation to both decide what to show and also get it in the correct format to show

Did you mean Views, not Operations, here? Or maybe I'm missing something.
Addy Osmani has a nice excercition [1] on the history of MVC in Developing Backbone.js Applications, where he states:

"Developers are sometimes surprised when they learn that the Observer pattern (nowadays commonly implemented as a Publish/Subscribe system) was included as a part of MVC's architecture decades ago. In Smalltalk-80's MVC, the View and Controller both observe the Model: anytime the Model changes, the Views react."

So, not really new actually.

[1]: http://addyosmani.github.com/backbone-fundamentals/#mvc
This is really just a view into technological companies losing sight from the customer view. Even though the new design is probably meant to be a much better product, newer isn't always better. No matter how much more valuable the new design might be, sometimes the simple change in UI is too much of a hurdle for people and that enough, is something to consider before forcing updates. 37signal's Jason Fried wrote a good article on the topic: http://www.inc.com/magazine/201205/jason-fried/you-can-lead-...
Yes, you can do that, but it doesn't actually work the way it should. I don't remember the details any more, but it breaks in nonintuitive ways.
Sadly, he's probably right. Many estimates suggest that the average American is unknowingly committing multiple felonies every day due to vague criminal statutes.
Chris Cox and Facebook Brass Want to Own the Mobile Phone
The fact that your joke wasn't glaringly obvious (and I had seriously contemplated how much it'd cost to hire lobbyists), says much more about the shitty system.
I think Express may be freeform enough to implement an app in this manner.
I fail to distinguish your magical concepts from sufficiently advanced technology.
Freelancer.com's CEO Matt Barrie's mission to create the 'eBay of jobs'
The original MVC architecture was for GUI interfaces in Smalltalk. It was so helpful a design pattern it was borrowed for use in request/response web application, where naturally the use of each part was very different.

If you really want to "get" the original MVC, see the classic book "Smalltalk, Objects, and Design" [1] which explains MVC and other OO architectures as well as the principles behind them, which might guide you to picking an appropriate structure for applications that don't fit the GUI/MVC paradigm.

[1] http://www.amazon.com/Smalltalk-Objects-Design-Chamond-Liu/d...
I get what you are saying. The one good thing about Facebook is that it took a lot of that fluff out of my inbox. But could I not have learnt to manage/gloss over it?

The thing that Facebook does well - is tracking down contacts - to add to your 'address book.' It's not so easy in the world of email. That's because we aren't publishing our address books publicly (probably for good reason.)
My guess is higher but I don't care to research it.

The '500 mile email' and 'The story of Mel the Real Programmer' are trotted out on a regular basis also.

As long as you can glean the story from the headline, you can ignore it. It's a tiny bit annoying but I'm not asking for a refund.
The interesting part of this is the resemblance of hierarchical operations to Erlang supervisor hierarchies, without explicitly pointing that out. In fact, the whole thing feels kind of Actor-like.
They're just buying time, PR-wise, until they come up with a good explanation, which they don't have yet. There will be meta-controversy over blaming the users, after which FB will come out with new and improved interface signalling, documentation, and a non-apology.
If you open with angry social commentary about being a woman in tech, then the perception being complained about is in fact accurate and your audience has no obligation to change it.
Web Design: Fluid vs. Fixed-Fluid/Responsive...?
So, I'm currently trying to decide the best way to approach this here. I am currently designing my website to be responsive to varying screen sizes. However, while I started off using a fluid grid, I didn't like it much. For instance, in too many instances, proportions were thrown off when the width would change but not the height.

I opted for remaining responsive, but just using a fixed grid/layout within each parameter. i.e. cell phone, tablet, ultrabook, desktop, etc. I can always refining it more and more (although could become a pain managing too many screen sizes). However, since I like white space anyway, I just design at the smaller end of each screen size range and then just let white space / gutters grow until hitting the top of the range. When I hit the new breaking point, I change the grid, I'll adjust again.

Is this common practice? Or are just sticking with more fluid grids still recommended?

Any advice?
Congrats, nice work dude. Did you try other frameworks; why did you end up choosing Sparrow vs other routes?
I't not spam, it's the truth.
I do a lot of Javascript and I would do it this way:

[foo,bar,baz,quux].reduce(function(p,c,i){
return p == null ? null : c(i === 1 ? x : p)
})

And you could abstract it in the Array prototype

Array.prototype.linearExe = function(x){
return this.reduce(function(p,c,i){
return p == null ? null : c(i === 1 ? x : p)
})
}

To use it like this

[foo,bar,baz,quux].linearExe(x)
awesome will do that!
We have intentionally made the user interface similar to Gmail’s

Be ready for a flurry of patent lawsuits from google.
The best practices I've seen for MVC apps isn't to put all the logic in the controllers. What you do is to create a "services" or "managers" layer that is called on by the controllers. A userService, for example, might have a function

user = userService.login(name, password)

It's also nice to abstract this service layer with some clean interfaces so that you can replace the underlying implementation, for example to move from MySQL to Memcached.

Using events for everything has appeal but my experience is that the added synchronicity problems creates unneeded complexity and makes reasoning through the logic and debugging hard.
State benefits are payable, but the statutory right to be housed is for families, not single people. There are not huge numbers of homeless people in most cities, London is the worst of course as might be imagined.

I think there is more of a safety net here than in US, but there are holes in it still.
http://unbound.net/ Here is another lesser known but actively developed DNS server.

The cool thing is that you can hook into the resolving chain with C and/or python.
If it was this simple than Facebook would never have caught on in the first place. The answer isn't "rollback" because clearly there is some value here. The answer is finding out how to maximize that value to our lives, not maximize the payout for investors.
Wow. As a designer who recently took the plunge into learning MVC (via Ruby/Rails), this is incredibly easy to understand. It took a bit of thinking to understand MVC but for some reason, separating out the concept of operations/events makes it blatantly obvious.

Now an important question: how would you practically implement this? Would this dicate a separate framework/language altogether or something else (I have a cursory knowledge of development, so play nice)?

Edit Just noticed the footnote at the bottom of the article linking to these: https://github.com/bitlove/objectify and http://collectiveidea.com/blog/archives/2012/06/28/wheres-yo...
I've repeatedly seen HTML5+JS claimed as some kind of panacea for easy, cross-platform application development, but don't really see how it is possible, particularly on mobile devices.

Both the Android and iOS SDKs are pretty specifically optimized for performance on their respective devices, and I don't see the need for those types of optimizations going away anytime soon. As an example, take a UITableView (iOS) or ListView (Android), backed by a SQLite data store that has returned 2000 rows to display.

It's not actually feasible (for performance & memory reasons) to simply render all 2000 rows and allow the user to scroll through them. Instead, both the UITableView & ListView recognize that on a phone, there's only really enough room to display 5-6 rows anyway. So they instantiate those 5-6 rows and populate them with the first few rows from the result set. Then, as the user scrolls down, additional rows can be loaded in, and the previously used rows (that have now been scrolled off-screen) get recycled to represent new rows at the bottom of the table view. Additionally, the data for each row can be loaded on-demand as the user scrolls the row into view, and then be freed once that row has scrolled off screen.

It's a nice and tidy optimization that is absolutely necessary on both platforms (failure to implement the recycling mechanism can basically kill your scrolling performance). That is just one example, there are many more optimizations developers make to keep their apps smooth and responsive on iOS/Android, and a lot of those optimizations involve relatively low-level interaction with the underlying GUI toolkit.

I don't think these types of optimizations are feasible when writing HTML+JS apps, they're simply abstracted too far away from the underlying GUI toolkit. (Some might even say that layer of abstraction is the entire point of using HTML+JS in the first place.) Regardless, I think it severely limits the scope of the types of apps you can create using HTML+JS.

And I haven't even mentioned games, or apps that do any sort of audio/image/video processing. (Even on the web these are often relegated to Flash.)
I've been a big big Acunote enthusiast for a long time. I recommend it to everyone -- they're an incredibly sharp and responsive team.

It's essentially a hacker-friendly task management system. I have trained all my engineers to use it pretty efficiently -- if people are interested in seeing how I use it, I will think about putting up some videos of how efficiently I use it.
That's not to say there isn't value in that. I've been really happy to connect with old acquaintances over just a message or two. I don't really want much more contact than that.
Great post.

It's easy to get downheartened when you've just released a new project and you're only getting 1 or 2 users per day.

What you have to remember though is that almost all successful blogs, sites, applications started off like this.

I bet the likes of Instagram, Twitter, Blogger were a ghost town for ages before taking off.

Though Facebook went viral really quickly, I bet Zuckerbergs heart skipped a beat the first time someone signed up.

Kyle, can you tell us more about that early period when the first handful of visitors started using the site? How did they find you?
As a programmer, I'd prefer to find out about actual bugs, rather than worry about the hypothetical legal consequences of potential name collisions in the entertainment media space.

There is an actual bug here, but it's not in the code. Consider that using the Pandora name will impel you to spend more time thinking about legal issues, not less.
Forgive me for being dense, it's a really hot evening, but basically I can have my own instance of 0xDB with any clips and movies I choose, yes?

What do you mean by "pan.do/ra is a website that runs in your browser"? The movies and clips are stored on the server? Or is it some mix of local and remote media?

BTW I like a lot the way you prepared it, as an Ubuntu package and a prebuilt image -- makes it seem easy to use and tempting to try.
Because anything not from someone in my Facebook friends list is spam?

Jesus, why didn't any of these anti-spam devices, programs, companies, etc think of it! We'll just make a per user white list and be done with it!

Oh wait, that's a horrible idea, and you should feel bad.
I'm beginning to think that the Ancient Greek should have sought better protection for their intellectual property:

http://en.wikipedia.org/wiki/Nike_(mythology)
Startup Equity Compensation Framework 2.0 - Building Compensation Package Series
Defender (1980?) was great, but Stargate improved and built upon pretty much every aspect of it the same way that Galaga was an all-around improvement over Galaxian.
At what point can one consider Facebook to be malware?
How to spot the real salesmen
It looks nice, but I would suggest adding some color. Having just plain black text (with some green) on a white background is kind of boring and doesn't get the hype of your startup across. This landing page doesn't make me "excited" to put in my email.

Try adding a cool background image and/or more color.

Take a look this link for more ideas: http://www.quora.com/What-are-the-best-examples-of-stealth-s...

Hope this helps :-)
The only problem I see with your email sentence is that some clients lack a decent search functionality.

Some improvements and it would IMHO be as easy, if not easier, as opening Facebook, trying to find a contact and fight against the timeline to find the information you are looking for.

I think the party part is a bit of personal choice. If I run a party I want to notify $foo people. And $foo is always a smaller number than my Facebook "friends". I just prefer the ability to select people and only tell them what I want to say without creating tons of groups for everything.
Thanks for the question. The ride has been particularly fun so far and I don't think a short answer will justify the experience. I've started a blog post that I'll put up later this week and cross-post here. If you want to reach out via email, I can drop you a line when it's up. (Or you can subscribe to blog in my profile.)

Cheers!
Yeah, it's difficult enough when you are neighbours! (Sad but true.) That's not to say that we can't try harder.
Would it rock? Nah. It would merely make it less horrible. It lacks fundamental elegance and it lacks advanced capabilities. Even if fixed, it would still only be clinging to the crown of mediocracy.

But that is fine. Not all languages can or should be mind bending or define its own paradigm. So yeah, if all its problems was somehow in all unlikelyness fixed, it would be fine. It would be fine, but it would in no way "rock".
First Firefox Mobile OS Phones Announced, Operators Support Initiative
> Sometimes people ... use "Internet" when they mean "Web." It is in fact extraordinarily common.

It's also wrong.
What is the difference between that and adding a service layer to a MVC?
Yeah, I totally understand. The app looks good and high-quality, but I don't have an iOS device to try it on....sorry.
If this is such a huge deal and users don't like it then there should be a market for machines that are not Windows Logo certified and run Linux. Given that there does not seem to be such a large market maybe those people that want to install linux on their desktop would be willing to pay more for the opportunity to do so.

Sandboxing has become increasingly popular and Microsoft is really the last one to the party. Most users (myself included) are happy with sandboxing. Apple has implemented this with great effect across its ecosystem.

All the actors are private organizations. No one is forcing anyone to buy a computer that enforces any of these restrictions. The FSF should try to understand why if this is such an important issue there does not seem to be a large market for Linux desktops. If there is a private actor can step in and provide the machines. If not, then you can always build your own.

One thing that will be interesting to see is if GPLv3 software slowly withers given that many embedded device makers will be unable to use it. I guess another cause may be Apple's continued rise as a platform of choice for both tablets and desktops/laptops.