skysight-inc/HackerNews huggingface dataset:
Things to try:

- The "no crafting challenge" mod, where you can't build anything by hand, only in factories. You get a factory to start with in order to bootstrap. Playing in this mode actually taught me that I had been relying on hand crafting way more than I should have -- it turns out that automated crafting of a lot of the stuff you normally hand-craft can actually speed up the game a lot. (Incidentally, I tried to create a "no inventory challenge" mod, where you start with a mobile roboport train car and have to use robots to build everything, but I found the modding API wasn't quite powerful enough to make this work well. But it worked well enough to allow me to conclude that this would be a pretty interesting mode of play if it worked.)

- Use a mod that makes resources spawn further away, so you have to build more trains. Trains are like a game in themselves.

- I hear people talking about "bob's mod" a lot, which apparently adds a bunch of new resource types and things to build with them, basically multiplying the game complexity.
Technology and Underrepresented Minority Groups: The Great Equalizer (Part 1 of 3)
getting a 500 with the given link: https://i.imgur.com/w8cPBa2.png
This content is widely discussed 2 years ago: https://news.ycombinator.com/item?id=8315996
Government has a lot of paperwork.
Very cool! I appreciate the details :-)

I ran a quick with the tool (xzminidec) that comes with XZ Embedded.

gcc -O3 -s -D XZ_USE_CRC64 -o xzminidec xzminidec.c xz_crc32.c xz_crc64.c xz_dec_stream.c xz_dec_lzma2.c
du -b xzminidec
19472	xzminidec

ldd xzminidec
linux-vdso.so.1 (0x00007ffe9905c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f105c83b000)
/lib64/ld-linux-x86-64.so.2 (0x000055d818666000)

du -b enwik8.zip
36445475	enwik8.zip

du -b enwik8.xz
26375764	enwik8.xz

time unzip enwik8.zip
real	0m1.023s
user	0m0.948s
sys	0m0.068s

time cat enwik8.xz | ./xzminidec > out-xz.txt
real	0m2.598s
user	0m2.504s
sys	0m0.136s

cmp enwik8 out-xz.txt
(empty)

unzip is faster but the xz decoder is very tiny and the compressed input file is smaller.
Light switches that can fucking crash!

Now I'm living in the future.

I keep waiting for this iot/we put a chip in it/etc to produce results that are an improvement...
If anything, you are condoning their behaviour by continuing to use their products. The rest of the Internet shouldn't have to deal with malware-ridden devices just because their owners choose to use an OS but then refuse to install its security fixes.

You're definitely not wrong about any of that, unfortunately. This, on the other hand...

Nobody is condoning Microsoft's behaviour by saying you should apply the security fixes.

.... I'm not buying. The fact is that Windows Update is no longer any more trustworthy than SourceForge or any other infamous source of unsolicited bundled adware. Another, related fact is that I can't be bothered to do the necessary research to tell what is a genuine security fix versus yet another "mistake" that results in Windows 10 ads (if not the OS itself) appearing on my PC the next morning.

For some reason I don't understand, Nadella is getting away with doing things with Windows that would have gotten Gates or Ballmer crucified. Every knowledgeable user who doesn't condemn them vociferously for attempting to use an important security update service to force-feed a major OS upgrade is part of this particular problem.

For literally decades, the best practice has been, "Never upgrade an existing Windows installation. Always do a clean install." There were many very good reasons for this advice to be given to nontechnical users. Now, all of a sudden, this advice is apparently obsolete because... because it's inconvenient for Microsoft's marketing efforts?!

Sorry, no. Not buying it. Microsoft is no longer allowed to exploit my machine at will, under the guise of security or any other motivation. Believe me, if I could afford to ditch them entirely without cutting my own throat, I would. That part is my responsibility.
I've been reading some court decisions regarding technology lately and they're not impossible to follow.

It's not all legal speak. There's some reason in judgements and magistrates are generally verbose in their statements.

I'm not a lawyer either but I think any reasonable person could see that forcing Apple to give away its source code and signing key would present Apple with some significant security burdens.

It's very similar to what Apple was previously arguing, except the DOJ just made Apple's case stronger because there's the added element of risk that the FBI could now be the ones to let the modified signed software get out into the wild.

In the former situation, Apple was in charge of security of the back door, so there was only one escape hatch, so to speak, and they're the experts (which the FBI Director has noted many times). If Apple were to hand over the source code, the FBI's systems become another target of attack by hackers.

It was a really dumb statement by the DOJ. They intended to sound commanding, but they just weakened their case and helped Apple.
Anecdotal but, I think for someone who truly enjoys driving and looks for the little things there's enough to notice.

I drove a '99 VW until it got wrecked. I picked up a '99 Acura afterwards and immediately could feel the difference in clutch & gearbox. I now drive an '03 VW, my girlfriend an '04 Honda and I can still feel the same differences. She's mentioned it too and says she prefers the "solid" feel of my car compared to hers. I've driven VWs of every generation from MK3 to current (MK7), I've driven Chevy/Honda/Toyota/Hyundai manual transmission cars and nothing feels as tight as the VWs I've driven.

So I'm a pretty big fanboy, but I definitely feel and believe there's a difference that can be felt.
This is a great point, and there's a close parallel with the way that people make similar comments about Indian developers and completely ignore the many highly-qualified developers who just won't work at lowest-payer wages.
Given the generalized complexity of getting sync stuff done correctly, I'm not going to try to bash this out fully in an HN comment, but you can do less-boilerplate Promises (in the sense the term is used in the blog post) by using composition instead:

type Promise struct {
*sync.Condition
err error
finished bool
// note no "payload" here with interface{}
}

func NewPromise() *Promise {
// return a new promise
}

func (p *Promise) Wait() error {
// code here to use the condition and bool to wait, or get the error
}

func (p *Promise) Finish(err error) {
// code here to mark the promise as finished or errored
}

type AccountPromise struct {
*Account
*Promise
}

func GetAccountPromise(f func() (*Account, error)) *AccountPromise {
promise := &AccountPromise{nil, NewPromise()}
go func () {
var err error
promise.Account, err = f()
promise.Finish(err)
}()
return promise
}

The boilerplate would only be that last function. The promise is used as:

err = accountPromise.Wait()
// accountPromise.Account is now valid if err is nil

That's the reflect-free version. If you're still feeling crabby, I believe you could safely reduce the boilerplate even farther with some reflect usage. (By "safely" I mean that you can statically guarantee the loosely-typed reflect usage would still be correct.) That can be used with arbitrary callers of .Wait(), without an explicit queue (shared lock for the condition functions as the de facto queue).

Though I still would ask serious questions about Go code that has extensive use of "promises". Generally I'd expect there's somewhere that sync.Once could be used, or some other solution native to Go rather than porting in promises. You don't really need promises in Go; for instance, to head off the objection that I'm not showing how to do any sort of ".Then()" function so this isn't "real" promises, Go's code "color" [1] is already fully asynchronous, so you don't need the usual array of Promise combiners to create a new function color. Go is already basically promise-colored itself.

Not that it's perfect. Generics to put together useful channel patterns would be legitimately useful. I've missed that several times.

But the composition is generally underrated in Go. The programming community has decades of experience in inheritance-primary language, but composition-primary languages afford a different style, even if both are OO in some sense.

[1]: http://journal.stuffwithstuff.com/2015/02/01/what-color-is-y...
Show HN: Pipedrive Bot for Slack, HipChat and Telegram
> How to make it reusable? `<-chan interface{}`? Welcome to the land of types casting and runtime panics. If you want to implement high level fan-in (merge) you’re losing type safety. The same (unfortunately) goes for all other patterns.

I can understand arguments for generics, but they're complaining about trying to warm a whole pizza with a toaster. You need to put individual slices in, it doesn't work like an oven. Cook it with an oven if you want, but don't try to make it out like the toaster is offensive and useless.

Yes, you might need to re-implement these patterns each time with separate types (slice up the pizza), but it's not really a lot of work for the extra speed and crunchy pizza it gives you.

I'm pretty tired of the frequency of these articles where someone takes a concept from a language, tries to force it into a different language with little care for its idioms and then complains that it doesn't work.

Maybe I like digging holes with a trowel, maybe I like the precision it gives me, maybe I've worked out a way to with a little extra effort accomplish the same work. If you work with a spade and a bucket all the time don't complain that you can't throw a trowel around like a spade.
Two takeaways:
1. Big brother is watching (and photographing -- yikes) everything.
2. The website is horribly slow on a 4 year old laptop.
Defeatists are so hip.
Within reason, I think hotels expect a certain level of loss. They are probably not going to want to make a big scene in the lobby as a guest is departing and demand that they return the towel they are taking out.

On the other hand, theft by employees is something they are probably much more concerned about. Before this technology, you have to wonder how many hotel housekeepers had fully furnished their own homes with towels and bed linens at the expense of their employer.
Wow! I remember reading your original lan build blog! I did not live in the Bay Area at the time but it definitely defined how I imagined the software world out here.

This is going to be a shameless ask but if you ever need an extra person for a lan event I would love to fill that spot.

Cheers!
There's a problem with it. It might be addictive.
Yeah, that's definitely the best way of handling a rating system. The one I use on my sites (the XenForo mod one) counts likes, dislikes, agrees, disagrees and all the other ratings individually and displays that count under every post.

GitHub should have done the same here.
But people fight the trackers by installing adblockers, because lets face it, the biggest offenders are ad companies. And all ad blockers are in whitelist mode by default, and nobody cares enough to turn it to blacklist mode, as a result the guys who display tasteful, unintrusive, non tracking ads, get caught in the crossfire, and the go to argument by these people is "It's my right to block anything I want." but in another breath they're complaining because a company decided that if you block their ads, they're blocking you.
https://sbir.nih.gov
> So the biggest barriers to doing it on your own aren't source material (there is lots of that) it's a good source of correction.

Does anyone have any recommendations for where I can find a "good source of correction" (private tutor) online or locally for discrete math/algorithms/college-level mathematics? I looked at WyzAnt which gave me no results for my area -- most of the tutors seem to be for SAT/high school prep.
Beyond Go and channels, this article/post touches on a subject that is personally a real pain to me.

> It’s so cool to find yourself writing tutorial for beginners! And it's a bit painful when you are trying to implement big and sophisticated system(s). Channels are primitives. They are low-level building blocks and I highly doubt you want to work with them on daily basis.

Posts/talks that relate to beginners.

You know the drill, you only have a limited time to talk about something in a conference and you only have limited time to write a blog post. It's easy and tempting to cover the basics without diving in too much into the details.

What you are left with as a professional is very thin data on how to accomplish complex stuff.

If you look at Docker and all the talks/posts around docker, they cover the absolute basic. Where's deployment to production? where's alerting/monitoring?

One of the few people I see solve this problem is: http://patshaughnessy.net/.

I've been trying myself to do more in depth posts that cover more than just the basics, it's really hard work.
This is why I always buy Buffalo routers. They are marginally more expensive, but in the same way I will intentionally buy laptops that ship with Linux as a price premium, I'll also buy routers that ship open source firmware by default because my money sends a message.

It does not matter that I replaced Ubuntu on my Galago with Arch or the DDWRT on my wzr-n600 with OpenWRT, becauase I'm on the books at these companies buying hardware running open source software.
Optimizely laid of 10% of staff
Because the point is America is bad, not that all others are far worse. Of course you can argue that the others don't matter, but that really isn't true.
It will be good experience. Bubble is going to pop out every year.
It's less simple than you think. Chrysler essentially invented the modern minivan and had a massive jump on sales in the 90s. Great competition like the Sienna didn't happen until the late 90s. When you have a popular new category and no competition, I'd expect to kill it like Chrysler did.

BMW doesn't have any trucks, and Honda didn't for a long time either. It's easy money but it's not the only way to make an auto brand.

(Fun side note: VW's minivan was a rebadged Chrysler.)
The kind of channels* the article talks about are not delivery mechanisms, but primarily a synchronization primitive. They have little to do with serialization, and indeed "sending" references to data without having to encode them is critical in many cases.

Besides, serializing data throws away type safety just as much as a catch-all type (in go, interface{}) does.

* The naming "channel" is old: https://en.wikipedia.org/wiki/Communicating_sequential_proce...
> You don't really need promises in Go; for instance, to head off the objection that I'm not showing how to do any sort of ".Then()" function so this isn't "real" promises, Go's code "color" [1] is already fully asynchronous

That is a legitimate objection. Because what you wrote isn't a promise: it's a condition variable. The point of promises is to write asynchronous code.

I think the defensible argument here is not "you can write promises in Go" but rather "Go doesn't need asynchronous programming because threads are efficient enough in its implementation". That is an interesting argument, and there's some good evidence for it, but it's not the same as "you can write promises in Go with little boilerplate".

I always found the "what color is your function" article a bit confused for similar reasons. The points it makes are valid, but it goes off the rails when it claims that Go succeeds in marrying the two models (asynchronous and threads) without friction, when what it really did is just to optimize threads in an effort to make asynchronous programming not needed. If you've got a stack and a program counter, you're a thread, regardless of whether your implementation maps 1:1 to the kernel's notion of a thread or not.
Kate Bosworth Casual Stye – Out in Los Angeles, CA 2/26/2016
Very much agreed. If you look back even further, the past 500 years, what you will see is the systematic expansion of rights and freedom.
If this is going to be the "new normal" then I'm thinking that the best way to go would be to use a low-power PC or ARM system with two NICs as my router, and use dedicated access points for wireless. I'm not going to put up with crappy router firmware.
Why would someone else's success who is younger than me make me feel bad?
This post is from Sep 2014. I know the author, he's a nice guy, but when he was at Golang Meetup, he was desperately trying to convince people to switch to Clojure.
It's all you have to know about the bias of this article.
The Jetta is pretty big. For some reason Americans seem to classify it as a small sedan in most articles.
>Great content, though original presentation is unusable. My whole computer started to lag, not only the web browser (chrome). Probably Google's web developers use very powerful workstations..

Yes, this is one thing I've noticed; I think your guess is right. It is a peeve of mine about some Google products. Some of their other products seem to have the same or similar issues - and not just performance; truncated or somewhat unusable UI is another area, due to monitor size, for one.

When Wave first came out, I tried, it was so slow as to be unusable.

You'd think that they would test their products on lower-specced hardware, knowing that not everyone has the same h/w as them.
Yes, thank you, this article is trash, to the point where I have to wonder if it isn't some attempt at trolling akin to "the purpose of a ninja is to flip out and kill people".

http://www.neatorama.com/2010/11/30/why-gold-is-the-ideal-me...
> There is a space-based end game that's planned by the developers.

It's planned, but it looks like it won't make it into 1.0: http://www.factorio.com/blog/post/fff-111
It would be nice to see the area of the world for.com, as a reference.
This. Also, you can durably plate other metals with gold only tens-to-hundreds of atoms thick, so actual mass usage is kept very very small for these applications.
I agree that there has been a big difference, but I think you may have cause and effect backwards. I was under the impression that PG handed over the reins largely because YC was growing and he wasn't interested in running a large organization.
It sure does sound like they could potentially build an AWS/Google Cloud competitor, but with Oculus just getting started I guess it's not a priority for them at the moment.
There is no way to comply with those regulations without prohibiting software updates on current generation of WiFi chips because they don't enforce regulatory constraints in hardware - it's driver's job.

I expect all other vendors to do the same, at least for now. Market can't sort this out.
7 year old iMac with a dodgy GPU, and I crashed and burned. Can only run in safe mode now.

While this is a not-uncommon occurrence for me, it's really freaking annoying.
>The really hard tech though really evokes that initial visceral reaction of "too risky" for investors, especially if there's no real indicators in the form of traction or an MVP

I feel like there is probably near parity in the risk between these "hard tech" problems and things like social tech, etc., that many investors have gravitated toward. It's like "Can we build it?" vs "Will they use it if we build it?"
The heuristics comment was more of a reflection of what I've seen outside of YC - at workplaces, gatherings, etc. It is what it is.

What makes you think it's a problem with social awkwardness. There's nothing awkward about it, unfortunately. I'm sure I'm not the only one dissuaded by the requirement to post a video. Phone call, skype, in-person, morse code would be better.

I'm not exactly saying that they're actively looking for charismatic people. I'm saying that requiring a video artificially creates a preventable bias towards those much more comfortable in front of a camera.
> What has this got to do with Android?

Not much. But Android is pluggable, Linux based, and easy to put an OTG Ethernet adapter into to divert supposedly "secure" wifi traffic.

I really think "Android" and the "as bad as you think" meme is just used here to grab attention to something which is definitely worthy of it:

About IoT and what terrible things people are doing with it.

How long did it take for the web to mature? Do we have to wait that long for IoT to settle as well?
Not really working for me
The other problem with this strategy is that, at least according to Consumer Reports, the reliability of a new VW is way below that of a similar Toyota or Honda. Why pay more for a car that won't last as long?
How about composing two channels, like chan chan err? This way you can async call a function and get the result back. Of course also async.

IMHO promises make a lot of sense in JS because callbacks are just everywhere. But Go has channels to keep indentation levels flat...
No, it's not a complete nonsense, no. People abusing Java with overengineering and using factories and other enterprisey design patterns for everything made a lot of people leave the Java land!
After nearly 20 years, Yahoo Games is shutting down
I agree that killer whale's shouldn't be kept in captivity, but than on the other hand, I also love me some bacon. Pigs are also sentient creatures with high intelligence yet we see them as a food source, and thus don't really care about their conditions in captivity.
Everything is bigger in Texas. I mean, America.

Jetta is a compact car around here. Its just how it is. Personally speaking, I like the size of American compact cars (ie: what Europeans call mid-size). But everyone around me has a larger car than I do.
Also, you may be able to start a fire in someones room by constantly switching lights/outlets on/off
Welcome * 11 instead, perhaps?
Therac's often used as the "canonical" example, but there are more recent issues that stem from a lack of a physical interlock:

- VW's dieselgate (although that was intentional)
- Virgin Galactic VSS Enterprise crash
(yes, designed for a skilled operator, but still: no interlock on the brake)
- Pyranha Moulding's industrial oven [1]
- Hotpoint tumble-dryers catching fire [2]

Even without network connectivity, household products still get recalled for issues such as fire risk, because they lack things like thermal cutoffs, or the cutoff is in some way inadequate.

Perhaps 35 years ago computer control was still very new, but right now, IoT is very new, so there's a whole new world of mistakes to learn from, and the evidence is very clear: serious mistakes are being made.

[1] http://www.cps.gov.uk/news/latest_news/pyranha_mouldings_ltd/
[2] http://www.bbc.co.uk/news/business-35744313
I agree with you, but as a matter of perspective YC is about investing in businesses and 90% of business does not involve technical challenges, but rather selling, marketing, evangelizing, and managing people.

What would you think is a better proposition for investment?

1. Someone who can do all that, partnered (or to later hire) someone who does deep technical dives.

2. Someone who must necessarily hire sales, management, and PR in order to get to step #2 of any business plan: make money.

Even so their bar is low. They're not looking for generalist experts, merely people who are at least willing to participate in all parts of the trade---including making video proposals, and giving press conferences.
How would that start a fire?
I found the update for Windows 10 automatically checked in my updates today. Had I had automatic updating turned on, it would have upgraded to Windows 10 without my permission. It seems it's no longer opt-in, but opt-out.

The only option for anyone who doesn't want to upgrade is to turn automatic updating off, keep it turned off forever, and manually verify every update you receive, making certain the update to Windows 10 is unchecked every single time. Microsoft only going to become more aggressive and more deceptive about this in the future. They can no longer be trusted with their own product. Windows Update has become no better than the adware-infested installers that CNet or Sourceforge wrap applications with.
Wikipedia names new interim Executive Director