skysight-inc/HackerNews huggingface dataset:
I am not dismissing Basecamp. I am just saying that in a large portion of the software world, applications are waaaay more complex than normal rails apps. And in that context, TDD makes sense if only to manage complexity. Even if you are not Facebook, but say Airbnb. If their tests are not fast enough and they cannot trust them to make decisions, they wouldn't be able to deploy in a reasonable time. And when slow tests lead to infrequent deployments, that's when the real problems begin. (Airbnb is an arbitrary choice which came from the top of my mind, not anything specific)

My gut feeling is that >50% of software development happens in those complex apps and not rails apps. So dismissing TDD is just yet another extreme viewpoint, which many people will unfortunately take for granted.
My least favorite example of when tests damage an API design is with dependency injection. There seems to be very little need to resort to dependency injection as a way to create a good API with easy to understand architecture many times, but dependency injection gets abused because it makes testing easier. You can supply your API with mock and stub classes at every turn if you use dependency injection everywhere, but the consequence is a more difficult to use API that requires the programmer who uses your API to understand more arbitrary and unnecessary implementation specific details.

For example, maybe I just want to open up an encrypted TLS TCP socket to a server. From a user perspective this could be really basic, you provide a library with an API that you provide with server address, port and handlers. It could be as simple as a few lines of code. But the dependency injection version of this would require maybe require creating an SSL Factory, which requires a 509x certificate provider, which requires a certificate storage locater. Then instead of an address you must provide it with an ipaddress factory method and a protocol factory which requires a list of available protocol implementors. Then 200 lines later you want to actually manage your connection and you must provide a connection manager and a byte buffer which itself involves tons of cruft.

Sometimes dependency injection is like a person walking around with their organs hanging outside of the body. When two people want to make babies they don't have to know low level biological mechanics of how sperm sends signals to a ready to be fertilized egg. They don't have to read and learn pointless documentation. They just insert the thing and everything usually works although under the hood it is maybe one of the most complicated processes in biology. That's how an API should work: making complicated things simple.
The most amazing achievement of the computer software industry is its continuing cancellation of the steady and staggering gains made by the computer hardware industry.

— Henry Petroski
I'm curious about this. These are exactly the types of "fixes" that people are willing to pay for with the OnePlus One
No because you bought them all at the same time and washed them all at once. And you did the same activity each day resulting in the same wear for each sock. If you're that OCD, you would.
Shit. It's bad enough that I turn 50 this week, but I was born on BASIC day?!? Sigh.
In addition I find the controller to be one of the worst parts of Rails. The input comes in form of some magical methods that are available (params, request) and the output happens partially by setting instance variables and partially by calling render. How could anyone ever think that's a good idea?
You have a contract with a third party to receive your mail. I don't think they care about that.

Sounds like Outbox wanted to divert mail being delivered to one physical address to another for individuals.
I believe Power has long been a bi-endian architecture. I gather it's a switch thrown (in either software or hardware) at startup.
I'm not using Rails (nor Ruby for that matter) so I can't comment on that part, but I found the repository pattern to be really useful. Using it with an active record is something I've seen other people do, and at least it gets the active record calls out of the controllers. It's not an optimal solution of course, but IMO it still beats plain active record.
Who goes on such a site? Jobseekers. Which jobseeker has an incentive to retweet a job s/he finds interesting? Usually YOU want the job you find interesting. Why retweet it when this makes it harder for you to get the job?
Fiddler is proprietary software. Just like I won't use Chrome, I won't use Fiddler either.
I was unaware that people were actually trying to unit test controllers. That to me just seems like a recipe for endless frustration. Mock out a web request? Please don't.

Everything I've ever read about Rails refactoring indicates that your controllers should be skinny, implying they don't need to be tested, push all complex logic out into helper functions, lib classes or models and unit test those.
Hey there, do you have any place to direct me to look for mediators or malleable predictors of life outcomes for young men with schizophrenia?
Nuve - http://nuve.us/ - Austin, Texas

We’re a venture-funded startup with explosive growth and early stage startup culture. Our combination of patent-pending hardware sensors and software monitoring portal helped us win IBM’s SmartCamp competition and gain acceptance into Austin’s Capital Factory incubator. Our hardware and software teams are small, focused, and have plenty of juicy problems for you to solve.

We currently have two open positions:

* Electrical Engineer

* Senior Software Developer

An ideal candidate:

* will excel in a small, focused, goal driven team

* will enjoy learning whatever is necessary to get the job done

* will communicate ideas with clarity and precision

* will write clean, elegant, simple, testable code

* will commit often, perfect later, publish once

* will provide meaningful and constructive feedback

* will take pride in their work

* will want to work with others who do the same

If you are interested in being one of our first 20 employees email me at crumley@nuve.us
Cash, the Core Infrastructure Initiative, and open source projects
Note that you can't remove reliably the suggestions from the Omnibar bar, used an "embarrassing" website in non-anonymous mode?
Too bad for you, because your wife can see the suggestion..
> 1 - If memory management is a serious problem for the software you work on, I've never found the boost library lacking. This seems like the main selling point for RUST.

When use-after-free becomes a security concern that commonly leads to remote code execution, as it is for us in the browser space, it becomes very apparent just how inadequate modern C++ is at the task. Everything works fine, the tests pass, people use it in production, and yet all the time someone discovers some way to make the stars align to produce a use-after-free bug. This has happened over and over again, despite all the smart pointers and modern C++ techniques.

The fact is that modern C++ just isn't memory safe, and after digging deep into the problem to try to solve it with Rust I'm convinced now that it can never be. The language just has too many core features, such as references, iterators, and the "this" pointer, that cannot be made memory safe without sacrificing backwards compatibility.
That's actually the premise behind The Incredibles and Hancock: the services offered are way too expensive for the city to afford.

But I agree with you, there should be more of that.
Sperner's Lemma is probably my favorite mathematical result. It is easy to explain, and pretty easy to prove, but it has a higher than average number of "aha" moments along the way. The mathematics is not too intimidating - probably the scariest thing is the generalization to n dimensions, which requires induction. It is also fun to explain the connections to Nash's theorem and so on, as invoked in this article.
The phrase "premature optimization" gets thrown around a lot, but it seems to me we'd avoid this whole discussion (and benchmarking, and testing) if we could safely and easily inline the assembly version of the function. After all, a machine instruction is just a library function burnt into hardware.

Maybe a better term is "premature nonportability".
https://www.mozilla.org/en-US/firefox/all/ - Halleluya! Finally the 64bit builds for Linux are listed.

Every god damn time I had to install I had to go in ftp.mozilla.org ...

About 5 years late, but better than never. :-)
Right - but how do those first nodes "find" one another from a technical / networking / communication standpoint?

Edit: I'll answer my own question.

Apparently the current method is to use DNS seeds. Known relatively-permanent node addresses are hardcoded into the client software in order to enable initial connectivity to the network. Once they achieve this initial connection, they're able to obtain additional addresses from the nodes already operating on the network.

After this initial network connectivity is achieved, the addresses are saved, so upon relaunch re-connect attempts are made to the database of previously found nodes. If these fail, then you fallback to the DNS seeds to start the process over.

IRC used to previously be the communication network used to initiate the client connectivity, but this has been deprecated since the network is now more self-sufficient.

https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery

http://stackoverflow.com/questions/19956088/how-do-two-bitco...
Traceable through two blockchains, lose.
Looks nice, good luck with it.

Couple of points:

Browser navigation does not seem to do much (I click on UK then back arrow and remain in UK, have to reload page or click on All to get back to All).

Esc to close the popup when clicking on an ad would be useful. (Naturally try to do this, and got stuck with a swirly at one point, close button didn't appear. Reload to fix).

It's a difficult one for a startup job listing, but some indication of expected Salary or perhaps even an indication of equity / salary options would be good.
No offense, but did you bother to research Marvel _at all_ before asking this question? popapp app's landing page makes it very clear the workflow is physical paper -> photo -> storyboard, whereas Marvel's landing page is very clear their workflow is PSD/etc. -> storyboard.

Sometimes I feel like HN asks "how is this different from X app" without doing any research, just to be lazy.
That was too much fun for such a simple game! I just finished with 50k in the bank and a $15million valuation. If only life were so easy to game.
Bitcoin support on Bountysource
The Latest Chapter for Self Driving Cars
The Customize mode seems fairly flexible, for shuffling things between the three fixed-position bars, ie. the menu, navigation and bookmarks bars (probably the tab bar as well though I don't use tabs myself).

I wonder why you can't just add new blank bars, at either the top or bottom, to fill up to your heart's content with that same Customize mode. That would undo most of the need for things like Status-4-Evar.

This hasn't changed in version 29, by the way. 'Customize' in version 28 also let you juggle controls around any of the menu, navigation, bookmarks or add-on bars pretty generically. In fact, for all the fanfare about how revolutionary a change this new UI is, the only real functional difference in it I can see between 28 and 29 is the removal of the add-on bar, ie. the only one of the bars whose fixed position happened to be at the bottom, rather than the top.

(Of course I don't really believe that this release is specifically intended to troll people who like having some controls at the bottom of their screen, but I must admit that if you did want to do that, then this would be a good way to do it. I'm sticking with 28 until Status-4-Evar catches up. Also thanks for the suggestion of the "Addon Bar" extension elsewhere in the thread, seen and noted.)
> Rust will never have an Intel-compiler.

Yesterday, Intel announced a project combining a clang frontend with icc's backend. [1] The backend takes LLVM IR, so hopefully Rust's LLVM IR output could be run through it.

[1] https://news.ycombinator.com/item?id=7663462
You're the product being sold here, but you pay GBP 600 for an Android flagship phone, and more if you need a contract.
Dropping into assembly and making direct system calls were exactly the sort of things that were of BASIC's time. These are operations oriented downward toward the layer of Von Neumann architecture.

It's virtual machines and garbage collection that are the stuff of today...and of course yesterday as well. But the reason for their popularity is that a quest for 7ever more sophisticated abstractions is the impetus behind most programming languages. It's

39 -> JMP -> GOTO

that gets us multiple dispatch. None of which is to say that languages with REPL's or even only with REPL's [aka interpreters] aren't a great tool for learning...better than IDE's in my opinion...then again so are text editors, but that's a story for another day.
This is Ubuntu Gnome. I'm currently Using Ubuntu 14.04 with Gnome 3.10, but afaik it works on Ubuntu 13.x and GNOME 3.x.

Not sure about the Unity interface as I have limited experience with it.
The Common Mistakes of a Marketer
Just make your own custom search keywords (right-click site's search box>Add a keyword for this search). Uses no autocomplete, and is much more time-saving than a separate search box.

I have around 30 set up, from Wikipedia (w) to Google Image Search (gis), etc.
Spinning this around on you: I worked on a project where swapping data stores around wasn't common because of tight coupling with AR. We considered swapping data stores around for different and evolving use cases and never did largely because we had so much code that we felt was tied up so tightly with AR that it would have been very expensive to swap. I think it definitely decreases flexibility, but that it's pretty hard to know if you want more flexibility ahead of time.

Pretty much all of these pattern discussions seem to be this way to me - "just do it the simple way! YAGNI!" versus "crap this one time I did need it and it was difficult to change by then! Maybe I should design things more flexibly from the start next time!". It's pretty easy to get burned going either direction, and depends a lot on things like what the project is, what organization is building it, and the level of success it ends up having. The closer a project is to a simple-CRUD, small team/unproven-company, prototype with limited success, the more sense YAGNI makes, and the further from each of those criteria a project is, the more it makes sense to design for more flexibility.
I guess it helps if you're developing an MVP and you need to show something in a matter of days/weeks. But beyond that, I never saw the appeal of Rails.
The fact that Android staff later fixed the bug in 4.4.2 implies you are wrong.

The carrier is not the customer in Google's market. The advertiser is. I thought that was pretty clear. The carrier merely delivers product.
Thanks! This is really helpful. I'm new to website development. I've been focused on our business plan, but someone suggested we create a landing page. From your suggestions, it sounds like a "landing page" can be more like 3 or 4 web pages that give a summary of what is to come. For instance, the first page would be a over-all summary of what the entire site will be and then there would be separate links for 1.) buyers, 2.) sellers, 3.) specific features that are what make us different, & 4.) a pricing page. Would this be correct?
A Link Between Fidgety Boys and a Sputtering Economy
You should keep in mind that the use-case for Firefox is that the default install focuses on the general user, and add-ons are intended for people looking for something extra/different. You can get the add-on bar back easy by grabbing the 'classic theme restorer' add-on. It allows enabling-disabling a variety of features.

I can't say I agree with all of their choices, but I'm running 29 right now and I don't feel like any functionality or customizability is lost from the last version. If you're not looking for the defaults you can change pretty much everything you want with a few add-ons and about 10 minutes or so of configuration.
My favorite introduction to the subject of fair division was Ian Stewart's "Your Half's Bigger Than My Half!", Scientific American, December 1998:

http://www.whydomath.org/Reading_Room_Material/ian_stewart/y...

It's an interesting, accessible, practical application of mathematics and logic. Fun for the whole family!
Because they'll get sued, the government will force them to retire in hiding, they'll get jobs they hate, get bored, take risks in maintaining their secrecy in an attempt to relive the glory days, join up with a mysterious organization without thinking it through, destroy half the city to save it, get popular again, and repeat.
About Australis:

Good:

* Menu bar is hidden by default on Linux and can be opened with Alt (that didn't work before).

Bad:

* Menu ("Firefox") button is still not movable for no obvious reason.

* Reload/Stop button is now forced to be in the URL bar (before users had a choice where to place it). That's pretty annoying, it's very uncomfortable when Back/Forward and Reload buttons are so far apart.

* Bookmarks button is now outside the URL bar and looks bulky.
How handheld breathalysers could instantly diagnose cancer
I don't understand why he has to equal TDD with the mockist approach to TDD without clarifying he is talking about the mockist approach and not TDD in general. Pivotal Labs for example is obviously a huge proponent of TDD, but has been historically been opposed to hesitant towards true, isolated, heavily stubbed and mocked unit tests.

That makes me wonder if he just doesn't have a differentiated enough view of TDD or if he omitted that on purpose to get more attention. I am also not sure which answer is would be more disappointing.
8 bit Philosophy
> Even a language like Rust that may have the linguistic features to be blazingly fast will never close that massive gap in historical optimization. Rust will never have an Intel-compiler.

That's most probably false: the current self-hosting implementation have an LLVM backend. So it has back end optimisations covered. As for the front end, Rust's cleaner semantics will make many optimizations easier.

Plus, it's not like the historical gap couldn't be closed by reading the gazillion papers on C++ optimization out there. Copying a known technique is much faster than developing it in the first place.

Maybe Rust will end up slower than C++ anyway, but it won't be the compiler's fault.
How do I change it back? I can't seem to reposition it on the address bar :S
Are you able to find consistent work building web applications with Haskell? It seems that many organizations are reticent to build on those sorts of technologies (not quite sure what else I'm including - maybe OCaml?) for very rational reasons - it is hard and expensive to find employees who are capable of being productive in them.
Yep, it's a fairly complex (as in, I don't understand it fully, although I've read a little) interaction of subsidies, varying prices, and the same of standby capacity (i.e. not actual capacity, but the ability to ramp up to generate x GW in y seconds should it be needed, to cover spikes - generally by gas power stations, which are able to vary output power far more quickly than most types, and by pumped storage, which can release up to a certain amount of energy per day for very short, large spikes, for example one one caused by people putting the kettle on when popular TV shows finish).

Most of the trading is automated and humans aren't involved, as prices are being constantly renegotiated as demand changes, and supply may also be throttled down or up for fuel-consuming non-nuclear sources (nuclear runs as close to max output as they can due to running costs being consistent through output levels, and fuel costs being negligible in any case) to maximise profit - generally by increasing output as prices rise, but for wind and other renewables, sometimes output is artificially limited as a way of manipulating subsidies, which can actually be more profitable for the operators if less power is sold under the right grid conditions.

All the data is open, which lets some interesting sites appear, such as http://www.gridwatch.templar.co.uk/index.php . Mousing over the source numbers shows a brief overview, and the site also includes international purchase/sale data.
Thanks for the feedbacks! Very much appreciated :)
I'll look into the bugs you mentioned

I'm not so sure about the equity/salary part. Angellist does this but the ranges are often so wide (like $80k-$140k) they don't really seem relevant to me. We'll definitely check if it makes sense :)
Have you read the article? It's basically all along this problem...

tl;dr: Yes, that is intellectually dishonest, which is a huge problem. Scientists have two options: (1) accept parapsychology as real, or (2) accept that the "scientific method" (in social "sciences", at least) is insufficient. The problem seems to be that Bem (the author of the study) did almost everything "right", and if we increase the bar of scientific proof so that his study is excluded, so are many others...

The reason why parapsychology is excluded: the real world doesn't support it (noone is earning huge amounts of money on the stock market using psi). However, the real world often doesn't support very small effects (e.g. Einstein's relativity). Fortunately for physics, they can afford to make their scientific methods much more rigorous, so they can study large effects as well as exceptionally tiny effects. Social studies can't, for the time being.
If it is official, they should verify the author.

(Or admit that the notification that the author is not verified is meaningless)

edit: Also, on my install, the version there makes Firefox 29 lock up when I click on options. But my profile is pretty ancient.
I'm using DigitalOcean, they have SSD storage
I think you're just agreeing with him. Arch will stop functioning seemingly 'just because' unless you're an expert who knows everything that goes on in his system. Is that what you want to hear?
People are defending the 11" Macbook Air with that resolution, but you make a fair point.

I have the 2012 model, and it is an absolutely superb machine, but the lack of vertical pixels is its weakest feature. Reading documents is far from ideal: it is distracting to read a wide-columned pdf with a relatively small number of lines on the screen, and the screen isn't quite good enough to allow much zooming out. There is a noticeable difference in the usability of the machine when my eyes are tired. A higher-resolution screen would presumably help on both counts.

Because the software is generally well-put-together and the touchpad is excellent, the resolution is not so much a problem for actively using software, creating documents and so forth. But scrolling around and zooming in and out has an overhead, which again, more pixels would reduce the need for.
There's a lot of guilty surrounding the topic of tethering if the data plan doesn't allow it...
Little-Endian mode for MIPS processors was sometimes called SPIM, so I guess little-endian POWER is REWOP. I never heard little-endian SPARC referred to as CRAPS, which is too bad as I thought that was pretty funny.
This is unsettling. What other 'undesirable' businesses or people will have their accounts closed?
Except Tree Style Tabs makes Firefox 29 look very bad. For some reason, it causes the top part of the chrome to be two shades of gray. The area with the title, and minimize maximize buttons, its one shade, and then the area with the address bar and buttons is another shade of gray. With a harsh line where the two areas meet and are a different color.