skysight-inc/HackerNews huggingface dataset:
I would call this class by what it is ("CommentPoster") instead of what it does ("PostComment").

CommentPoster.new(@comment).post

In this case, it might be a premature optimization, but I find that classes like this are a lot more testable than controller logic. One thing, though. I would pull lines like this out of CommentPoster and put them back into the controller:

LanguageDetector.new(@comment).set_language
SpamChecker.new(@comment).check_spam
CommentMailer.new(@comment).send_mail

This keeps the important steps a bit more mutable.
This is not new.

The default implementations of scripting languages do not scale, unless we making use of the advanced VMs or JIT techniques of alternative implementations.

A startup I was part of, made this discovery already back in 2002, when we moved our scripting based web framework, which was very much like Rails, but based on Apache/TCL, to the then early .NET beta.
I'm just curious what the higher-level APIs are that people need from jQuery that aren't available on mobile. I recall jQuery being popular for selector queries (available on all mobile browsers natively with querySelector and querySelectorAll) and for even listeners (offers no real advantage over addEventListener as far as I can tell).
Wow this is really surprising, especially after reading Craig Newmark's answer on Quora just the other day to the question "Why hasn't anyone built any products on top of Craigslist data?". His response:

"Actually, we take issue with only services which consume a lot of bandwidth, it's that simple."

http://www.quora.com/Why-hasnt-anyone-built-any-products-on-...
But I think you're missing the point. Google App Engine (and Heroku for that matter) is a PaaS product. They were there first, and they lost to the commodity metaphor. You can argue that Amazon will succeed based on the quality of their offering, I guess, but not simply because it's "PaaS". The market has spoken, they don't like that.
Disclaimer: I love Go and the more I learn about Haskell the more I love it, as well.

So is the distinction here that, basically, you push the distinction between a "nothing" and a "something" down into the language layer? IOW, the `if isJust mx` is the programmer trying to reason about a type, whereas `case mx of` is delegating that reasoning to the compiler/language?

In general I think that's a good principle, but at least in this example I don't quite grok why `if isJust mx` is out-and-out unsafe. Maybe this is just because the (heh) Maybe example is too simple to illustrate the unsafeness.

It does seem more error prone in practice, in terms of engineering & maintenance (read: more likely to lead to bugs). `isJust mx` means you are methodically separating out the verification of what type it is from the access and usage of that type, and since this is all happening at the program layer, you've got to keep the assumptions in your `if` consistent with the assumptions of your type. Conversely the `case of mx` statement leverages the type system to do the work for you.

I'll try to put it another way: the code inside your `if isJust` clause is not semantically related to the clause itself except in the most superficial way. However, with `case mx of`, those clauses are inextricably related since you've (again) pushed the semantics of checking the type and unboxing it down a layer, into Haskell.

Am I anywhere close?
Seems like a 'clone' of http://en.wikipedia.org/wiki/Backpacker_%28series%29, which was plenty addictive when I was young. You should take a look at it.
It's hard for me to see this as stealing content since:

1) Padmapper shows the original craigslist page when you click through to the details page.
2) Padmapper doesn't seem to be monetizing itself in any obvious way, at least not directly through ads on content.
3) Craigslist doesn't monetize its content through ads, anyway.

Essentially all it offers is a wrapper that lowers the friction to discovery. You know, like those kids over at Google. Or Bing. Or DuckDuckGo. Are they stealing content?
To be fair to Craigslist, since everyone and their grandma uses it, I'd imagine a lot of users have underpowered computers, outdated browsers, and low bandwidth connections.

I've seen padmapper slow wayyyy down on my i7 macbook with 8GB ram, I can't imagine what it'd be like on grandma's 5 year old budget PC.
I associate it with working late, am I wrong in this case?
Padmapper has been a wonderful service. It is confusing why Craigslist is blocking it unless they (Craigslist) are thinking about coming up with similar user interface soon. Craigslist has been hiring UI designers.
I think many would argue that their shipping container full of motherboards style data centers may have hampered them when it came to an IaaS offering. They didn't leverage VM technology at all did they? That certainly created a bias that led them to GAE.

Amazon, Facebook and Microsoft certainly must be operating datacenters on a massive scale and sophistication. They are probably more traditional thus less interesting to tech writers.
Don't discount the speed. Every Craigslist page loads and renders very quickly. The simple, text-only UI helps keep it fast, and that matters.
Except Padmapper works everywhere craigslist does. I went to livelovely just now and they don't have my city. It's not exactly a small town. Also their filtering is nothing compared to padmapper.

On a more related note, I would imagine any sites like this that come up on Craigslist's radar will get a similar notice.
Agree in general, but I believe that if there was no (rumor of) nuke in Israel, they would have tried (again).

Another "positive" moment within the Muslim world itself is that Muslims are still happily killing each other (like Christians were doing a few centuries ago). Eventually they will stop doing this.
Working in both python and nodejs day to day, I'm thinking the same thing. npm, coupled with nodejs's import mechanism, makes things so much simpler and it's because it goes a long way to eliminates globals. Developing node modules is a pleasure. Python is a headache.
Making Money Apps For Smartphone Users
(I have not downvoted you. I don't have the karma to downvote yet and have been replying to you so I can't anyway)

People upvote for agreement, it only makes sense that they downvote for disagreement as well. I'm fairly certain that PG has said that he is ok with that before.

You can be pretty sure that you will always be downvoted for complaining about downvotes though, even by people that may agree with you.
Wow, if this is true I've lost a lot of respect for CL. Being scared to make forward changes because one doesn't know the source of success is such a terrible excuse to stop innovating.
At the end of the day it is Craigslist's data. I know padmapper was useful for a lot of people so the next smart move is to build your own data. A "craiglist" focus on rental only with the same features. The sad reality is you need your own platform to scale any type of services like that.Is it going to be easy and fast to build. The answer is no. However the reward and opportunity are huge....

Of course it would be great if craigslist could have an API or licence his data but it won't happen in a bear future ...
I agree, and Pealk definitely admitted as much, that for a startup, relying on an API is incredibly risky. I'd never be on board with a startup that did, no matter how cool the idea.

But LinkedIn doesn't come off looking great either, and I think that was the thrust of the article. It's pretty concerning that they would spend eight weeks talking nice with Pealk, all the while sussing out Pealk's position, and then shut off access with no opportunity to negotiate.

What LinkedIn did wasn't illegal, perhaps not even unethical, considering what passes ever-so-vaguely for 'ethical' in the business world these days. But it was, in the strictest definition of the word, crappy.
So you're upset that a listing that you created for the sole reason of being seen and generating a response is being made more public?

wat??
That was embarassing, and 20 minutes of my life I regret losing. Even the speaker appeared to be embarassed at times.

It's interesting that this thread has stayed on the front page of HN all day. I wonder how many people upvoted/participated in it without watching it? (I must admit, I participated without watching the whole thing.)
this is only true with google's free services. as far as i know, any paid service google offers includes phone and email support.
Tesla Model S Delivery Starts Today [Live Webcast]
The all electric sedan from Tesla Motors starts delivery today. The live webcast from their Fremont plant is on...
As a note, I think this particular variant of SRP is adopted from Java, where there is no concept of a function not bound to an object. You might be tempted to use static methods for plain-old namespaced functions, but there's a second quandary: it is really difficult to manipulate anything but instances in Java. Since there are no first-class functions, you can't very well pass these functions around to configure other objects, etc. So you wind up with layers of OOP scar tissue around the problem: DI frameworks, Handlers, Managers, Strategies, Factories, etc.
That they can't be troubled to verify facts that don't have any relevance whatsoever to the content of the post should only very weakly effect your expectation of whether they verify facts that are central to the content of the post. Granted, here on the internet, that's not as high a prior as it might be.
Show HN - Kalei - Auto generate styleguide from CSS
I would say this pretty much killed Carsabi.
Very nice, but the only way to make this effective is for everyone to have this bookmarklet installed. I supposed you could put a link at the top of your gist, though.

Nice job!
Have you considered making a map where the color at each point is the average commuting time from there to all points within a radius? For example: http://www.jefftk.com/news/2010-11-17.html

The maps you've added are awesome when you know where you're looking at, but if you don't yet have a place picked out then knowing where to look is good too.

A naive way to compute the kind of summary map I'm interested in is to just make the color at each point on your summary map be the average color on your map for a specific place. Something smarter could weight points by their desirability (I care more about how fast it is to downtown than to an arbitrary point in a suburb) but the naive version is pretty useful on it's own.
I did not downvote you, but I've lived in the US for 11 years, went to different parts of California several times, including a long trip to San Fransisco; to this day I cannot tell you the difference between San Fransisco, Silicon Valley, Mountain View, etc... To me they are really all the same place.
Individual Email Tracking Startup
Managers like you are the reason why I quit my day job and started a thing on my own. Best decision I ever made.
I wonder why CL doesn't create an API and charge for it's usage. The data is clearly valuable and they own it, but that doesn't mean that it can't use multiple views.
While the pageload speed may be faster the total speed to find what I'm looking for is drastically slower due to the fact that the interface sucks.
PadMapper team here, I don't show your copyrighted text, I link to your posts an provide a preview of the stats. Just a clarification.
It's hell here in Austin. The listings are so polluted with realtors, you can't find anything that's not a giant complex.
this is the point I came to make. LinkedIn's TOS specifically disallow apps that cut into their turf. These guys should be negotiating to get their codebase bought and their team acquired.
Just sent a mail to {craig,jim}@craigslist.org. Not sure if it will help but if they hear enough noise about it, maybe they'll change their stance.
radsauce :)
Same goes for Facebook or any other big company. If your application depends on them heavily, then they can shut you down with the flip of a switch. If you're not making them money directly, they won't care either. I make the distinction between big and small companies here because if you depend on a small company, there's a lot more chance of opening a dialog and working out some kind of arrangement.

That said, to not hinge the entire outcome of your company on another company is, I feel, business 101. Doing so is a very high risk.

My feelings go out to the guys who started the company though...mistakes or not, it would truly suck to see all your hard work flushed down the toilet.
Maybe I'm stupid, but why do I need to create a new object so that I can do four things in a sequence?

And these four things have different failure and performance characteristics - so maybe we should not try hard to unify them.
So since it doesn't cross your arbitrary line of bigotry their concerns are worthless.
There has been recent work to make jquery compatible with Google closure's advanced compilation[1]. As mentioned in John Resig's reddit comment you referenced, this would allow the compiler to automatically remove unused components in jquery and perform whole program optimizations. Unfortunately, this approach requires large rewrites to jquery to conform to the strict conventions required by the closure compiler.

[1] https://groups.google.com/forum/#!topic/jquery-bugs-team/2zb...
>> Yeah but that still sucks, because people rarely know which neighborhood they are in.

"rarely" is a tough word. I have found the city to be pretty well demarcated unless you are talking about people confused about minor issues such as what counts as Lower Haight and what counts as Upper Haight.

>> I guess you haven't really used padmapper if you don't understand how anyone could improve craigslist for you.

I used Padmapper as a newbie to the city but quickly found that the latency between postings on CL and the corresponding crawled updates on Padmapper were so high that the postings would have already been hit by a few dozen responses by the time I got it and in a hyper-competitive housing market like SF, this made all the difference.
That's inspiration for this! I loved that game.
I thought I'll try to replicate some of that but add a web spin to it.
It looks like you grabbed every comment by the OP along with the comment it was a response too.

In at least one instance, I see a situation where someone asked a question, I (not the OP) provided an answer, and the OP then commented on my answer to confirm that my answer was correct. The original question doesn't appear on your website.
Does that mean other people should steal the content and profit from it?

Craigslist is unwilling to let Padmapper buy a license to use their content. This isn't as black and white as "stealing content".
The spoilt luvvies of Silicon Roundabout
On the other hand, suppose a group of car makers all coincidentally decided to impose this - purely for safety concerns.

And while they couldn't ban after market parts, they could make the engine not start if the new brakes/mufflers/cat didn't give the correct crypto response to the engine management system.

And just imagine that congress would bow down to the car makers (that it had just bailed out) and rule that you couldn't modify the engine computer - in the interests of safety of course.
It's like bootstrap for iOS, kinda cool because lets be honest, the default Round Rect is UGLY.

I like how it's vector, that helps keep bundles small (instead of a bunch of custom button PNGs I usually have to have in there)

I had exactly this idea for a while I had not gotten around to implementing it, my plan was to make it open source.
I think what you are saying is very valid. Personally, I tend to pull things out into stateful classes (e.g. CommentPoster, OrderMailer, ElephantCleaner, etc) for two reasons:

1. Testability. Isolating these bits of application logic and testing them on their own has proven less prone to issues than including it all in, say, controller methods or helpers, which get messy over time.

2. Swappability. Okay, sure, you may never need a second kind of CommentPoster, but you never know. Keeping things like this stateful and properly abstracted out saves me plenty of time as the app's requirements get more complex.

It's not exactly premature optimization if I always follow this pattern and know exactly how it will work. (Sometimes it's just an unused optimization.) To me, there is very little added complexity, and if anything it makes it a bit easier in the long run.
That's an interesting solution, but wouldn't you normally want the logo in an img tag, so it gets loaded sooner?
Take them to court. I will donate to your legal fund.
Chicago Accelerator Looking For Environmentally & Socially Minded Startups
Their magic recipe is that an amazing amount of non-technical people have figured out how to work with the site.

The Dutch version of Craigslist (Marktplaats, owned by eBay) is in a similar predicament.

They have a very sucky UI and have experimented with new and improved versions, but every improvement was quickly reverted after large drops in engagement.

It's almost surreal to look at their site (http://marktplaats.nl) and realize that there's tons of highly talented people behind it.
The difference is that the search engines aggregate from the whole web, PadMapper was just appropriating content from CL, which is against their TOS. It's very clearly spelled out.

All the other companies that have tried have also been told to C&D. If you don't like it, start your own network...

From http://www.craigslist.org/about/terms.of.use

"Any copying, aggregation, display, distribution, performance or derivative use of craigslist or any content posted on craigslist whether done directly or through intermediaries (including but not limited to by means of spiders, robots, crawlers, scrapers, framing, iframes or RSS feeds) is prohibited."
Features can be added without alienating users with outdated tech. Just conditionally show the improved site only to users who can run it. It's a poor excuse, especially since Craigslist hasn't even tried to improve the layout of the site, which has no effect on load speed and compatibility.
Amazon did not get lucky with their products. They developed them over a number of years, constantly adapting to customer demands and trying various different types of services. Being able to do this is a luxury that start-ups cannot afford, they need to get lucky with their choices, but Google could have done it.

I wasn't making a GAE vs. AWS comparison though. GAE is not in direct competition with AWS. It's a product with a niche market and I wouldn't see it as a failure. It's just something else entirely than building an AWS competitor.

The argument I was making is that Google wouldn't necessarily have the experience in building a lean, scalable business operation that could successfully compete with Amazon Web Services. As a case in point, Google has been running an exact duplicate of Amazon S3 for a while now, but it has yet to really take off.
http://cloud.google.com/products/cloud-storage.html
Doesn't work for me - get the reformatted page but keys don't work. Linux FF 10.0.5
I stated this in a different comment, but, to repeat myself, I would call this class by what it is ("CommentPoster") instead of what it does ("PostComment").

CommentPoster.new(@comment).post

Looks slightly better to me.
I'm just speculating. I'm not making a stament of fact. However, it's not out of the question that CN cares about the politics of the people who deal with CN.
I am totally upset. I wanted to use padmapper to search for an apartment for my next move. I had been looking with it for months and wow it was super helpful.

Please, make a client-side solution so they can't shut you off! A browser based plugin, for example that allows us to plot the listings on our end.

I wrote this email to craigslist:

Hi Craig and Jim,

I am very upset that you cut off padmapper. Using padmapper cuts out a lot of the spam that ends up in the apartment listings due to the fact that it doesn't have a lat,long pair most of the time. It also makes it much easier to search for apartments based on your preference. With padmapper, I could see if the apartment I'm looking at is in a safe area, how far it is from a potential employer, and a myriad of other great things.

Finding an apartment with craigslist, in spite of the fact that you have the data, is much harder than searching on padmapper.

I really wish there was a way you could work with them!

You guys are a solid blue chip, no doubt. But if you take this oligarchical perspective to your business, someone is going to beat you eventually.

Thank you for your continued service
This is supposedly the reason Apple offer free engraving on iPods. You are less likely to sell a personalized item and it's resale value is lower - so reducing the used iPod market
People listing apartments tend to want it to be widely "known."

those same people are already getting their listing widely known, by posting it on CL.
I would do the spiral from the middle, like Ulam's Rose. If you put the valid programs on top of the primes, you'll probably get a picture of a horse or something.

http://en.wikipedia.org/wiki/Ulam_spiral
Excellent point.

Corollary: when the other company is figuring out how generous of an offer they need to make for choice #1, they know that your next best alternative is choice #2 (for $0).
This is extremely cool. One of the things I find lacking about Cocoa Touch is the lack of native, powerful customization of the default UI elements. Sure, iOS5 added the appearance APIs, but I still find them lackluster. I look forward to playing with this thing.
You think Rob Pike and Ken Thompson made what you consider a mistake out of ignorance? Just because you don't like it doesn't make it a mistake.
If they don't want to change their layout, why not let sites like PadMapper build on it the way that it has been doing? That way, old-fashioned users can keep using just CL and people in need of something slicker can use PM+CL.

I also don't understand why classifieds content is proprietary? Aren't they just facts? Please can someone explain?
+1

I'm also a single father (part-time, 50/50). Luckily I have plenty of job opportunities where I am, though I could certainly have even more if I would move.

And while I don't want to dismiss the real issues many women face in the workforce, work/life balance is NOT a gender specific problem. While reading much of the article, I was thinking, "welcome to the club. This came as a surprise to you?"
it is up to the user to keep track of the meaning of 'x' under all the conditions it is run

OK, so it's a bit like you're chaining assumptions together, rather than putting them next to one another? This makes Monads, esp. `>>=`, make a bunch more sense to me.

Like, the difference is between chaining/linking two operations (incl. checking what `x` is), by using the result of one check as the input to the other, and basically putting two operations next to one another (not to say that the `if` is meaningless, just that once the `if` is evaluated, the associated block has to take the `if`'s word for it).

The bonus is that Haskell handles the first part, the check, for you if you let it. It's an implicit (well sorta) and immutable precondition to whatever's next, at a logical/linguistic level.

And I guess the reason why booleans in particular are problematic is because you're sorta bolting them on, and they inherently compress information into yes/no, which is otherwise not terribly useful for the block following?
Well, a big problem is that you're got a pretty huge sampling bias there. The people that it works for aren't going to comment to say "it works!" because that's the state that they expect it to be in.

It works fine for me -- Firefox 13.0.1, so it's not just Chrome-flavoured html5.
The content isn't theirs. They just have a license to display it.