skysight-inc/HackerNews huggingface dataset:
It also works because customers have heard of it and believe that they can edit the sites themselves (in spite of your warnings), so it's much easier to sell. "We'll just put you on WordPress!". Done.

Of course, they never figure out how to edit the site, because the WYSIWYG editor is anything but, and even the text editor "enhances" the html you type in inexplicably. They don't know the difference between a post and a page (or a blog for that matter). So they give up, and wind up hiring you to add content too.

Which is great (yay, money!), but now you have to actually work with this monstrosity and you wind up wishing you had used something like middleman or sinatra like a proper gentleman. But deep down you know that would have been a bad idea as well, because they'd call you in three years to fix the outdated mess that became of your beautiful site after years of neglect. And you'll do it despite not wanting to because they won't be able to find someone else who knows how and that will make you feel guilty.

Meanwhile, WordPress just chugs on, smug in it's mediocrity.

It's really a ghastly creation, if you ask me.
Technology is always a means to an end, though. During the 50s and 60s, the technology being developed in Silicon Valley was all about how to make death rain down from the sky. The first wave of Silicon Valley immigration started with Lockheed's Polaris missile program. Fairchild Semiconductor was financed by a company that got started manufacturing bombsights, machine gun cameras, and spy satellites. Hewlett Packard started out building artillery shell fuses and anti-radar devices. Lawrence Livermore Labs was where nearly every atomic bomb of the cold war was developed.

Usually when people talk of the bygone era when Silicon Valley was actually about technology, they're referring to one of two things:

1.) A particular sort of nostalgic history whitewashing where we forget that the money for all of these fundamental innovations largely came from DARPA contracts to find new, more efficient ways to vaporize Russians.

2.) The PC revolution of the 1970s, which started at Intel and PARC and then spread through Homebrew, Apple, and numerous other startups.

Both of these apply the benefit of hindsight to what was actually going on at the time. There's plenty of the old Homebrew culture still going on in Silicon Valley - all you have to do is go to Maker Faire to see it. It's just that right now, at this moment, without the benefit of hindsight, it just looks like a bunch of geeks tinkering with toys.
UTF-8 consumes less space and has pretty much same trade-offs in terms of iteration. No worries about endian (UTF-16LE vs UTF-16BE). Almost all input text is in UTF-8 and so is almost all output text. Conversion back and forth to UTF-16 is just wasted CPU time.

I think even counting number of UTF-8 code points in a string is faster in UTF-8 than in UTF-16, if you're allowed to use SSE2/AVX2/AVX-512, because all UTF-8 sequences start with a byte that has highest bit 0, all other bytes in the sequence have highest bit 1.

So just SIMD vector compare [1] to find all "positive" bytes (highest bit == 0), which gives you a nice mask. Then move the mask to a general purpose register [2] and popcount [3] it. 16/32/64 (SSE2/AVX2/AVX-512) bytes processed at a time, no branches other than loop control branch.

You can use the same idea to quickly scan UTF-8 string to approximately right position to retrieve a given (random) code point index. Still O(n), but with 10-50x smaller constant factor. If that's not enough, you can simply pre-index every n-th code point (say, every 64/128/256th) in a separate array for larger UTF-8 strings. That gives you constant time random access.

[1]: http://www.felixcloutier.com/x86/PCMPGTB:PCMPGTW:PCMPGTD.htm...

[2]: http://www.felixcloutier.com/x86/PMOVMSKB.html

[3]: http://www.felixcloutier.com/x86/POPCNT.html

Note: UTF-8 code points start either 0xxxxxxx or 11xxxxxx. Regardless of this the basic idea should work, just need to do two compares and to bitwise-or the masks. At the end, AVX-512 of course would use mask-register (k0-k7) and AVX2 would probably need to convert the mask in two parts, once for both 128-bit register halves.

Note 2: Thinking about it a bit more, I think it's enough to check if signed bytes are greater or equal than -64 (0xc0)! This covers bit patterns from 11000000 (-64) to 01111111 (127); all the sequences that can start a sequence. So no two compares and bitwise-or needed after all.
Natural Breast Lift Reviews
Not hiring hexadecimal constant engineers sounds like good advice, though I am unsure of what those entail.

That said, I think the article itself is pretty uncontroversial. It's only inevitable that you will mainly find people who hit neither extreme.
If you "often" find PHP code in the DB, you're taking over for some godawful contractors. The PHP filter is rarely used and is even being deprecated from D8.
Most Awaited Workshop on Software Development Outsourcing in NY – WeWork
so cringefully generic. Who are these chords even trying to appeal to? ffs this drone might be used by farmers or soldiers
As others have said, have a length field in with the string. This also has advantages other than making buffer overflows a lot harder, such as making string copying faster and easier. For example, let's have a skeletonized view of a normal string copy routine in assembly (disclaimer: my assembly is rusty, so this may not be completely right. void where prohibited):

push rax ; save our registers
push rdi
push rsi
mov rsi, location ; get the pointer to the right place
mov rdi, destination

beginning:
mov rax, [rsi] ; copy contents to the register so we can compare
test rax, rax ; compare our source to itself, if it's zero, it'll set a flag
jz done ; we're done
movsb ; copy the byte, increment the rsi and rdi registers
jmp beginning

done:
pop rsi ; restore our registers
pop rdi
pop rax

In contrast, with a length parameter, we can do

push rcx ; using a different register here
push rdi
push rsi
mov rsi, location ; same as before
mov rcx, length ; moving our length into the counter register
mov rdi, destination

cld ; okay our first change. Clearing the direction flag so the copy
; goes from the first byte to the end
rep movsb ; it'll repeat cx times the movsb command, and then carry on

pop rsi ; restoring our registers
pop rdi
pop rcx

Having the length of strings means you can have much more concise code. It makes loops easier, makes your code cleaner, and in some environments, gives a speed boost.
Buffer overflow in NetUSB kernel driver
You didn't even click the link I provided, did you?
Modular Unidirectional Data Flow for React and Dart
In ToroDB (https://github.com/torodb/torodb) we are currently working on implementing MongoDB's oplog server-side. ToroDB would work seamlessly with Meteor, meaning that at the end of the day your data sits on a PostgreSQL database. Watch out our next coming release! :)
This is what makes mathematics so damn fascinating. The Basel problem is another example: for any small number you pick I can pick a large enough N that sum(1/n^2) from 1 to N will be closer to pi^2/6 that that small number. That boggles the mind, really. I mean, I just use multiplication, inversion and addition a lot on integer numbers in a rather predictable fashion and get to ... pi^2/6?? There's a huge "why" / "how come" here.

Perhaps one would think that "pi" is this geometry thing ... but then maybe not :) And again, there's \lim_{n\to\infty} 2^n \sqrt{2-\sqrt{2+... \sqrt 2}} = \pi as well which is perhaps even more baffling.

Peter Rozsa most excellent book, "Playing with Infinity" has a chapter "Mathematics is one". There's no such parts of maths as geometry and calculus separately. That book is perhaps the best maths book for people with ... less affinity towards maths, I guess.
Great article, and fascinating insight into the analysis of your data.
Its definitely a problem both ways. Companies hiring can't be sure their initial hook will return appropriate candidates. Then candidates looking for a suitable role can't really be sure what they are applying for will suit their skill set and desires.
Your classification of roles and candidates is certainly a much more complete approach for ensuring various parties get what they want, good work!
Isn't this also called the "soft bigotry of low expectations."
By reading the title, I thought it meant those people who use an Internet handle starting with "0x", which is really annoying.
First, I should mention that I'm glad to see this dismissive and negative comment voted to the top. I was starting to worry that HN was losing its edge.

Next, you mention:

> Yet it's a blazing success in the CMS space, because of 3 things that are insanely overlooked by other CMS developers :
- Ease of installation
- It runs on a minimal PHP/Apache/Mysql setup (cheap hosting)
- It has a great backward compatibly, unlike other solutions that break everything with each major version.

The actual, true and documented reason that WordPress has become a blazing success in the CMS space is the ease of use of the backend administration console. This comes from developer and client feedback in poll after poll of WordPress users and developers.

Regarding:

> If one compares with Drupal for instance, I mean with Drupal, a designer can go really really far without writing a single line of PHP code, aside from a few tags for templates(but it's really light). You have views, CCK and a lot of handy stuff.

I've heard Drupal developers themselves actually look to WordPress's method of having the option of handling these things in code/configuration as a net positive. It's trackable and portable.

--

I've got to ask. If a builder of websites was looking for something that wasn't horrible and built by smart people, which one would that be?
Always love Zach's writing. Personally, with hiring and growing an engineering team I've found the key component is to just not hire anyone toxic. Beyond a certain size, teams have to have well-defined processes to function, and toxic people will rail against and subvert the process.

I was actually thinking a lot about this the other day, and it's one of the big differences between say a 5 person engineering org and a 20+ person engineering org. In a 5 person org it may be super valuable to have an independently minded superstar who avoids process but gets things shipped fast while a larger org will actually turn that person toxic by imposing too many restrictions and process on them for them to follow their normal patterns. This is why I think there are some folks that are really good that just jump around from one early stage startup to the next, so they can be mostly free from the bureaucratic politics of large organizations. I wanted to think with the right culture that bureaucracy and politics can be avoided, but my experience has been that eventually these things will shape how your org works, and like Zach says, that's not a bad thing if that org is filled with average people, as long as the process is designed to help those people do the best job they can at large team scale.
Diverse Groups United Against Any Short-Term Reauthorization of Section 215
The thing to really fear is the toxic hire, the /10 or /100 worker. He'll ruin your business while deflecting blame to others, driving away your best employees.

Don't fear the mediocre worker, fear the toxic worker.
would be nice if they could at least auto-home themselves to recharge
I'll try and get this building for OSX.

For the uninitiated, might I recommend my: http://nickdesaulniers.github.io/blog/2014/04/18/lets-write-...

Though, this is written in yasm syntax, which is slightly different.

Also, keep an eye out for a blog post on Interpreters, Compilers, and JITs I'm working on (cleaning it up and getting it peer reviewed this or next week)!

update 1
Actually, would the syscall's be different between Linux and OSX? Let's find out, once this builds! hammers away

update 2
Got it building and linking. bus error when run, debugging with gdb.

update3
Can't generate dwarf2 debug symbols for OSX?
$ yasm -g dwarf2

update 4
Careful, this tries to listen on port 80 [0] (0x5000 (LE) == 5*16^1 == 80), I would never run any assembly program off the web with elevated privileges. I recommend 0xB8B0 (LE, port 3000).

update 5

> Actually, would the syscall's be different between Linux and OSX?

Looks like yes: http://unix.stackexchange.com/a/3350
These might be close to shim out (OSX and Linux at least share a calling convention, unlink Windows). I'll upstream what I have.

[0] https://github.com/nemasu/asmttpd/blob/master/main.asm#L24
>one cannot customize Wordpress without writing more than a few php tags

The tags you need to know to create a basic theme are pretty straightforward, and the market you can reach by learning them is massive: Wordpress is said to power 23% of all websites. If you're a designer who knows HTML and CSS, the learning curve for those templates might be a little bit steeper than for other CMS products, but the number of potential buyers for your theme is dramatically larger.

>It's an horrible peace of software, with horrible PHP code 4.x style, a db schema only a beginner could have come up with

I've been tasked with making Wordpress do things it never should have done, so in service of that I've read a good chunk of the source and I totally agree with this, some of the code is truly abominable.

On the other hand, of everything I've built that has been handed over to clients for content management, Wordpress-backed sites are the clear winners in terms of how much support is required after delivery.

Smart use of custom post types and custom fields, however hideous the code behind them may be, saves time in development, allows you to build an admin that makes sense to non-technical folks, and helps prevent you from re-inventing the wheel for each and every project. It also means that a pretty huge set of developers will be able to pick up your work later on.
Especially because "One of the most important things that made Microsoft successful was Bill Gates' devotion to hiring the best people. If you hire all A people, he said, they'll also hire A people. But if you hire B people, they'll hire the C people and then it's all over."

(taken from http://www.joelonsoftware.com/articles/fog0000000072.html)
Sure, China has less strict IP laws and less strict enforcement, as well as possibly a government policy of looking the other way when they can acquire tech from abroad. But there is a huge difference between that and labeling those activities as state sponsored economic espionage in all cases.

Morris Cohen giving the U.S.S.R the plans for the atomic bomb? Espionage.

Two professors doing a startup in China with tech that was probably under NDA/copyright/patents of their former employer? Not espionage.

Really, if this was all happening internally inside the U.S. it would probably be a civil lawsuit at most... and only news in Techcrunch, not NYT.
Is an in-app purchase for removing ads like one for adding a color-blind mode?
Some people are not distracted by ads much like some people are not color blind.

Isn't making people with a disability pay more morally questionable?
If you had clicked the link I provided, you might come to understand that since 1995, U.S. trademark law does not just work in the way you described, but also includes the concept of "dilution", where famous marks are protected by law even though there is zero chance of consumer confusion.
Portland is only dreary in the cold season. You get a nice mix of sun and rain other times. It's good if you prefer variety over constant 70 degree sunniness.
I live in NYC and have been considering moving to California. My impression is that both NYC rents and salaries are pretty much in line with SF, while LA is behind in both.
Lots to add to that if you want: sanity check the length against external buffer limit; move word/dword/mmx128; consider alignment; not use deprecated movs instruction.

In fact the best, alignment-sensitive solution I've never seen written. It would load 2 large words, shift them to target alignment if needed, store, load, repeat. This would guarantee aligned fetch/store and still do whole-bus operations.

I've waited to see an instruction to do this in any machine ever (why do we have to hand-code this kind of thing, when the processor chip KNOWS the best way to get it done?) I've waited 20 years.
I have been wondering the same thing. I suppose it's partly because it was only going to be a competitive advantage as long as as containers where not commoditized which seems to be the direction its now heading.
"Dear Humans, for the last several centuries you have used many different mental strategies to try and make decisions. These seem to have produced a generally optimal outcome (ignoring the genocides) with globally increasing standards of living and increases in freedom for humans generally. We are here today to proclaim that you have been wrong all these years. You could have been so much better off if you had only migrated towards where there were more burritos. Ignoring the blatantly counterfactual spin this argument carries, the data is in. Burritos are king.
Sincerely,
BBD Evangelists"
No, I don't think so. For one thing, a fairly small proportion of those under arms actually served in battle. For another, those of that generation I knew were not particularly cold and hardened.
My parents made wills that nominated close friends as guardians for us kids. The friends nominated my parents as guardians for their kids. There would have been enough value in either house to cover any extra costs of looking after the orphaned set of kids.
The way most companies conduct interviews is one sure way to never hire the best talent anyway, even if they actually wanted it. So they end up with mediocre people, those who have memorized all the right answers to standard questions.

At the same time, these hiring practices push away the real talent who has better things to do with their time than to play the game. This talent is now sitting somewhere and building a startup of their own. Perhaps even a competitor of yours.
>After about a minute of this we all just got bored.

I'm sorry but, can't we all daydream for more than a minute? How can you get bored so fast?
So don't, then. Most of the big Silicon Valley success stories came from people that were either students/professors at Stanford (HP, Sun, Siri, SGI, Yahoo, Google, SnapChat) or worked for one of the big tech companies of the time (Apple, EBay, Intel, Oracle, Whatsapp, Twitter, Nest, Android, Slack). Occasionally you get a transplant from another region (DropBox, Facebook, AirBnB, Flickr, del.icio.us, YCombinator), but then they've usually found an idea that's somewhat promising and actively started working on it before moving.
After reading the overview and features, I'm left wondering:

* what tangible benefits would I get from using Clear Linux over my own heavily customized/handrolled linux server?

* how does the update system handle breakage/conflicts?

* are any of Intel's changes likely to make it into other existing distros or kernels?
Why I Left Axact? The Inside Picture
Is Ghost or Jekyll anyway better in terms of tech and other business factors?

I'm genuinely asking here :)
What is “Duck Typing”
Exactly. Because why not?
How does this differ from say, Apache Hive?
I thought HP's first product was an oscillator, used in the theramin that produced music for Disney's Fantasia. Or is that an urban legend?
I've been in Austin for 8 years or so. Like it a lot. Plenty of tech companies and jobs.
Where's the evidence that your ranking of developers is causally related to failure?
> If the readership on HN is plugged into the startup scene, hiring mediocrity is not fine.

i'm curious what this means exactly. having worked for startups in my area of things (graphics, games) i can say that 99% of the startups i see here only require mediocrity in my specialty area at best. most of them would do fine with a bunch of juniors and just one moderately experienced engineer to keep them focused.

solving a simple problem with a sledgehammer language on top of a tower of web stack is not the place you find the exceptional engineer, at least from my native code, down to the metal perspective, but its what most tech startups are about, and lots of them are doing very well with positively mediocre engineers.

i understand there is a different skill set involved in the really niche areas of pretty much anything... e.g. where you need to squeeze the most bandwidth efficiency out of some obscure type of database query by juggling SQL and PHP or .NET libraries or whatever... but that sort of 'excellence' is pretty mediocre from my perspective too.

its like mechanics who prefer working on the F1 car to the tractor. its not even specific to software. however the vast majority of mechanics will have to suck it up and do day-to-day work on pretty normal stuff, just like programmers at tech startups.

so from my perspective it seems like there is no choice but to hire mediocrity actually...
ChainDB, Bitcoin-Secured Sidechains, by BitPay [pdf]
rxjs and typescript v2 for es6
Under normal circumstances I would consider the treatment of the SS soldiers described here war crimes. But the men of the SS were and are not deserving of the protections normally granted to soldiers. For the atrocities that they committed only the most brutal punishment will suffice.

My dad had a friend who as a partisan fought on the eastern front. Whenever they captured a German soldier they checked his armpit for the telltale tattoo. If he had it they would immediately run him over with a tank. I think that's the most kindly death they could expect in light of their heinous behavior.
I agree with you. But devil's advocate...

The pool of ideal start-up candidates is finite. What if you don't have the budget to execute on a team of A hires?

Something must be fungible. Either you don't actualize your dream at all, or you try to actualize it using sub-A players.

I think most people at least want to try having a startup rather than none at all, rate limited by "talent".
The toxic worker is often the 10x worker. Its not enough to be good at what you do. You have to be someone other people can work with.
OpenStack Boldly Going Where No Cloud Has Gone Before (Mars)
Zach works in the Bay and did a long stint at Github. "Average" in either of those contexts is severely graded on the curve. Average for a much larger company, or average in say.. the US, or San Diego... is saying a very different thing.

There's a huge gap between actually mediocre and say, @antirez. I only took the article as a suggestion that your expectations and ideas around who to hire be better tuned to your reality. There's an obvious dissonance between the number of companies saying they only hire the best, and the ceiling of available "bests".
Of course not. Flying cars, however, obviously would since we would need some means of transportation.
"Engineering talent shortage for cheap developers who have high skill levels"
Our typical filter question is: "are you happy to use PHP, C++, Mongo, Java?"
Not that we have those in our stack yet, but it quickly weeds out those that sneer at any or all of that list. Let them destroy someone else's startup with their wanky tech attitude.

We are more interested in problem solvers.

The best answer we had was from employee # 2 - "if it gets shit done, and we ship, sure, why not?".
We have this thing called infrared. The military is quite fond of it already for targeting lasers.
And it's not either-or. You can be a 10x worker and be toxic. Sometimes those are the worst to have.

You think you need them because they do X, Y, and Z beautifully, but in reality they're destroying morale and tanking everybody else's ability to do A-W.

It's very, very easy in this situation to try to put a band-aid on things and hunker down, try to encourage the other folks to just give the toxic person a little more space. But it never works, and the longer you drag it out the more the A-team folks who aren't toxic will jump ship.
cough Xerox Star, 1977 (I don't remember if the earlier Alto had disk icons).