skysight-inc/HackerNews huggingface dataset:
I suspect this is because most people do not actually understand what MVC is and how it applies to server-client relationships; in fact, the wikipedia article on MVC is slightly off on the subject, assuming one accepts the original Xerox description as a source. Try not to wrap the entire complicated application into one big MVC umbrella because that will just confuse. There are actually multiple processes involved, and each has its own MVC.

The big epiphany for me was when I realized that the server has its own MVC, and the browser has its own MVC. The server's output is the View for the server and the Model for the browser. For a complex set of objects in a given Model, the final output of those objects is their View, and the consumer of that output uses it as a Model. In theory, any View can be a Model for the thing accepting the View, so in a complex system, you have a chain of MVCs.

And one can further imagine that applets written in JavaScript have their own MVC unit.

I work on complicated, large-data web apps sometimes daily. MVC has been a fine model for them and has kept my group's organization clean and modular.
I seriously think the poster is not mature enough to be the recipient of any advice. This is not a productive anf fruitful way to handle received feedback.
If you like a little more rolling thunder in your declarations, it's hard to beat John Perry Barlow's Declaration of the Independence of Cyberspace. It's a bit dated -- it was written back in the days when people un-ironically talked about "cyberspace," and it shows -- but there's some insightful vision beneath the poetic hyperbole.

https://projects.eff.org/~barlow/Declaration-Final.html
First, they're English speaking countries. While my wife and I both speak German, neither of us is fluent. I know Latin quite well, but that's not going to get me very far either. I'm quite hesitant to pick up a fourth language atop all the other things I know I need to do, so for the time being we're limiting ourselves to English.

Second, they're both developed countries. I have a family, and I have a responsibility to ensure that they're in a relatively safe environment with access to the same quality of life they're used to here. I also need to be able to have relatively easy access to a technical job market. I could likely get a job working remotely, but it's much easier to know that I can get an actual job if push comes to shove.

Third, and perhaps most subjectively: they're closer to the parts of the world we find interesting and exciting. My wife is terribly interested in Japan, for instance, which is easier to visit from Oceania than from America (no time zone change). If I moved to Germany, for instance, I'm close to most of Europe. However, I have virtually no interest in travelling around Europe. I'm much more interested in visiting Southeast Asia, for example, or other places that are somewhat off the beaten track. This is entirely subjective, as I noted above, but it's a fact that needs to be kept in mind: we're discussing where bartonfink wants to live, not where every person on earth should live.

When it comes to choosing between Australia and New Zealand, my wife and I keep changing our minds. Australia certainly has a stronger job market and larger cities with all they bring, but New Zealand seems to have a more laid-back culture that suits both of us very well. Further, from what I've heard, life in New Zealand is cheaper than life in Australia, so some of our other dreams (e.g. a beachfront house) would be a little more approachable. That said, I think we need to get the hell down there and actually visit before too long.

As I said above, if Atlassian wrote me an e-mail next week and said "Barton, we dig what you do - can we pay for you to move out to Sydney by Christmas?" I'd be hard-pressed to turn that down. I'd probably need Mapquest to double my salary to push aside an opportunity like that, and it's not because I dislike Mapquest or am underpaid or anything: it's that moving abroad is very important to me because I want to feel like I live in a country because I choose to live there and not because I happened to be born there. The world is a book, and the man who does not travel only reads one page.
If you need a new name, Pando (Latin for "I spread") is the name of the largest and possibly oldest single organism on Earth.

http://en.m.wikipedia.org/wiki/Pando_(tree)
I suspect that the only people who can defend PHP on technical merits are people who have yet to try something better and have yet to realize just how much better most other options out there are.

If that describes you, I am sorry for you, and deeply encourage you to take on something new on the side, in a different language. Just for fun, learning and exploration. Just to let your mind get a feel for how the world can (and maybe should) be different.

I've done PHP. I've been there. So don't get me wrong. PHP has good sides. Yes yes, it does. But IMO (and I'm far from alone here) they are completely overshadowed by the bad sides.
The crops were lost in the Grapes of Wrath due to the dustbowl, which was an ecological catastrophe that occurred in the 1930s due to bad land management.

http://en.wikipedia.org/wiki/Dust_Bowl
Ayers -

Will do. Thanks for the offer! You'll hear from me this week.
I've always thought MVC was a joke played on gullible software engineers, kinda like this:

http://en.wikipedia.org/wiki/Sokal_affair
Couldn't agree more. As long as you find a consistent way of splitting and placing your "Controller" code, MVC works perfectly fine. The problem is that a "Controller" is only vaguely defined and always application dependent. However, finding a good split and place for code is not easily accomplished and, in my experience, needs a couple of iterations to be perfected.
The MOVE split seems useful for event based systems (webapps?), however it doesn't seem to encapsulate as wide a range of apps as the more vague MVC does..
An interesting new pattern here (from the creator of MVC) is DCI: http://en.wikipedia.org/wiki/Data,_Context,_and_Interaction

Essentially it's a way to move code where multiple objects collaborate to achieve something into its own separate class (Context). However when executing in a context, each involved object takes on a "Role" which grants its additional methods specific to this context.
Online Ed Isn’t as Good as a Degree, But Universities Are Still in Trouble
If this had been done correctly, it probably would have been a great boon for the average person. It would have allowed Cisco's tech support to more easily address problems users are having and allowed Cisco to keep software up to date.

Unfortunately, Cisco decided to see how well they could "monetize" (gads, I hate that word!) it:

- Create a "marketplace" for features built into many routers? Check!

- Sell people's internet history to the highest bidder? Check!

- Force the upgrade and provide no way for people to opt-out? Check!

I'm really trying to image the product management meetings that created this travesty. Did the meetings happen after somebody came and said, "You know, we could make administering these routers a lot easier by making it so users don't have to," or were the meetings more like, "We have a lot of users. How could we package things so we can sell all their data"? Did it start benign and turn malignant or was it malignant from the get-go?

Regardless, I can't imagine being willing to screw my customers like that.
> I've had first-hand experience of how technology choices affect companies and it can be very painful down the road.

I've had the same experience. A couple of years ago we decided to implement a rather large part of a project in JRuby (the other part was written in Java), because it seemed to be the right tool for the job: a scripting language that can interoperate with java libraries out of the box.

In retrospect it was a bad decision, because the interpreter error messages were (are?) cryptic (at least compared to what you get with Java) and IDE integration was really, really bad. Cross-language re-factoring was broken and we ended up unit testing almost every line of JRuby code to make sure we didn't introduce regressions when making changes to running systems.

There's a part in Peopleware (http://www.amazon.com/Peopleware-Productive-Projects-Teams-2...) where the authors describe that the choice of programming language has almost no impact on the success of a project. So why add additional risk when there's no proven benefit?

Edit: Also, people always argue that they can get things done much faster in "esoteric" languages, but forget about the time spent on maintenance, bug fixing, explaining code to new colleagues, ...
This pattern is fantastic.

We use a similar pattern that we internally call "Actions". An Action, in our parlance, is similar to the Command pattern from the Gang of Four. It can be invoked from anywhere and performs a single state change on a single model, or even multiple models (if several need to be updated at the same time, in the same transaction).

Separating Actions from Models was a huge step in writing readable code, and it's immediately clear what is happening in the system at any given time. Any Action can invoke any number of "child" actions, as well, to maintain encapsulation. For example: when a user registers on the site, we trigger a RegisterUser action, which in turn calls a CreateUser action and a LoginUser action.

Basically, we took any complicated method on our models and turned them into Action classes. Common concepts like database transactions, logging, event tracking, and so forth, can now be abstracted away, and don't need to be re-implemented in each model class. It's a huge productivity increase and a real win for software engineering.

I highly recommend this general approach to any large software system, and I'm grateful that we're all experimenting with things beyond MVC.
Can I be so bold as to ask where you work?
Tiny Piano was actually my 5th app that I published on the App Store. It turns out that I needed to ship four duds before I happened on a successful app. I also built a few game prototypes that never made it to market.

I first tried cocos2d, probably the most popular 2d game framework for iOS. I built two prototypes with it... but struggled to get either app to a state where I was happy with shipping.

Then, I happened across Sparrow. I realized its architecture was very similar to ActionScript 3. In my previous life, I had built a lot of stuff in Flash. So, I was able to build apps much faster once I found Sparrow.

Recently, I've been keeping my eye on MOAI, which allows you to publish games to both Android and iOS. I might built future games with MOAI.
Fly Me to the Moon... And Your Ticket Will Only Cost $150 Million Dollars
Hey Björn, you're definitely one of the most interesting companies in the Malmö/Lund area right now! Very excited to see this take off. Two thumbs up =o)
MOVE sounds an awful lot like JSF.
I think it's unfortunate that the author chose to use the word "model" in MOVE. It appears that the "model" in MOVE is not the same thing as it is in MVC. That risks confusing a lot of people.
Free needs to be defined more. Obviously there are costs associated with maintaining the Internet; it can't be free. Also, open needs to be defined more. You can't be fully open and have privacy as well: privacy is a form of censorship. Also, this is one sided, and doesn't take into consideration the ISP's position as well. Too vague to mean anything.
Yeah, I ended up rebooting our production hadoop cluster, it all came back up fine, and we don't have too many people using it yet.
Oh, thanks very much for the awesome feedback. I am now in a redesign progress :)
I will love to have you provide feedback on SocialAppsHQ - https://www.socialappshq.com
Priceonomics (YC W12): The Price of Anything
I learned Java specifically for Android, but I really like it for all around development. C# is probably better, but it owes a lot of its success to Java IMO.
Wow, I now understand monads. This article nailed it.
If "fat controllers go out of control" then you've already made multiple mistakes. I don't think re-inventing the wheel is the right approach to fixing a problem when the developer can understand their own mistakes instead of blaming a framework or architecture.

Are you suggesting that OOP breaks the rule of single responsibility? Any 'operation' that modifies the internal data should belong on the model. Would turnLeft() belong on a Car model? Or do you pass a Car into a turnLeft operation? In my mind a turnLeft operation shouldn't know the details of how to turn a car left, or a bike left, or a boat left. These operations belong in the Car, Bike, and Boat.
Folsom-backed Stats Coming in Riak 1.2
here's a video
http://www.youtube.com/watch?v=iABPKd0vFxQ
Are you saying that you feel you have no choice in life but to maintain an active Facebook account?

That is fascinating. And concerning.

I do say there are many other choices, but if you feel there are none, our situations must be vastly different. I have no idea how someone could feel that they need Facebook.
"Unless it's readily visible" in which spectrum? Whether X-ray, terahertz, microwave, UHF, or visible light... it's all just electromagnetic radiation. Seems weird to make distinctions. To me (and trust me, IANAL) it seems that any law governing a "camera" should be equally-applicable.
Congratulations ronyeh. That's wonderful. Can you please share with us how you have marketed your app? I have an app of my own (Finderous) and I am trying to figure out ways to market it.
Yeah, I've always used MVC with a repository pattern for handling Model operations. The controller is still calling the operations here, and handling events triggered by the user.

The O and E in MOVE sounds effectively the same as the C in MVC.

Model objects are generally just POCOs (or POJOs, or whatever) and should not know about their storage mechanism or dealing with user events.

Sounds like he's basically been doing MVC wrong, and thinks MOVE is something new, when really it's just closer to the way MVC should be done in the first place.
Thank you. You're very right -- it's so easy to get discouraged at the apparent lack of activity in any early product, no matter how jazzed you might be about it. It's also easy to get caught up in the "if you build it they will come" mindset. Sadly, this seems to be rarely the case, even for the best of products. (Though as adamtmca notes, it's certainly possible!)

The first few 100 users of Forrst were all my friends and colleagues, and theirs as well. I invited folks I trusted would give me raw, honest feedback, and I trusted them to invite similarly-minded people. The next ~1,500 users came from this post: http://thinkvitamin.com/design/forrst-finds-designers-who-co...
Rob Pike is a great communicator.
That is one of the main problems with bubble charts. Unless you have a sophisticated packing algorithm, the layout of the chart won't have much meaning. For comparing the projects between countries, another method of display will have to be used.
Do you think keeping people in HN as "dead" is immoral?
Example (set "showdead" as "on" in your own profile):

http://news.ycombinator.com/threads?id=losethos

Yes, this is bullshit, but think about some other people that just did an infortunate comment and now are marked as "dead" forever (i.e. banned) and they just don't ever notice.

What do you think?
Yes, precisely. You can run your own instance, with your own videos, and your own configuration. Pad.ma, for example, is quite different from 0xDB.

"pan.do/ra is a website that runs in your browser" was our attempt to communicate that pan.do/ra is not just a server backend to store and serve your media, but that it comes with a web frontend to browse and manage your archive.

What you see on 0xDB is one such frontend.
Objective C, Python and Ruby are very popular and cool ;-)
This scrolling trickery is absolutely doable in html/js. A friend of mine wrote an infinite-scroll table that will handily display tables of tens of thousands of rows. It carefully only requests the right data from the server (with lots of cacheing and prefetching, of course) and only ever instantiates 2*n (n being the number of rows visible) dom elements and just pops them in and out of view.

I think what you are saying that is correct is: UI developers as a general rule do not go to this level of detail, either on web or on native.

But on native, the frameworks have already done these kinds of optimizations for us. I think that's just a matter of the SDKs having more manpower and motivation for making it easy to build apps on their platform.

I actually have a semi-related project right now, so I'm going to go write a Backbone collection smart-scroll plugin that deals with the smart data loading and clever element rejiggering. Thanks for the suggestion.
Paisagens do Rio de Janeiro classificadas como Património Mundial
Thanks! It would be awesome to see the videos, we've had customers ask for this actually.
Ask HN: Have you transitioned from development to recruiting?
If so, how did it work out?

I'm considering alternatives to my career in software development for the simple reason that there is no such thing as a part-time programming job (consulting doesn't count). I'm not in a hurry to become a bike messenger, so I'm looking to see if there's a career where I could leverage my software background.

Recruiting is an obvious choice, since there's a dearth of recruiters who really understand the software industry. Does anyone have any other suggestions?
Seeing as I completely and totally reject your conclusion on a fundamental level, I would like to see the analysis.

Apple has remained sexy in the face of mainstream, a feat that I'm incredibly impressed by.

Say what you will but many, many people still buy iPhones today because of the allure of it -- and if what you had said was true (that Apple was acting as as a beige undifferentiated manufacturer) than the exact opposite would be true. People wouldn't find Apple's products alluring any more.

Seems to me that the only people who don't find Apple's products alluring today are the same ones who never have -- and Apple gives as many shits about them today as they did a decade ago (none).
Thanks dude! I didn't even think about this as a reason why my server was acting so poorly yesterday even after restarting elasticsearch... I'm now looking at a much calmer server now

http://grab.by/evVA
Glad to see someone point out running for its calming and therapeutic aspect, instead of the exercise aspect. People always give me strange looks when I tell them I listen to mellow jazz and reggae whilst running, instead of hard and heavy electronic or rock music. Or that I slowly run 10 miles instead of sprint two miles. Running is a time to just "veg out" and let my mind wander. Some of my best ideas and solutions came about from the clarity gained during running.
lol, objectify.
CSS3 Dancing Robot Animation (with reflections)
Wow, I just checked mine and I also had messages that I completely missed from people that I would have like to have been notified about. Just peachy.
There isn't, but then is MVC really MVC when you've added in another layer?
Wow, this looks awesome -- I was actually looking for something exactly like this recently, and was worried I'd be stuck using mac-only software.

Would be interesting to learn about your security.
This is quite sad. Signs of a company struggling to be relevant, and failing terribly.
Notice how unlike Android phones, they don't introduce NEW phones at cheap price points? How they use old models for free and cheap models?

This is intentional -- users understand that free and cheap go along with old, and users don't mistake their old/cheap device for the new hotness.

Now, with Android, the effect you're describing happens 100%: People buy brand-new Android phones that are free/cheap and get disappointed "but I thought it was an Android, I thought it was better than iPhone" or something.

I think Apple's maneuver here is deft, because you won't see a 3GS owner claiming they have the new hotness, but you will see them still coveting the new hotness (which is 100% the point).
True, depending on your language, you can probably get the imperative version to be shorter than my pseudo-C implementation.

But that accumulating function you're passing to reduce? That's essentially just a JavaScript version of the bind (>>=) operator for Maybe. In fact, in Haskell, I'd express what you wrote as:

foldl (>>=) x [foo, bar, baz, quux]

foldl is Haskell's version of reduce, so that's almost exactly the same as your code. You're using a monad to shorten your code, you're just not being obvious about it!
Your post confused me because it said a lot of things about App Engine's datastore that conflicted with my direct experience. Khan Academy is one of the few sites that I'm excited about at the moment, so I'm concerned.

I chose AppEngine because I was very much aware of the issues around big data and I thought I could avoid having to deal with it. I came away from your post with the feeling that you may be underestimating what you're up against. Step one: look at your data size and querying cost every day!

Right now you can access the datastore externally via the remote_api shim or an API you put on your app. Performance isn't great. (An OData-style HTTP interface to the datastore seems like an obvious addition.)

Specific to my query: you say you're excited about Google's EC2 equivalent. I'd be more excited about the managed Hadoop that's likely the next step along your dev path whether you're aware of it yet or not. Custom mapreduce operations against the Google App Engine datastore, ironically, really suck and are really expensive.

So... was this general excitement or is there something specific you want to do with App Engine but you can't yet? And have you estimated out the transactional costs for walking across your full record set even if they gave you access to it?

You're likely going to find yourself stuffing at least some things in a SQL store and talking to that.
http://en.wikipedia.org/wiki/Kyllo_v._United_States

IR sensors used on a home constituted a search so could not be used without a warrant. This would likely end up in a similar ruling, especially since it can provide more detail than that the walls and roof are hotter than they ought to be.
Show HN: Play scrabble, chess, checkers, etc with your friends by copying a url
the bright side of being blue: adaptation for complex analysis
Railo 4.0 Beta released