skysight-inc/HackerNews huggingface dataset:
I tried your same sample image. The top came out much better than the bottom:

YOU SAID WE WERE
LEAVING'ON TIME:TODAY

TN[ FACTTNAT |'M MAWING TNIS M[M[
INST[AD of DRIVING D[TERMIN[D TN#rWASA ll[

I imagine that the thick outline of the font makes it hard to detect the edge of the letters, especially since it obscures the true "background".

e: using the Internet Meme language worked much better!

YOU SAID WE WERE
LEAVING'ON TIME:TODAY

(:/J

THE FACT THAT I'M MAKING THIS MEME
INSTEAD OF DRIVING DETERMINED THAT WAS A LIE
If you think you're ready, it might be fun to submit a techempower benchmark.

http://www.techempower.com/benchmarks/
I have no idea what they may or may not be giving away at this years Google IO (they seem to be trying to reduce focus on that) but the retail cost of the free hardware often exceeds the registration amount.

2012 was probably the best overall in terms of retail price of giveways relative to registration fee: Samsung Galaxy Nexus, Asus Nexus 7, Nexus Q and Samsung Chromebox.

Last year was Chromebook Pixels which by themselves retail for more than $900.
JavaScript's "this" keyword considered harmful (sometimes)
Smelled, you mean. I'm not saying that all good of Vk was due to Durov, but things are obviously getting more complicated slowly since Mail.Ru group rules it. It can get even worse.
> utilizing MPD

Yeah, that's a non-starter for reasons that are well described in the post. (But to each their own.)
Ah, much better!

Top: YOU SAID WE WERE
LEAVING'ON TIME:TODAY

Bottom: THE FACT THAT I'M MAKING THIS MEME
INSTEAD OF DRIVING DETERMINED THAT WAS A LIE

Next time I'll RTFM.
Very cool. I have jars I want to etch for a product. Now I am wondering if I could get frosted jars and just clear labels.
Refe – Digital marketplace of the best real life mobile photos
The ability to play every music format under the sun; an infinitely configurable UI; a reasonably broad plugin ecosystem, albeit not one which encourages new developers very well.
Great job! It definitely feels like a microframework compared to others. I'm glad that there are so many starting points for Go web services available now of varying levels complexity. To me this feels like it fills the void between Gorilla and Revel/Martini/Beego. Also, the code is very well documented and easy to follow.
Yeah, I think I sometimes weave back-and-forth. I try to avoid thinking about "micro-optimizations", but can't help myself. As I'm writing this series I'm compiling together a small and opinionated library that uses a lot of these concepts, and I am tending to use native methods, for loops, while loops etc. in favor of performance....

but I should probably stop that and instead favor the clean code following the very principles they are there to promote! One of my points was that performance doesn't really matter here anyway.

Thanks for pointing out. I might update a couple spots.
Getting accepted into YC immediately values your company at $1.7M.
For most of your questions my answers are "I don't know" or "probably things haven't changed much (but I haven't gone looking very hard)". I'm still under the impression that valgrind, gdb, libuv, g++/clang, are tools of choice. You didn't mention allocators: maybe try linking with a better malloc: tcmalloc or jemalloc. But I think that was also true 4 years ago.

> C++11 features: which ones are production ready?

What compiler and which standard C++ library are you using?

Generally speaking, any your targeted compilers support. Rvalue references and move semantics are the best and most important C++11 feature. Variadic templates would be the second best, I'd say. Scoped enumerations are nice. And being able to say std:: instead of boost:: in places, with std::bind, std::unique_ptr<T> (not boost::scoped_ptr<T>), std::unique_ptr<T[]>. nullptr_t. Stuff in http://en.cppreference.com/w/cpp/types . Other boring C++11 features like new uses of the "using" keyword.

> Threads: still with pthreads?

You could use C++11 threading stuff, but I'm not inclined to do so.
Thank you for the detailed explanation. I think using these slim web frameworks makes it easy to refactor your code or swap out the framework. I agree with some of the points you raised, but at this stage Martini has some very crucial features like model validations and sessions etc. I am pretty sure Goji gets those as time passes. Great work!
I agree that focusing after the fact has limited appeal, but there are some interesting long-term ramifications of this technology.

Today, much of lens correction are done in hardware, by adding more lens elements, which makes the hardware larger, heavier and more expensive. Some corrections can be done in software these days (barrel/pincushion distortion, chromatic aberration), but not all.

What they've been able to do with this camera is move a lot of those corrections into software, allowing them to use a simpler, cheaper lens with a very large aperture. The constant F/2 aperture is unheard of in a lens with such a large zoom range.

Besides aberrations, there's another issue with using traditional large-aperture lenses: focusing takes time, and it's not always accurate. With the Lytro, I imagine that you can take pictures instantly without needing to focus, and you can get perfect focus in post-processing.

From what I've seen in the sample gallery, image quality isn't great compared to regular camera/lens combinations in the same price range. This camera might not be for everyone, but I really hope the technology continues to improve and eventually become mainstream.
I can tell you some things that appealed to me initially, if it helps - OS native UI, lightweight, nice separation of core and plugin features, core working flawlessly, very extensive plugin ecosystem, customizability, automatic tagging, fast media library indexing.
Hi Harry,

We mail some postcards, but keep struggling with lob's pricing. We order postcards for ~3 cents and can mail them for ~30 cents.

Overall, this is about 1/3 (33 vs. 94 cents) the cost not including our time. It takes us about 20 sec write down the address therefore saving ~$1.80/min so ~$100/hr. We drive by a post office everyday so it isn't much trouble to mail them.

I guess the target market is those that have people filling out postcards for greater than $100/hr?
Here's a few links you might find helpful. They're not specific to Python developers, though.

http://www.golang-book.com/

http://www.golangbootcamp.com/book

http://talks.golang.org/2012

https://gobyexample.com/
Great news, on face value this appears to streamline process of getting funded for startups accepted to YC. On the other hand, there does not appear to be anything but face value going on, which is always a plus.
I can't help thinking that this seems a little bit unfair. While there's a nominal out for "exceptional cases", it seems to me that a company like Stripe deserves a much higher valuation than a company like Tarsnap... not to mention the difference between companies which are joining YC after they're already established and companies which are merely a twinkle in their founders' eyes.

What exactly is the problem being solved by having a standard deal which almost everybody gets?
I'm more excited about the effect this will have in general than the effect it will have on YC companies.

The difference for a YC company is that they don't have to give up an extra percentage as they raise their seed round to cover the convertible note/SAFE that they got from YCVC. With no discount, if a YC company raised at a $10M valuation that 80,000 would be worth .8% of the company - not enough to really move the needle.

The difference for the industry as a whole is that most accelerators are trying to mimic YC to a certain extent, and as YC now gives $120K straight-up others might follow suit. It's really easy to say, "We give you 20K for 6-7% because that's YC does." That seems to be almost industry standard, despite the fact that $20K for 3-5 months can be really hard to live on. It will be interesting to see how other accelerators react.
sama: While you have our attention, you might as well explain the details about the $120k/7% happening in two chunks.

[Edit 1:] Thanks; OK. I had read it as potentially indicating the money came at two different times rather than just from two different sources. All clear now.
This shouldn't need to be the case with TDD. TDD is a tool for evolving the design & functionality. The whole reason for using it is that you don't know what you want beforehand.

With TDD you write a failing test, write the smallest amount of code necessary to make it pass, then refactor. After that you add another test and go round again. You can use this to drive your design for low level unit/model tests.

When writing higher level acceptance tests I like to write the tests in using the language you share with the customer [1]. If you do this then they should remain valid unless the requirements change, they should not be dependent on your understanding of the requirement. To achieve this you can have your tests manipulate a domain model. If you are not testing your model then you need a model for your tests. e.g. something like the page object pattern for webdriver[0].

This means you can sketch out your high level tests rapidly with a stub model, and then implement the mapping to your implementation once you have got the implementation more stable.

Adding a layer of indirection to the implementation like this also means you can refactor your implementation as much as you like without touching the test itself. You may need to modify the mapping between the language your tests use and the implementation as you change the implementation. This sort of test can be valid across major re-writes of the implementation. The tests should also be less brittle. If you change something that several tests interact with you should only need to update one place to fix it.

For integration tests I like to use the same approach, except now the language used relates to the common concepts across the two systems you are testing integration of. The concepts used in the APIs.

[0] http://code.google.com/p/selenium/wiki/PageObjects
[1] Ubiquitous Language http://martinfowler.com/bliki/UbiquitousLanguage.html
While C# isn't my favorite language, I always enjoy reading Eric Lippert's measured take on language design. He also has a particularly good sense for how to step back from a question and reframe it in an insightful way, which makes him a good interviewee.
TDD is a means to an end, not an end in itself. I think some TDDers lose sight of that fact.

The end is well-tested code. Developers often lack the discipline to write tests after writing what appears to be working code. The point of TDD is to force that discipline by making it part of the process of writing the code in the first place.

It's a good technique that many use to great effect, but it is just that, a technique, not a goal in itself.

What matters is that, when you're checking in new code and pushing it upstream, that code has tests along with it. Whether you wrote the tests right before the check-in, or as part of a TDD cycle, is immaterial to everyone else.
What really crosses me about iTunes on OS X is that there seems to be no way to pry the media control keys loose from it, which I found perennially vexatious back when I still had an Apple laptop.
Almost all DSLRs and I assume many point-and shoots have an automatic focus tracking mode for moving subjects. Canon's is called AI servo. That said, most people don't move beyond the "auto" setting on their high-end cameras, so I can understand the quest to simplify.

Autofocus in smartphones will hopefully get better over time, but if your options are an overall superior DSLR or an equally large camera that just gives you some flexible (albeit one-dimensional) focusing benefits then I think the choice is clear. Practice a little more with your DSLR and wait to see if Lytro can be implanted into a better supporting cast of parts at a reasonable cost.
The Mentalist reference, anyone?

In any case, pretty cool project, I'm a bit amazed how far we've come since I've last played with OCRs (and defeated one bad CAPTCHA implementation, still in use at pastebin.com it seems).
I liked his rant on unit testing.

It's not about the # of test or the % coverage. It's the # of test required for a degree of confidence needed to sleep and further develop.
Security Update 2014-002
We implemented a future class that had very similar functionality to a deferred. We used goroutines heavily but channels not so much.

I suspect we can improve go runtime scheduler performance by starting to go through and replace pieces with channels where appropriate.
Start-ups Offer Financial Advice to People Who Aren’t Rich
They're not in any meaningful sense (excepting the rare service supporting encrypted email), but password reset mechanisms are already equally insecure.
Props for cleaning things up. Startups have enough difficulties to overcome, without having to spend time and brain cycles navigating a complex funding structure.
If they valued different companies differently, then it sends a certain kind of signal. The ones with the better valuation would end up getting a disproportionate amount of follow-on funding.

Now, that may be a good thing, but it also might be a bad thing. At a certain point, this is a numbers game, and you want the market to sort things out, not YC management.
If you're trying to fund 30+ companies per batch, having valuation negotiations with each of them is probably a dealbreaker in terms of overhead.
Actually, Goji grew out of a single deficiency in "pat": the fact that it does not have a standard way of defining request context.

The big use case here is how you'd write a middleware that did authentication (using API keys, session cookies, ???) and emitted a username for other middleware to consume. With net/http, you end up with a lot of coupling: your end handler needs to know about every layer of middleware above it, and you start losing a lot of the benefit of having middleware in the first place. With an explicit middleware stack and a universal interface for middleware contexts, this is easy: everyone can code to the same single context object, and instead of standardizing on weird bound variables (or a global locked map a la gorilla), you just need to standardize on a single string key and a type.

I think my ideal world would involve Go providing a map[string]interface{} as part of the http.Request struct in order to implement this behavior, but until we get that, I think Goji's web.C ("the context object") is the next best thing.

There's one other thing pat hacks around: the issue of how to pass bound URL variables to the resulting handler. At first I was a little grossed out at how pat did it, but I've sort of come to terms with it. I still think Goji's way is better, but I don't think it's the reason I wrote (or a reason to use) Goji.
Ask HN: podcast recommendations about startups, tech, science, etc.
I love podcasts but good ones are hard to find. Given that this is a pretty brainy community I'm curious about what podcasts you folks listen to. Topocs of interest include startups, tech, science, space, etc.
While this looks like progress, and a potential path for graphene production, it still seems a long ways off from commercial viability. Diamonds went through a similar hype. It may be technically possible to make diamond with a torch or even peanut butter, but commercially producing large, clean gemstones (rather than grit/powder) requires much more involved processes. In this case, a blender could probably scale up easier, but it isn't "metre-scale sheets of graphene" already possible with CVD.
It's not going to be in 1.3 but the chatter is they might attempt something for 1.4
I have wondered if affluent parents can replicate at least the money part of Y Combinator.

$120K is about the list price of two years of Harvard/MIT/Stanford . With a son who loves to program, I have wondered if sending him to a cheaper school and giving him the difference in installments after he graduates is better than paying for a "name" school. It depends on the quality of the cheaper school, of course. And I think school prestige matters more for investment banking than tech, so I'd be less inclined to suggest a cheaper school to a budding banker.
"Why only registered Android developers? There's a lot more to I/O (and Google) than just Android.."

- Ofcourse, I was just eliciting a contrast to Apple's registration system for developers, Android dev was just 1 use case I'm pointing too.

"What do you mean by "hacked into it"? Do you mean people used wget -r on the developer docs and grep'd out codes to try?"

- Did you read the blog in full before asking this? In the blog, this is what Stan mentioned:

"By this time several HTTP crawlers had been created by individuals looking to secure a ticket to Google I/O ahead of today’s lottery. The crawlers used various tools and libraries to download images, web pages, and Youtube video annotations looking for more codes."
I just use foobar via Wine.

Some hopefully helpful links:

http://www.hydrogenaudio.org/forums/index.php?showtopic=7726...

https://github.com/xeoron/foobar2000-mac
not much to explain--the reason for this is so that YC itself still has no LPs, and can do new things like fund non-profits without being restricted by an LPA. mechanically, the company gets two separate checks form two separate legal entities--one for 20k and one for 100k--but they work with YC for both of them.
Didn't Altman just say that they sometimes do value companies differently?

What was bad about the signaling problem with YCVC was that it probably often had nothing whatsoever to do with the value of the company, and was instead just an artifact of circumstance. But other investors might not be savvy enough (or just might not have the time to think through it) to understand that that was all that was happening.
I'd try something like that, but most of what I listen to is from the common-practice era, so the quantum of content is not an individual file, but a playlist. "Shuffle" therefore doesn't work for me; what I really need is a player whose playlists can contain either individual files or other playlists.

I wouldn't have thought this would be all that outré a desire, but apparently everyone who's ever implemented a music player disagrees with me...
Hi there,

Thanks for the note. We obviously have bulk rates that get competitive when you get to higher volumes. Feel free to contact sales@lob.com if you are interested.

One thing to consider is you are ordering 100s of the exact same postcard. If you had to print out 500 different postcards, each going to 500 different addresses that you had to write, then apply postage to all 500, all of a sudden your time saving becomes hugely valuable. Not to mention you need to shop around for a printer, handle the image and prepress process, etc.

I think you'll find that if you shop around to competitors we are very competitive and in fact beat pricing with other comparable APIs.
> I don't understand what Google's goal is with I/O attendance.

Excitement. Buzz around the Android developer experience.

It is a fun conference. But lets be honest, if they stopped the freebies, would it garner the same interest from non-tech folks?

P.S. my personal opinions. I attended it once and had a fun time.
Heartbleed: the beginning of the end for open source?
It's definitely possible but it seems like it's too early for any ORM "best practices". Check out gorp (https://github.com/coopernurse/gorp) and beego orm (https://github.com/astaxie/beego/tree/master/orm) for inspiration.

In our case, we had to write a lot of ORM boilerplate.
Hefur: a Standalone C++ BitTorrent tracker
They obviously can, the same way that they can offset the dollars by paying for their childrens' living expenses. But $120k is just not a lot of money. The real value of YC is the signal that getting accepted sends to other seed investors.
They're basically miniature water heaters.
It uses JavaScript.
What are you talking about? Can you be a bit more concrete and give a link or another reference to your "source"? You are changing subject of the discussion, derailing it into some allegations against "The West" and its past alleged wrongdoings against Russia, and you are praising Putin at the same time - that really smells like a nowadays Russian internet propaganda, there is so much of this on forums these days, this is what I'm talking about: http://www.theatlantic.com/international/archive/2013/10/rus...
very few people do YC primarily for the money (though, as i said in the post, more money for less equity is definitely better than the opposite!), and whether a company is brand new or 6 months old, we think we can increase their valuation by more than 7%.
There are efforts by Microsoft Research in this direction:
http://research.microsoft.com/en-us/projects/slam/
They have developed several domain specific languages and specification tools for developing drivers. I think similar methods are applicable to protocols.
New video shows how often asteroids hit Earth
factor has opengl built into its repl, so it kind of gives you the mythical modern terminal in one of gary bernhardt's talks.
Previous discussion: https://news.ycombinator.com/item?id=7588369

tptacek:
"
Safe is a wrapper around EncFS, which (a) potentially leaks a lot of metadata and (b) is a weird combination of CBC and CFB. I'd feel better about Truecrypt.
reply
"

Followed by a bit of discussion and a link to an apparently unfavourable audit.
Seems pretty ridiculous to be honest.
Why do nonprofits get less money?
The thought occurs that with sufficient abuse of dlopen(), this could be done in C.
Has YC ever had valuation negotiations? I've never been through the process, but if PG's past essays and comments are to be trusted, they started out by making offers for different amounts of equity from different companies -- but those were still take-it-or-leave-it offers.
Terrible advice. It will be good fodder for illustrating how not to think in some future presentation.

When someone is hiring a developer, they're going to hire for the job. Those sieves might be useful when hiring for the current set of fads, but if I need someone to, say, write for an Azure deployed C#/SQLServer application, the brogrammer toting a Mac or telling me about his Linux skill isn't going to get any attention. If I need an embedded firmware developer, I probably won't much care about full stack or Ruby skills. Game programmer? A totally different set of skills.

So the whole idea that "the only good programmers are those that fit in my box" or "there's no way a Windows programmer could be any good" and the rest of his rubbish, to me as a hiring manager, scream "doesn't know shit about hiring people or building teams outside the tiny, incestuous world he's crawling in".
I predict that this is going to lead to an increase in the number of applicants who have already raised some money (though not a full round).

> Most people don’t do YC for the financial investment—they do it because they want the advice, the help of the network, the benefits of the program, etc. But still, more money for less equity is definitely better.

This is good news for people who've issued convertible notes before YC, since the implicit valuation is now $1.7MM instead of ~$300K. This is great for PR purposes (read: bragging rights), but can also have concrete implications:

I know at least one company that had a sticky situation[0] when they were accepted into an accelerator after already raising money from an angel investor - the investor ended up owning a huge chunk (the majority?) of the company on paper, because the note converted[1]. They didn't even need the money (it was just a standard part of the accelerator).

[0] it was resolved in the end - but it caused extra headache and legal costs

[1] A well-written conversion clause in original note can also avoid this problem (e.g. by including a threshold), but hindsight is 20/20 - I know a number of companies that would have been impacted in a similar way.
Forgive my ignorance, but what does LP stand for?