skysight-inc/HackerNews huggingface dataset:
I'll give my 2 cents (which may or may not be worth it ;-) ).

Mocks are useful when you are doing TDD. At some point you have to build something which will need several collaborators, but the collaborators have not been built yet. You're not sure yet what final shape the design should take, so it's great to build an object, mocking the collaborators. You can then build the collaborators. This allows you to refactor your design easily and quickly when you are in this early stage. It's easy to change the interface of an object that hasn't been written yet ;-) Then when you implement the mocked object, it's easy to write because you just implement the bits that were mocked.

At this point, I tend to replace my mocks with real objects. The reason for this is almost exactly the same reason for using mocks initially (ironically): mocked objects make your design hard to refactor. If I change the interface for an object, then anything that has mocked that interface needs to have its tests updated. This is not hard, but is crappy enough that it stops people from refactoring their interfaces. When you are using real objects all the way through, you often only need to change the production code and the unit tests for the object whose interface you changed.

Real objects in tests are also really useful for documentation purposes. When you use real objects you have to show how to build the objects and how all the collaborators work. Some people tend to think that this is "integration testing" and should not be done in unit tests. I disagree fairly strongly with that idea, but I would be remiss if I didn't acknowledge that some of the anti-real-objects-in-unit-test people are pretty smart people ;-)
Obviously real objects are safer to use as there are ways to confuse yourself with mocks so that you don't actually test anything meaningful.

The main downsides with real objects is: sometimes you have to build the world to make them, and sometimes the real object has some external dependency which makes testing with them infeasible. The first issue is often a sign of poor design and should be rare -- but of course life happens. The second issue is usually not something you can control. In these circumstances, I will prefer to use mocks. In some circumstances you end up having to make mocks of mocks, or reaching down into structures you shouldn't know about. In those cases I prefer to use fakes.

All of these techniques are valid and useful techniques. In any non-toy problem you will have to use all of them to have a good test system. The trick is knowing when you should be using each. That requires some experience.
The Oldest, Coldest Mammals May Be Some of the Best Prepared for Climate Change
My several year old x220t has an i7 and 12gb of ram, don't think i'll be replacing it for at least another 2-3 years
Judging by the ingredients and the cooking directions,
both the peafowl pie and the claret recipes read more like
overdone status signaling by the "spice barons" than anything
like tasteful fine dining. This is the culinary equivalent
of "how to gold-plate the brand badges on your Mercedes,
and then fuse rainbow glitter to them."
Kernel CI
Some argue our hunter-gatherer ancestors had far more leisure time than us. Check out: https://en.wikipedia.org/wiki/Original_affluent_society
That's a fairly significant advantage, especially in my case. Thanks for the advice!
And these days the odds are good that your personal projects or interests may contribute to your career, in which case your job and your interests are hopelessly intertwined. Now you have no way to avoid thinking about work unless you completely drop your hobbies.
Does he actually say anything wrong about Swift's type inference? I only found a spot where he mentions you need to declare types, which I thought was true at least in some spots.
We live in the internet age, and as you say, it's trivial to locate sources. It's therefore considered at best discourteous and at worst peddling misinformation when you don't provide them yourself.

Burden of proof and all that. But thanks for coming through.
The problem is that closures don't usually refer to mutable entities, and most functional programmers are used to an immutable language. The idea that a closure itself is mutated (its return value can change) just because something outside and separate of it mutated goes against the very heart of functional programming, and is not how functional languages behave at all.
Yep because bailing out a capstone company buttressing up an enormous cottage industry of parts makers was such a bad idea.
There seems to be some speculation[1] that the performance increase from Maxwell to Pascal will be larger than usual.

Given that 2016 is supposed to be the "year of VR", it makes (marketing) sense that the GPUs released this year will be designed and/or optimized for that purpose. We'll have to wait and see how that plays out.

[1] - http://www.pcgamer.com/nvidias-pascal-is-10x-as-powerful-as-...
GM's financial arm was GMAC, which, while bailed out during the financial crises, eventually rebranded and IPO'ed as Ally Financial.

The US Treasury made a ~ $2.4 billion profit on a $17.2 billion investment: https://www.treasury.gov/press-center/press-releases/Pages/j...
For the devkit at least, there is an adjustment band that goes from approximately waist-sized down to babydoll-head size, so you should be covered. The only adjustment for eye separation was in software, so YMMV for that side.
I imagine the pent up demand for a consumer launch may exceed their initial manufacturing capacity.
Show HN: RunRun
Classified / sensitive work is often like that. I had a job like that in the Army several decades ago... if I took my work home with me, it would have been a prison sentence if they found out. Note that I'm not talking crazy James Bond cloak and dagger Hollywood stuff, there's a whole world out there of lists of sensitive serial numbered objects and their current locations.

Some production work is like that. You don't have a "real" production network unless the SCADA is air gap firewalled from the rest of the universe for safety reasons, and if its safety critical some of your coworkers will be onsite 24x7 so you can relax when you're offsite.
Simulating the World in Emoji
you could start by checking the issues section Github page, one example for AngJobs

https://github.com/victorantos/AngJobs/issues
Thanks for the feedback. Our goal is to be extremely transparent, make education accessible and affordable, and help close the unemployment gap (especially for recent graduates and young professionals who are struggling with securing steady career-type jobs the most). So the fact that our value proposition got lost in translation means we definitely need to tighten our copy before moving forward.

The tuition kick-back is an extra incentive to motivate hungry job seekers to not only learn professional skills that are in demand and address industry gaps, but actively search for quality job offers that relate to their passions and interests on our platform as well. A common problem nowadays (and something I've experienced in the past myself) is active procrastination. Where you keep learning and learning, but never getting your hands dirty and doing anything. Our goal is to become as outcome-driven as possible.

Does that clear things up? Also, do you have any other suggestions? I'd love to send you an updated link once we tighten and clear things up.
The 2 Types of Engineer
73 Tools, Plugins, and Extensions I Use to Launch Profitable Side Businesses
Fat Bitch (Bad bitch remix)
Regarding the gameplay mechanics, the game is a parody of Dragon Quest, so it intentionally stays pretty close to how Dragon Quest plays.
Surely it reduces the total number of cars, though? The vast majority of cars spend most of their time idle. With this model, you could supply the same total need with many fewer vehicles. Unless GM owns the whole fleet and Jacks up the price, losing that much demand strikes me as pretty rough.
Foveated rendering would make 4K and 8K easier to reach.

Also, with VR, you can just upscale. You don't need to render a 4K/8K image to eliminate the screen-door effect.
For retro gaming, also look at the OpenPandora and its soon-to-be successor Pyra.

https://pyra-handheld.com/boards/pages/pandora/
This underscores the notion that functional programming is ultimately about immutability, and all the idioms expected by a truly functional language are really a result of how it handles state more than anything. A closure is usually expected to close over values, and the idea of a "variable" doesn't really mean the same in a truly functional language, which is where all the confusion and the pain points stem from.
I can't see the opportunity for them, on the other hand I can see the threat, if autonomous cars become ubiquitous then why would you bother owning your own?

Also if rental becomes the dominant model then customers aren't going to worry so much about those expensive extras where car manufacturers make their profits.
Utter nonsense, pure clickbait froth. The watch is a great v1 product (read some iPhone v1 reviews and compare) and the new model should be announced soon. The new atv is FANTASTIC, and at $149 they will sell a ton of them. And the iPad Pro is getting rave reviews, though the price point means I think it'll be another generation before the new stuff makes it into the cheaper models and makes a big bump in the iPad numbers.

I'd say apple is poised for a great year, unless the world economy goes pop, which might well happen but can't be helped.
The Coolest Business Plan Ever (2008)
Ciao, my fellow Italian :)
I know the feeling. I've seen this countless times, with raw tomatoes, raw lemons (!!!!), and a few other things.
I think many people would prefer to sleep, watch movies or read a book than talk to someone for hours in a car.
The author is one of the creators of Erlang which is a language that takes pattern matching above and beyond what Swift does (as well as Standard ML/OCaml/etc).
From an 1994 Famitsu article: https://starmen.net/mother2/publications/

Itoi refers to the battle backgrounds jokingly as a "video drug". This is noteworthy because the dummied-out Video Relaxant item in EarthBound was originally known as "Video Drug" in MOTHER 2, even though the item was dummied out in that game, too. So apparently that's what "Video Relaxant" refers to: the battle backgrounds.

The battle backgrounds were all made by one guy, who Itoi says was a real background graphics geek. The guy spent two years doing nothing but working on the backgrounds! He says he thinks there are about 200 different ones.
Well, in France, I've been cheated more than once (often in Paris), had very rude service, I often end up having taxis that fail to show even though I booked and as I mentioned taxis are not at the taxi stand from the Train station or the airport despite saying they would be there when I called the central. They also refuse passengers sharing a taxi (which shouldn't be something they're allowed to refuse).

In Lisbon, in Portugal, I've taken taxis and Uber often enough to compare. Very often taxis refuse to use the GPS (even if they have one) and take much longer routes than they should (and pretend not to understand my Portuguese when I correct the route they're taking).

I agree that in certain countries, Taxis usually provide good service (Japan for example and China to a lesser extent) but for now Uber does introduce much needed competition in some countries that really need them.

Also, unless I'm mistaken, Berlin has competition, Uber is available there. In Paris, the taxis only started having an App after Uber came. So, at least, in Paris, it definitely contributed to improvements (I'm not sure in Berlin if the app came before or after).
> You don't have to forego all of the features of the IDE just because you prefer to do UI layout in code.

I don't understand why you would do your UI layout in code if you can avoid it. If someone ever joins my team or inherits my code base, they're now partly responsible for maintaining the UI. Xib's and storyboards help with maintainability, legibility, and drastically lower the number of lines of code. The author even says:

> Find an example program that works then reduce lines until I can reduce no more making a minimal example that works - then understand every line

If you care about the line count, then why are you doing all your UI in code?
Sadly I think you are right, although the French do have an interesting approach to this.
How to Hack CES
Touch screen panel, make options available to adjust the route taken? Doesn't seem like a hard problem to solve, especially compared to all the other problems that need to be solved to make autonomous cars a reality.
You get it. Some times the automotive side takes a backseat to the financing.
There's nothing special about software. There are tons of finished software projects, many of which I worked on. There are probably more finished software projects out there than projects currently under development.
TorBlocker Hall of Shame Part I
Your 4 stages are right on. I've been through all 4 and can say you hit the nail on the head.

And thanks for calling me "englightened." :)
The Rift most certainly has head tracking - perhaps you're getting confused with Gear VR, which lacks positional tracking.
Why do they have to be so secretive of their pricing?! Why can't I see the price now so I can consider if it's worth it or not?
I'm waiting for the Vive, or at least a bunch of a reviews of both platforms. I trust Valve a lot more than Facebook to deliver a gaming device that won't be caught up in strange legal requirements, social media promotion, lock-in, platform exclusives, and potential privacy exploitation.

I also feel that the Valve team has been working on the non-sexy issues like controls, motion sickness, advanced eye tracking (rumor?), and head tracking as opposed to the narrative that comes out of the Rift which seems to be centered on "OMG RESOLUTION AND FPS!" Obviously, gamers will lean towards the latter but I suspect work on the former will be more important.

I'm also concerned that this stuff will look great, but will require a $2,500 gaming machine to make it all work right. I just upgraded to a Nvidia 950 and from what I've read that's really too weak to do 1080p per eye at 60fps on anything coming close to AAA graphics. I really don't want to be forced to deal with PS3-like polygons and textures for the 3D effect to work correctly.

I guess I'll wait and see. I'm certainly not doing any preorders. I'll let the early adopter crowd figure this stuff out. I'm also waiting for magic leap to produce an AR product, but don't expect that to happen anytime soon. I am somewhat concerned that AR could strangle VR in the cradle.
The recommended mic is probably ok, but for far field audio, or even slightly noisy environments, a microphone array enabling beamforming (like on Amazon Echo) would be much better
Did they say they didn't care, or did they say they needed to focus development? There is a big difference between the two. If they were making a game in Unity and didn't release a Linux version, that's one thing. If they're making a brand new specialized piece of hardware and have had numerous delays and just need to get a product out the door... well it's a little more understandable that they would focus on one platform first.
The Product Engineer
Can we stop posting WSJ until the paywall comes down? I know there are work arounds but it's useless to me to click this article and realize I need to do the ol' "Come From Google" trick.
One thing I've learned from using immutable, functional languages (Elixir) is:

"Don't tell your computer what to do, tell it how to transform data"

While it may seem obvious, it's been a revelation for me and it has totally changed how I write code, and especially how I test it.

In the example they read some command line arguments, read an input file, and process it. The natural instinct it to implement it exactly as it reads.

You can't do that on a functional language, you need to reframe it into:

1) Transform command line arguments to some symbol representing the action to execute.

2) Transform a file name into a string representing the file contents.

3) Transform a string (file contents) into some data structure generated by processing it.

For example, in an Elixir pseudocode:

command = parse_command_line(argv)
case command do
{:process, file} ->
contents = read_file(file)
output = analyze(contents)

_ ->
print_usage()
end

Now each of these functions can be tested by itself and doesn't require mocking. They are just pure functions transforming input arguments into something else.

But there's no error handling: Elixir would solve that very elegantly with both pipelines and pattern matching:

parse_command_line(argv)
|> read_file
|> analyze
|> output_result_or_error

Each of these functions accepts and returns a tuple of {output, error}, and, if "error" is set, we just don't do anything but pass it down the pipeline. Basically the Either monad from Haskell.

Errors-as-values are much better than exceptions for this exact use case. Exceptions are hard to test, to replicate, to inject, while in this example you can just test error handling by.. passing an error value to the function.
IPv4.1 is a thing, and has been supported in the Linux kernel for some years. It basically adds on a extra octet to IPv4, giving you 40 bits of address space rather than 32.

AFAIK this hasn't and will probably never make it out of experimental status.
3D graphics didn't really "work" originally either. 1920x1080 and 2560x1440 used to seem like insane resolutions. Gotta start somewhere.
That was the initial working party looking at what came after ipv4 not the RFC - by that time the damage had been done.

Your documents are later ones to the initial one I saw which was all academics plus one guy from bell labs.
Both the Vive and the Rift have head tracking. Positional head tracking has been around since 2014.

The Vive has "room-scale" tracking that lets you walk around a large room-sized space, and includes hand controllers that are also tracked in the world.

The Rift should support "room-scale" with more cameras, but is not a main focus/supported use case yet for Oculus. The Oculus Touch is like the Vive's tracked hand controllers.

They are far more similar to each other than most people realize.

It is unlikely to be obsolete in 1 year. The update/release cycle for VR headsets (at least for Oculus) is expected to be somewhere between consoles (6-8 years) and smartphones (1 year).

Pricing will be announced on Jan 6 morning and should help you decide.

Note: I work full-time developing VR software and own every VR headset.
Why didn't we expand IPv4 to take 64 or 128-bit addresses and instead created IPv6?
Indeed. Though it unfortunately was widely practiced at one time, the Catholic Church now specifically prohibits money changing hands in exchange for indulgences. Indulgences are still part of Catholic teaching, but can only be obtained via some "good work" such as prayer, scripture reading, etc.

The post does misrepresent what an indulgence is in Catholic teaching. But the indulgence-sellers did that, too.
Never noticed that. Brilliant addition!
> It is impossible to quantify what "could've been" without NAT.

It is, because I have lived with multiple levels of NAT before and without NAT (with both public IPv4 and IPv6 addresses) nowadays. The ability to do P2P is truly amazing. Now I don't have to wait with the abysmal download speed when the server is highly congested. Also amazing is the capability to ssh into machines without any configuration or begging the network administrators who are nowhere to be found.
On a risk-adjusted basis, that's a pretty mediocre return.
> Which language does this differently?

Languages with immutable bindings (the author is one of the original designers and implementers of Erlang)
Yet the rate is a fraction of what it was 30+ years ago. While the wealthy may pay the "majority" of taxes, I thought it was common knowledge that the uber wealthy pay proportionately less of their income in taxes then the lower and middle class -- which is inequality defined.

I mainly just don't believe in vagina lotteries
Note that they're also using spy techniques, phone taps, security cameras, and audio bugs.
It's kind of funny to think about --

Oculus, first to "invent", (almost) last to market.

Given all the hype and big names that joined the Oculus team, and even the sudden sell-out to Facebook (leaving most of their Kickstarter backers feeling used), Oculus has yet to produce a consumer product.

At this pace, they're on track to be 3rd to market (well, "tied" if we count pre-orders being taken at CES), even though they were "leading the way" just a short time ago.

In addition, from a consumer perspective, their "finished" product looks almost identical to the "developer" previews they shipped years back...
I've given some thought on what a safe browser for tor would be like. Since it's hard to come up with the list of all possible information leaks, I suggest not attempting to do so. The system goes like this:

1) You open a new tab in your favorite browser. At this point, a new instance of a read-only, lightweight, virtual machine is resumed. The virtual machine doesn't know about tor, but its entire network traffic is torrified by the hypervisor.

2) The tab now displays a VNC connection to the virtual machine you just spun up.

Now, it's possible that some things will leak through the VM, but it should also be easier to control than an entire browser running in your OS. For example, enforcing that the VM image be read-only ensures that once a tab is closed, all sources of history are gone... no cookies, no history, no browser settings. You only need to whack one mole.

Yes, there might be exploits that jump out of the hypervisor, but these aren't as common as browser exploits and you would need both to jump out.
OS X Universal Libraries but Not Headers
Thank you very much for your feedback and the pointers!
In each of those cases, none of those occupations can be really be interwoven into your life as tightly as a job where +90% of your labor is done via a laptop computer.

Software development is not a special occupational snowflake, and I'm going to guess that you've never been within the property boundaries of an actual farm, let alone actually done farm work. Your job is interwoven into your live so much because you choose to allow it, and don't know when to say "no" to your boss. Close your laptop. There, work's over. Farm work? Yeah, well, those fences aren't going to mend themselves.

You don't live at the office, do you? Not metaphorically, I mean literally sleep there. No? Guess where the farmer sleeps? At work. Every day. Extrapolate from there.
It depends.I am a consultant and have worked for many different companies on many different projects. In most cases, people say "yes" without even being asked by their bosses - out of (imaginary) fear of losing their jobs. We are fortunate to work in an industry where, even in a stagnant economy, finding another job is not a huge problem, should it come to this in rare cases (although looking for work is never fun, I know).

Please man up and don't do it to yourselves and to other people.

That said, outside of paid work, I often work/read up on stuff which benefits ME, whether it is professional or personal development.
No thought about how the migration from ipv4 to ipv6 to be handled is the main one.
And for those who says memory, I answer that it is easy to make a 32 bit CPU with a 64bit memory adressing.

Except when it isn't. How do you propose to calculate 64bit addresses with a 32bit alu?
In fact, he expands on closures in an earlier post (about Elixir):

Proper closures should only contain pointers into immutable data (which is the case in Erlang) - no pointers into mutable data. If a closure contains a pointer into mutable data and you change the data later you break the closure. This means you can’t parallelize your program and even sequential code can contain weird errors.

http://joearms.github.io/2013/05/31/a-week-with-elixir.html