skysight-inc/HackerNews huggingface dataset:
The logic in this post appears to be:

1. "Notice how Bitcoin has a minimal-to-nonexistent cryptographic pedigree".

2. "Here are many criticisms of the system ranging from 'it is difficult to scale' to 'it is completely meaningless as a currency', many of them from cryptographers who have studied cryptocurrencies for over a decade".

3. "Notice how Bitcoin is currently popular".

4. "Therefore, Bitcoin is worse-is-better".

It helps at this point to understand that "worse-is-better" --- a casual essay by Richard Gabriel --- describes how Unix took over the world not based on merit but on its viral characteristics. By implication, this article suggests that Bitcoin is also poised to take over the world virally.

The issue here is that Unix was also a functioning operating system. Nobody criticizes Unix as "completely unworkable"; they just think it's inelegant.

Gwen recognizes this, and uses "elegance" as a straw-man argument to bucket Bitcoin critiques into and to make it fit the pattern of "worse-is-better". But the most damning criticisms of Bitcoin --- criticisms he himself cites in this very article --- aren't that it's inelegant.

Instead, the most damning critiques of Bitcoin are instead that it almost totally fails to achieve its security objectives, that it exploits a misperception about anonymity to handwave away the fact that for most users it is not anonymous, that it is reliant on centralized infrastructure ("Bitcoin is peer to peer in the sense of the British Peerage System"), and (most importantly) that it is meaningless as a currency: "I have taken $100 and set it on fire; I will sell you a certificate representing the smoke for $101".

These aren't elegance critiques. This isn't "worse-is-better"; to make a similar argument fly, you have to come up with "worthless-is-better". Unfortunately, the greater fool theory floats that argument too, at least until Esquire writes the postmortem on Bitcoin and all the fools who lost money to it.
You have implied that patents have only recently been something seen as problematic, and that patent warfare is something invented by Google and Android vendors to attack Apple. The reality, however, is that there have been several highly litigious patents in computing which have been used to threaten people. Let me expound on some of the more infamous ones.

The modern GIF format, GIF89a, used a compression algorithm called LZW. This algorithm was patented by a company named Unisys. Unisys threatened ISPs and large websites with legal action if they didn't agree to license the patent. This directly led to the creation of the PNG format as a free and open alternative.

S3TC, the S3 Texture Compression algorithm, is patented by a group of graphics vendors known as S3, and licensed to Microsoft under terms which let MS sublicense it under the name DXTC, (DirectX Texture Compression). The patent holders have been very mean about enforcement, and the patent is broadly written, so it applies to nearly every possible S3TC implementation, software or hardware. To this day, MS still makes money off of every graphics card sold, from licensing fees, and free 3D libraries, like Mesa, cannot safely ship S3TC decoders for fear of legal repercussions.

h.264 is covered by a big portfolio of patents, held by MPEG-LA (Motion Picture Experts Group Licensing Authority). They have been very proactive about getting licensing fees any time they can, and using fear tactics to suppress free codec libraries like x264. One member of MPEG-LA is Apple, by the way. That's right, Apple has been conducting patent warfare since before the conception of Android. (Since I'm expecting a [citation needed]: x264 development started in 2004 at the latest; Android was acquired by Google in 2005.)
He also compares jobs to people like Bill Gates and Warren Buffett. The oil executives were being used as a polar example of the kinds of opinions that people can have about the very wealthy. I don't believe the author was trolling. He was pointing out simply the variety of opinions that people often have about the very wealthy and the fact that Jobs seems to rise above it.

The main point is not about good/evil, it's about fairness. You may think that it's fair that Jobs is so wealthy because he deserves it for all his hard work (and im not saying that he hasn't worked very hard and done a very good job at that). But the question is if it's fair. Warren Buffett admitted that he didn't think it was particularly fair that he is as wealthy as he is, or (more recently) that he pays as little in taxes as he does.
This should be live now - let us know if you have any more suggestions.
You need to understand that HN is now huge, and no longer truly a community. There are people who have internalised the original ethos and take opinions and arguments on their merit, whether they agree or not, but now there are people who just down-vote anything they disagree with, even without reading it carefully, and certainly without thinking about it.

If you express an opinion and get a drive-by down-vote from someone who happens to disagree with you, or simply dislike your comment (no matter how well argued) then you can easily get several others pile on in a group-think down-vote mob.

It happens.

Shrug and move on. You can't buy anything with karma, and there will always be people who unthinkingly disagree and down-vote without regard for your opinion or argument.

Move on, contribute positively, and you will gain karma, and perhaps eventually recognition, reputation and respect.

You can also choose to use this as an opportunity to hone your debating skills. If you're about to express an unpopular or unexpected opinion, think not only about the rational aspects, but also the rhetorical and emotional aspects. Perhaps you can deflect the unthinking while still engaging those worth engaging.
http://newstweek.com/overview

I threw together my own implementation of that from scratch when it hit hacker news a few months ago. Mine uses an arbitrary sed script, not sure what theirs does but I believe they've released their source now.. It took about 2 hours max.

Deploying it? Seconds.
That's also true, UI plays a very important role..although the initial FB and Twitter UI's were ugly..as long as the product is solid the UI usually gets better over time and is what drives mass user adoption
Even lower case?
How to Tap Employee Ideas
Engineering role opens at E la Carte (restaurant tablets, YC S10)
Have you thought of what well-designed software could do if it was easily accessible in social, physical environments like restaurants?

E la Carte (www.elacarte.com) is a Silicon Valley startup out of MIT that develops tablets for restaurant tables so guests can order, play games and pay from their seats (split the bill!) without having to wait. You may already have used our product in the wild. We're funded by top VC investors, restaurant executives as well as the creators of Dropbox, Groupon, Greplin and Reddit.

Requirements

- Required language knowledge includes C++, Python, Javascript and Perl, as well as experience using SQL, XML and REST interfaces.

- Cross-platform development, machine learning, network protocols, data mining and experience working with diverse APIs are a major plus.

Software in physical environments will change the way people experience activities as routine as dining out with friends. Our custom tablets require both hardware and software design, but our development focus is on the software. We have a highly competitive hiring process and we're looking for driven software engineers to join our fast-moving, creative team.

Our technical challenges consist of scaling a robust software infrastructure that can power tablets in thousands of restaurants - something never done before. We also face the challenge of developing a simple yet powerful front-end for mediating interactions between our tablets and guest/staff. It's not easy, but it's a lot of fun.

The culture in our team is straightforward: take ownership of your projects, communicate regularly with the team and get stuff done. No big company bureaucracy - the bias is towards action and results, not popularity and politics.Flexible hours, great debates about the future of tech and lots of free dinners at restaurants for 'research'. We move fast, take risks and aim high. The best idea always wins.

To apply please send your resume and a brief cover letter to hiring@elacarte.com . If selected, we will send you an engineering technical evaluation to complete.
Last I heard, HN was up to 80K uniques a day. I have no idea how many are registered members who actually can vote and all that, but the human mind can only deal with a "tribe" of about 150 people. In most online forums, where roughly 20% of people actively participate, this means you can sustain the sense of community up to about 700 members. HN is waaaay beyond that. Flaky things happen. It took me a while to adjust. I still have bad moments where I just think some people here are buttheads. But most days it's okay. The good news is that the scale of the place tends to prevent the cliques and such that can cause so much trouble in so many online forums.

Take care.
Have you heard of Duo Security?

http://www.duosecurity.com/
The code was written 20 years ago, but the -bug- didn't appear until people started writing 64-bit software.

I wouldn't call that a 20-year-old bug... It didn't cause any issues for most of that time because it couldn't have.
How things grow
I think the point is that he needed a comparison function not and equals function. thus the subtraction. Erric Lippert had a nice series on subtle bugs in compareTo implementations, in part3 he talks about a similar version of this bug. http://blogs.msdn.com/b/ericlippert/archive/2011/01/27/spot-...

tldr; if you aren't doing a comparison in your compareTo implementation, you probably have a bug.
Sure, and a fair one! I think there are a number of tradeoffs you can make when taking on a new project:

- Will this make me happy?

- Are the people involved good people I can enjoy working with?

- Will this develop my skills in the way I want for my future?

- Will this enable me to open doors later that are shut now?

- Does this have a positive impact on the world?

- Will this have a long-lasting impact?

- Is this ethical, will it be used for good or evil?

- Is it something that I can be proud of? That I'll tell my grandkids about?

I've been lucky enough to work on a variety of things all of which stretched these constraints in wildly different directions. In each case I've tried to push things towards a happy medium when it was clear things were tilted too far in one direction. I'm quite happy with what I am working on now, as it is with a great team, provides good technical challenges, and has a positive, real impact on thousands of people's lives in an ethical, positive way, while potentially having a long term impact on building sustainable, local economies as a whole.

The point of my post is not to 'judge' people doing things they enjoy. It's to point out that it's important to keep in mind these tradeoffs and be honest with yourself. At any point in my career I like to think if you asked me where what I was working on fell on these lines, I could give you an honest answer. I think there are many engineers who blindly follow technical problems wherever they lead, without thinking of the larger picture.

My original post was pointing out video games certainly, for the most part, fit into these tradeoffs in a common way. (Again, I am talking about applied software engineering in video games, not all facets of video games.) If you're working on fascinating computational geometry algorithms for the next game that lets people run around shooting each other in the head, I think you know where what you're doing falls on these dimensions, and I think it's important to know if you're comfortable there. (Yes, I play and love Quake 3.)

It's hard to phrase these things without people taking it personally, but I've known many engineers that wake up 10 years into their career and realize they've been working on incredibly interesting technical problems which are being applied to things they aren't really too stoked about.
>Performance compared to .Net or Java. When each array element access checks the bounds and throws exceptions, you know you're leaking CPU cycles there.

/facepalm

Has this person worked with modern JVM runtimes? JIT compilers? Does he know that they don't actually need to test the access each time but are able to move the test out of the loops? Or use the Unix signaling system to avoid having to create an exception, except when something goes wrong?
I find the notion that Android is a copycat silly, given the significant differences between Android and iOS. Apple has liberally incorporated the ideas of others throughout its history: everyone from Xerox Parc to Braun... and that's a good thing because it has helped consumer computing evolve. If Android is a copycat of iOS then iOS is a copycat of PalmOS. The real underlying issue seems to me that Apple is bitter about anyone competent daring to compete with them.
I guess, practically that's true, but the original code still violated the constraints of the abstract machine for which it was written (it assumed pointer sizes valid only for particular implementations of C++, etc.)
using subtraction for comparison can easily be broken due to overflow. This particular case may have been fine... but i wouldn't count on it.
'Evidence' would just barely squeak by, but even that seems strong for the facts provided.
Help this guy understand how to find a technical co-founders on Jig.com
> But, what significant inventions can we credit to... the cell networks?
http://en.wikipedia.org/wiki/Bell_Labs#Discoveries_and_devel...
How To Lose Weight Faster, Safer, Simpler
> Flask creates new concepts that seem counter intuitive to me at the first look.

You don't have to use them. Just do the Bottle way if you prefer.
Typically, at the assembly level, doing a "compare" will change the contents of some CPU flags, but not registers. Normally, those CPU flags would then influence future instructions - most often a "GOTO if this flag is set" instruction.

In this case, you want to return the result of the comparison from a function. Since functions return values in registers, you'd need to do some extra work to copy the result into a register from the flag.

Between compiler optimisations, and the cost of your function call in the grand scheme of things, the difference is likely negligible. This may, or may not, have been the case in 1991. Also, casting to an integer pointer rather than a char pointer means the code has to divide by 4 at least once. (He did write this "optimisation" as an undergraduate!)

EDIT: Actual assembly comparison, from gcc -O3 (Apple's 4.2.x). subl (subtract) and cmpl (compare) take the same amount of time. But then _compare has to do setne to to store the "not equal" flag into a register, then movzbl to expand that result from 8 bits (which is what setne writes) to the full size of an int.

_subtract: // return (int)((char*)key1 - (char*)key2))
pushl	%ebp
movl	%esp, %ebp
movl	8(%ebp), %eax
subl	12(%ebp), %eax
leave
ret

_compare: // return key1 != key2
pushl	%ebp
movl	%esp, %ebp
movl	12(%ebp), %eax
cmpl	%eax, 8(%ebp)
setne	%al
movzbl	%al, %eax
leave
ret
One of things I like about github is that it's done a great job of enticing developers to write good README files. I've seen many projects that do a fine job of introducing the project, listing things like license, dependencies, etc., and showing example code of how it works. Often times it also links to a demo or screencasts. For most projects, this seems good enough -- most project web sites don't add any more value.
Yeah. I had a similar idea a while back (as I noticed that 99% of my personal spam filter rules on a web forum I was running were URL filters for scam companies), and then immediately realized that attack and shelved the idea. I feel like the answer to this question, if they have even thought it through (which they probably haven't), should be the first thing on the site, right after the paragraph that describes what they do.
Could you please give me a specific example of how you use Q (something more towards the language side, rather than the database side)? Also: How did you learn Q? I've been playing with it, and I've read "Q for Mortals", but I'd like to do more, although not in the field of finance. I find Arthur Whitney's journey from APL to J to A+ to K/Q quite interesting, and I'm trying to figure out just how powerful Q really is. Thanks in advance.
Worse is better does not apply to bitcoin as a cryptographic system, only as a monetary system. As a cryptographic system it makes a clear choice for more features over simplicity.

Make no mistake, bitcoin is a very complicated system. Not for a piece of software, but for a cryptographic system.
One that aims to replace the fundaments of our economic system. With such ambition, "it seems to work," is not good enough.

As someone who has spend some time hacking the bitcoin code, I have little confidence. Although I have not found any outright errors, the quality of the code shocked me. The code does nothing to provide structure and/or insight to the already complicated protocol. Basic protocol is mixed with parsing of messages and parallelism of the code. I for one, fully expect major and near fatal errors to be found in bitcoin.
Thanks for reading; your summary is pretty decent.

But obviously I differ about the elegance and following. Elegance is not optional; elegance is useful; elegance has important practical consequences.

Go back to rpg's original paper and one of his examples - the difference between ITS and Unix in system calls was not one of mere aesthetic elegance, but a case where Unix programs were incorrect and could, and did, fail! Like freeing memory in memory management, it's easy to omit the check whether the system call failed.

This applies to each of your points:

- the anonymous vs pseudonymous distinction - you can build anonymity on top of the pseudonymity (I spent a couple links and cites establishing this with the mix material!) but you can easily not succeed in getting the anonymity you wanted. Just like you can easily not check system call success on Unix.

- the centralized infrastructure: anyone who wants to be a full miner peer can... they just have to buy the GPU power. Like writing a secure & bug-free Unix C program, it'll cost you. (One in money, the other in time & skill.)

- meaningless as currency: I am actually not sure how elegance plays into that at all, so I have no cute analogy to rpg's Unix/ITS system calls. The wasted computing power is inherent to the system of avoiding double-spending (I also spent some time discussing this), but that's not related to Bitcoin being worthless or not as a currency. Any damn thing can be currency, after all; currencies are as currencies do.
I Want to Die
Exactly. Apple's genius is in making technology usable, not just making technology.
I think discussions on performance go south because we all instinctively use Big-Oh ideas, but there are times when constant multipliers really matter: when the computation is really, really long (big scientific computations), or when microseconds matter (interactivity and real time stuff).

As an example, for big scientific computations, Fortran seems to be about 30% faster than C, its next fastest competitor (at least this is what some physicists who did huge jobs to process imagery data to look for planets told me once). If you are running a job that takes 15 minutes in C, this doesn't matter, but if you are running a job that takes 10 days it matters immensely, especially when you consider that you still have to debug. 30% is three more days you have to wait for output before tweaking your stuff and trying to beat the other guys to publication.

With interactive programming, performance means you either get under the perceived instantaneous threshold or not, which is often the difference between "this app is cool" or "this app sucks". If you can get a 2 fold gain using C versus Java or C#, you can do a LOT of stuff "instantaneously" that otherwise make the user tap their fingers impatiently. Not too mention the high speed work of quants.

In the work I do -- processing moderately large datasets into summaries on 12 hour deadlines -- 20% here or there doesn't really matter. I think this is kind of interesting
It isn't the people going to the university that will be the problem: it will be trying to explain what you are doing to your parents, employers, or friends. I got my degree from "The College of Creative Studies", which has one of the top physics programs in the nation; this is understood by grad programs you talk to, but all those people external to the academic process just look at you as if you are insane, and went to some kind of lala-happy program.
They exist in the same embrace-and-extend industry as every other technology company. It's just as irritating that so many people believe Apple invented the MP3 player.
It's pig ugly, but it's not a bad design, just philosophically different to how Apple work.

Apple take their platonic ideal of design - a perfectly smooth pebble of metal and glass - and try and compromise it as little as possible in the process of making it a computer. They're amazingly good at that process, but inevitably face compromises.

Lenovo (and IBM before them) build purely for performance and let form follow function. If a bulge in the chassis means a better machine, they put the bulge in the chassis.

For example, you'll notice a VGA port on the side. Apple would consider it an unacceptably bulky legacy port. Lenovo fit it because their target market values being able to hook up to a projector without a fragile and easy to lose adapter. There are hundreds of really clever bits of design on a Lenovo, but they're all about Getting Stuff Done.

I've alternated between Mac laptops and Thinkpads for as long as I can remember, probably over a decade. They're both the best in their field by a very long way, but they're competing in very different markets based on very different design philosophies.
> As someone who has spend some time hacking the bitcoin code, I would say I have little confidence.

There are a lot of differing opinions on this. I quoted Kaminsky at length as someone with major security credentials who is saying the opposite of you.
Ask HN: looking for feedback on new site
Not sure why my post was removed but I'm looking for feedback on a new site chatnearme[com] also mobile app same URL. Hopefully this doesn't violate any terms of service
It was a bug. It should have had

assert(sizeof(void *) <= sizeof(int32));

(or better yet, a compile-time assertion).
Should be re-titled to "so you want to be a video game programmer at a large studio".
I thought it might too, but then he writes:

"A zero result means equals, and non-zero means not-equals… and then the results are cast to 32 bits."

So he didn't care about ordering.
The game industry puts this type of workload on more than just leads and managers - the rank and file toil for long hours with miserable pay (compared to the rest of the industry). There are a few exceptions to the rule - studios where life resembles something like normal, and crunch time is an anomaly, not year-round.

They are few and far between though. I grew up in Vancouver where EA has its largest studio presence, and the number of burned out game devs I've met is a little scary.

Video games is like Hollywood - it's glamorous, and has the tendency to suck in some great talent, chew them up, and spit them by the curb 2-4 years down the road. And this will not change so long as there's a lineup of talented artists and developers out the door and around the block waiting for their crack at what may just be the worst working environment known to software-dom in this country.