skysight-inc/HackerNews huggingface dataset:
Kafka's topics are also queues, unlike RabbitMQ where a queue is bound to an exchange, and you publish by posting messages to the exchange, not the queue; the exchange determines which bound queues get the message.

This binding uses a routing key, which is a path that supports wildcards. For example, a consumer can bind its queue to an exchange "foo" (representing an app's events) using the routing key "create.photo.*". It will get "create.photo.5378" and so on. It won't get "update.photo.5378".

It's a really nice, flexible system that allows you to separate publishers from consumers without incurring much of a performance hit; if nobody is listening to a particular key, nothing happens, and if multiple groups of consumers listen to overlapping keys, they still get the messages in the correct order, because each message goes into a single queue.

Kafka's topics, being queues, doesn't allow this. Publishing is done to a topic, and consumers must also consume from that topic. One message, one topic.

There are three options:

1. Use a single topic for different (heterogenous) messages. For example, "foo" could be the topic, and each message would contain a field called "path" or similar (eg., "photo.5378"). Each consumer would filter out messages it's not interested in based on this path. This puts a potentially expensive burden on the consumer.

2. Create several topics, and let consumers listen to each one: "foo.create", perhaps (all create events about different objects), or "foo.photo" (all events about photos) or even "foo.create.photo". This adds complexity and will potentially explode the number of queues needed for many apps, object types, events, etc. Moreover, since message delivery order guarantees are per topic, messages across different types can come out of order: deletes before creates, for example.

3. Invert the relationship; a producer must know every possible consumer's range of interest, and post to each of their topics. Foo must know that app "bar" is only interested in photos, and that app "baz" wants events about all types of objects. Of course, this breaks separation of concerns (although the routing table could go into something like ZooKeeper)

Kafka could implement a similar routing system if it wanted to, of course.
You might be right that the whole thing will fall apart.

But if this place is indeed the equivalent to Manhattan I can understand the disbelief. Compared to the trillions tied up in real estate the cost of a pipeline to NYC would be trivial. Yeah it might cost $50b (probably much, much less but lets go crazy) but with at least 10mm people around to receive the water it's $5k per person amortized over a decade it comes out to $50/mo/person

I realize that the economics in Sana'a are probably hugely different than here in the US. But if people earn less, labor is cheaper too, etc.

The difficulty here isn't that given the facts it could happen. It's that getting to the point where you have all the facts has turned all the assumptions that you normally take for granted completely upside down. Speaking as an engineer I can understand the difficulty.
Assuming they were actually keeping the contents of such wordlists out and actually ensuring high-entropy passphrases, we would be in an OK place, though still far removed from the security provided by randomly seeded ECC keypairs.

But that's not the case:

https://github.com/dropbox/zxcvbn/issues/39

And as an attacker, I'm using my rainbow tables specifically to target the low hanging fruit. It gives me the best initial odds, and also the best return on any given hit: I'm way more likely to get more users per match for things in the common phrasebook, by nature of it being the common phrasebook.
Excellent article - I recently worked on some pathfinding stuff and the material I found on A* was not that great but this is very well laid out.

Important side note: A* or other "best path" algorithms are not always preferable - there are some situations where it makes sense to use even less ideal paths in exchange for greater speed and less memory usage - even ones that are faster than greedy-best-first search with A* shown here.

If you use recursive backtracking with a decent set of heuristics (i.e. choose the node with the closest distance to the goal, "as the crow flies"), it can be be fast and ideal in many situations (it will always give an ideal path when there are few hook or concave shapes to deal with, which in many games or applications is often the case). It can be done in linear time and memory - it is important to note the cost of adding and searching nodes in the algorithm as well. It will never "fail" but it will produce very bad paths sometimes in complex situations, although even then it occasionally produces ideal paths. In many situations where having an ideal path is not critical (say, townspeople just walking about doing their business) this can work well. Of course, you can use multiple algorithms or even mix them depending on what you are trying to achieve. RBT can be a good starting point just because it is so easy (maybe the easiest fail-safe algorithm outside of brute force?).

Secondary note: it is also good to subdivide your space - it does not need to be something complex like a sparse octree (in fact, that will make it harder to write and get good performance with in many situations). Rather consider something like two levels of nodes. On a 2D map, say you were to divide it into subsets of NxN grids of nodes. Each one of these node grids attaches to its neighbor based on whether or not it is traversable in that direction (i.e. no matter where you enter the node grid, there is a path out in that direction). This allows you to easily find a "high level" path which can be rapidly changed or discarded based on changing circumstances.
Your (and others') comments about Rust/Mozilla normally get detailed replies indicating how they are either wrong, or misrepresentions (I would go so far as to label them as willful mispreresentations now, given the number of times the discussions have come up).

(I don't speak for the other topics, though.)
I can't find the actual inspection notes - can you tell me where to find them?
Building a Capsule Wardrobe 101
Solid resource, but definitely a little dated (i.e. no C99). The 'Returning Arrays' part talks about this:

char *itoa(int n, char buf[]) {
sprintf(buf, "%d", n);
return buf;
}

... but you'd really want to take a length parameter and call snprintf to prevent buffer overflows. This pre-C99 style C is one of the reasons C has a bad rep wrt memory hazards.

edit: Anyone interested in this should probably read through something newer, like http://c.learncodethehardway.org/book/
Ask HN: Where to get free bootstrap themes for a landing page for an iOS app?
Hey all,
I'm looking for a free bootstrap landing page for a mobile app I'm developing. Normally I would make it myself, but I have to focus my efforts on the functionality of my app. I've found quite a few that cost money, but money is really tight right now and every dollar counts (student without a job)<p>I'm looking for something along the lines of http://landy.paolotripodi.com/ or http://www.blacktie.co/demo/flatty/
Anyone know of anything? Thanks
I love coroutines.

https://gist.github.com/luciangames/7776345
Belgium alsof had one of the highest taxes in the world... And one of the most dificult ones, we have exceptions for everything :-(
When Rhode Island accidentally legalized prostitution, rape decreased sharply
Sorry, but you are drastically underestimating the knowledge and experience of the author of the article for no other reason than to try and make yourself look smart, which is failing.
Is there anything like this for android?
The government data is already in play, this just means that you would see what they think you owe up front.
I get how he might underestimate the intolerance in the South, but I didn't get the sense he was doing so in the North? In fact, he seemed to be saying the North was MORE intolerant, in a lot of ways, then the South could be sometimes.
The exact timings depend on the exact chips used, and a specific CPU could be connected to many different types.

You have to query something (often a eeprom) to determine what sort of timings you need, and then program the memory controller appropriately.
The video one doesn't seem to load for me. The CSS animation one works fine when I view it alone, but isn't animated when embedded in the web page.
I think I am having issues with http headers on my server, making not the best impression.
I'm pretty sure the URL disappeared after I updated the title. Thanks for correcting it.
Did you experience dating shock like this? 
https://www.youtube.com/watch?v=RzTwir3mXQU
"It's not malice, it's not racism, it's just really uncomfortable."

Being "uncomfortable" is one kind of feelings racism stems from, being uncomfortable around people you don't really understand. Not saying your feelings are bad or you are bad, just that people are emotional rather than logical beings. There were definitely some subset of racists who were racists not because they logically analysed the science of race, concluded that their own race was "superior", but rather, they felt uncomfortable being around those they assume is from a particular race. There were establishments that were "whites-only", I assume it's because the owners were afraid its patrons would be uncomfortable eating with "blacks".
See also: free bonus chapters at http://www.informit.com/store/old-new-thing-practical-develo... , under Sample Chapters.
I didn't submit this story because of the way the police office handled this person but rather because I (and most likely a good number of other readers) take uber x and should know that this could happen to them as well.

I was talking about the "legality" of uber x with a friend yesterday and figured other reader may have a similar question.
Unless edited, did not suggest it was a law. It's a contractual term.
There's no difference between that and just requiring the user to use a longer password.

Anyone trying to attack the system will just program their cracker to be more likely to try concatenating words together awkwardly in the password somewhere.
Is it ok that I don't understand ANYTHING going on here? I feel so dumb at the moment. Any ELI5? :(
French dating song, what a culture shock!
https://www.youtube.com/watch?v=Q73HlyxzV6s
How to survive a dating culture shock?
Great topic and amazing how France has different language for dating while we think it's the same everywhere!!!!!!!!!!
Commenting the purpose of every function just seems like a messy way of making up for the mistake that your functions are not written in a readable succinct fashion that can be easily understood.

I also think it encourages new developers to write messy functions and then think "that's ok I've described what it does in a comment above, so the next person will understand it anyway".
The law isn't just what's on the statute book, it has to be read in the context of case law (at least in jurisdictions that use a common law system), which evolves over time and can vary based on the individual facts of the case.

That said, things like that do exist - the UK's entire statute book (well, almost) is available online,[0] free of charge and via a RESFTful API in machine-readable formats.[1]

Likewise, the German federal government publishes the law in XML, and there's even a markdown representation available on github.[2]

[0] http://legisltion.gov.uk/

[1] http://www.legislation.gov.uk/developer/formats

[2] https://github.com/bundestag/gesetze
Modern high-speed DRAM interfaces are very complex. Their initialization is dependent on the particular memory module in use, and some parameters are even determined at power-on via training. So there actually are no "sensible defaults" which can be expected to work reliably with all memory modules. The initialization and training routines are far too complex to justify implementing them entirely in hardware, thus the need for software hacks to get things up and running.
The algorithm is [898, 537, 321, 205, 361] -> tidlotexidaifol -> "tidy lot existence daily following". The phrase is generated deterministically from the password, so it's no more secure than the previous steps. It's just a mnemonic to help remember the password.

If by trigram you mean "3-letter word prefix", then yes, they are all equally likely. If you mean "group of 3 words", then no, they're very biased. "raccowsli" is as likely as "afrdisuti", but it will always generate the mnemonic "race cow slipped", and never "racter cowslip slithered".
AAAAAAAAAAAAAAAAA...
If we don't have tort reform, how can we ever have legalized MJ or other harder drugs without lawsuits like this?
It's easier for humans to remember two distinct passwords with individual complexity requirements than one gigantic passphrase.

By forcing the user to choose two passphrases which are then concatenated, the result is one gigantic passphrase that a cracker can't easily crack, yet is easy for humans to remember. It seems like this solves the problem of rainbow tables.

A keylogger could still break this system. But if an adversary has planted a keylogger, they could've simply stolen your keyfile.
They intend to make some apps run through ChromeOS, which personally I think is a bad idea that will end up ruining ChromeOS's security system, too.

http://www.theverge.com/2014/6/25/5842454/chromebooks-runnin...

I would prefer they just focus on making Android have a useful and productive interface for the desktop, much like they did with Android TV for TVs. Then all apps would work.
Why would we want to give Amazon this much power?

From past history, they will just abuse it.
Let Us Build A Startup... Together
There are 1024 trigrams, so 10 bits each. That's the same information density as random digits.
I don't have a problem with AnimGIFs. They work fine for their intended purpose.

Interesting side note: I worked at Jasc Software 20 years ago in technical support, helping people with Paint Shop Pro 7 and Animation Shop.

Animation Shop still works great for creating AnimGIFs and PSP7 still works great for a complete 'vector+bitmap' graphics app. It's impressive that some software is so resilient.
There are "standard practices" when it comes to usage of the mount tool and TrueCrypt does not follow them and its inability to follow them is what leads to this privilege escalation.

Another "standard practice" TrueCrypt is not following is its creation of the mount point with 0777 permissions at "/media",a directory that is world readable.A "standard practice" is to have mount points at "/run/media/$USER" or "/media/$USER" or anywhere else where only the owner of the mount point has access to it.This is another security issue that need to be addressed.
They appear to be the only software company on Earth to do work sample tests. It's working out really well for them. The process is extremely well laid out here.

matasano.com/careers

We'll get on the phone and talk to you about the company and what our work looks like. At the end of this call you should have a good idea of what we do, how our hiring process works, and answers to questions about Matasano. Most importantly, you'll have a contact at Matasano to talk with and bounce questions off of through the duration of our process.
We do 1-3 technical phone screens. You'll talk to a senior Matasano team member who will ask you about your technical background and talk you through scenarios and concepts from our day-to-day work. If you've been doing app security for 5 years, you'll be talking about your past projects; if you're a developer, you'll be talking about code.
We do a web app challenge. Most software written within the last several years is web code. Everyone on our team needs to be able to deliver a solid web pen test. When you're ready, you'll be given an instance of a vulnerable web application and an hour or so to break it. We timebox challenges to avoid taking too much of your time. You're doing this on your own schedule, in your own comfortable setting.
We do a custom protocol challenge. Every Matasano team member routinely runs into exotic network protocols. We'll throw something at you that you're unlikely to have worked with before and watch you reason your way through breaking it. This challenge seems to be everyone's favorite; candidates routinely tell us how they particularly enjoyed it. That's great! It's part of our day-to-day work here. Like the web challenge, it's timeboxed and you're doing it remote.
We'll have you write a fuzzer. Everyone here writes fuzzers. We'll give you a file format. In the language of your choosing, you'll write a fuzzer for it. This gives us a chance to see how you code and to see what types of things you automate testing for. Like the other challenges, this one is time limited and you can do it remote.
We've talked. We've done phone screens. We've answered questions. You've done challenges for us. At this point we both have a pretty good idea whether you'll be happy working with us. If that's the case, we'll bring you onsite for an in-person interview, which concludes our hiring process.
My next article will be on current state of un-acquired email startups. I'll cover funding information, employee count, year founded. The funding information alone would be quite useful.

As a side note: I predict that we'll see a significant increase in email startups in the next 2 years.
I did not like the "Returning Arrays" section. There are perfectly reasonable ways of returning small arrays in C.

typedef struct {
char c_str[25];
} number_string_t;

number_string_t
itoa(int i) {
number_string_t retval = {0};
int written = snprintf(&retval.c_str[0], sizeof(retval.c_str), "%d", i);
// Error checking.....

return retval;
}
I think an important point that the author misses is that Medium is a blogging platform for people who don't want to fill a whole blog. I had a blog of my own and could never find the time or the content to make worth it for someone to revisit regularly. On Medium, I can write once a month, focus on quality, and not worry about whether people are hitting my site and getting disappointed. Add that to beautiful content, great other writers, and a good recommendation engine, and they have a great set of features that make it an attractive platform for both authors and readers. I can't wait to see what they have coming next.
This feels, and looks, like all of the... unusual 'preferred' taste/quality music videos mixed in a blender and then slathered all over a woman with a typical figure for these types of videos.
The author, Amit Patel, makes awesome stuff! His writeup on hexagon grids is excellent also. Plus for some retro gaming Solar Realms Elite is one of the finest BBS door games of it's time.
...but you do need to look like an idiot by talking to your phone. And then you're in an environment where there's, you know, any amount of ambient noise and Siri will helpfully say "Okay, texting Slow to John Doe" or something else ridiculous. Maybe just "Sorry, didn't catch that." And then you repeat yourself, to your phone, sounding more and more like an idiot, until finally you give up and you get your hands dirty by scrumming around on your phonescreen trying to type out a text. Good luck getting Yo past autocorrect.

Meanwhile, I've sent my Yo. I'm with my friends yoing it up. Maybe we're at a bar or maybe we're at a girl's place at a kick-ass party. But we're there because we yo'd at the door to get her to let us up. You're not even in yet. What even is your life?

I get that tech people are crotchety about new tech, but come on. Get with the program. Join the party. Just yo. http://justyo.co.
That's actually what I expected this to be before clicking the link. Oh well, one can hope.
One of the big problems right now is that they have a very long oil pipeline, and people keep blowing it up. It's hard to get political stability when the resources are so constrained, and hard to deal with the resource problems when there's so much political instability.
DROP Your HEARTS |  DUBSTEP DANCER
I'm really sad to hear this.
If you live in America and are struggling to make enough to feed and house your family, it's a moot point that the numerical income level puts them in the 1% around the world.(or whatever the percentage is) Local inequality matters.
If by intended purpose you mean animations like smileys, then yeah, it's OK.

But if you look at imgur.com or Tumblr you'll find GIF is used mostly for video clips and this results in multi-megabyte files with dreadful quality, e.g. http://ministryofgifs.org/

gfycat typically reports 15:1 compression improvement when converting to WebM.
The two most tiring and unnecessary comments anyone can make on any news aggregator websites (including HN) are:

(1) "Hey, this article is titled '10 cool things about X' (where X is some programming language or framework or library or server or something) but it didn't explain what X was! I've never heard of X so clearly no one else has either!" Every once in a great, great while, it's a defensible comment, but it's just not worth making the comment even when it is. Just Google it if you haven't heard of it, that's what the rest of us did.

(2) "Hey, this article you guys linked to doesn't fit into the category of articles that I have assigned to your website!" Seriously, no good can ever possibly come of this. Downvote the article if you feel this way, that's why the ability to downvote articles exists. It's just so not worth verbalizing the sentiment.

Unfortunately, the third most tiring and unnecessary comment that can be made on such sites is probably the one I just made, so sorry everyone! :) I mean well, I really do.
I would go to Dribbble.com and search for "app PSD".

Dribbble is an invite-only network for high quality designers who regularly put out high quality PSD's for the community!
Generate random UUIDs
This might be the first time Steve Jobs used the “Real Artists Ship” Quote