RetDec: open-source machine-code decompiler based on LLVM - <AUTHOR> https://retdec.com/ <comment><USER2> Can this be used practically to recompile a binary from one platform (e.g. Intel) to another (e.g. ARM)? It would be interesting to compare the performance with an emulator like QEMU.

<comment><USER3> I have been thinking about this for a while now - on the one had, as somebody who has never tried anything like this and has no intention of ever doing so, it sounds like a really good idea. On the other hand, if it was such a good idea, why aren't people doing that already instead of paying the performance penalty for emulation over and over?

<comment><USER4> There are a few billion reasons why it doesn't work. Indirect calls and jumps are usually the most common one because they can only be resolved while the program is running. Then there is self modifying code, most commonly because the executable was packed with UPX or equivalent. Then there is the fact that contrary to popular opinion emulators aren't forbidden from using JIT compilers which cache commonly executed code. The JIT may take some time to run but it's a negligible portion of total CPU time.

Then there is the problem that the userbase for running emulated software just doesn't exist or is incredibly small. People and businesses are completely fine with running x86 only software on x86 hardware. The effort spent on building a super advanced emulator should instead be spent on making the new platform easier to develop for and ensuring more software is supported natively.

<comment><USER5> > Indirect calls and jumps are usually the most common one because they can > only be resolved while the program is running.

and

> emulators aren't forbidden from using JIT compilers

work together also in reverse: decompilers are not forbidden from running the code being analyzed, and a re-compiler could use a JIT in order to work around some more dynamic issues.

</comment></comment></comment></comment><comment><USER6> This is neat. I recall not long ago seeing a presentation on rev.ng [1] [2], which has some similarity to RetDec.

[1] [https://rev.ng/](https://rev.ng/)

[2] [http://llvm.org/devmtg/2016-11/Slides/DiFederico- rev.ng.pdf](http://llvm.org/devmtg/2016-11/Slides/DiFederico-rev.ng.pdf)

</comment><comment><USER7> I am coming to realize that ARMv5 and earlier are "dying" in the many projects are slowly removing support for them (e.g. node.js), or weren't initially supported and the line in the sand is drawn at ARMv6 or later (likely due to the popularity of the early raspberry pi's), for example with clozure Common Lisp: [https://github.com/Clozure/ccl/issues/190#issuecomment-46068...](https://github.com/Clozure/ccl/issues/190#issuecomment-460687549)

Perhaps I can use something like this to port the ARMv6 assembly backwards to ARMv5?

</comment><comment><USER8> Been working on a few reverse engineering projects myself and it's a great refreshing experience when you can find a tool that outputs a good approximation of what the original code was doing, even if the approximation is terrible. Modern compilers seem to love to move around registers, use one- off instructions, pad everything, stick nops in everywhere, etc.

Also vtables are an extreme pain. What's function 0x10? Just gotta guess or try and inspect it at runtime.

<comment><USER9> > love to move around registers

Using -O2? I would imagine register moving is done in this case out of necessity due to either call conventions, syscall conventions, loop semantics, etc

> Pad everything/stick nops everywhere

Yes and I'm glad they do. Branching to a non 16-byte aligned address is much slower. Accessing misaligned data is slower too.

</comment></comment><comment><USER10> So basically this is a capstone to llvm mapper allowing you to use llvm tools. Nice I guess, too bad it is capstone though

</comment><comment><USER11> Pretty cool stuff. On a somewhat related topic, is anyone aware of a tool for adding efficient instrumentation to X86-64 binary code (e.g. to add simple checks to every memory store/load)? I'm aware of e.g. BAP, but I'm not sure whether there are better alternatives.

<comment><USER12> The best dynamic instrumentation tool for x86 code is probably Intel's Pin tool ([https://software.intel.com/en-us/articles/pin-a-dynamic- bina...](https://software.intel.com/en-us/articles/pin-a-dynamic-binary- instrumentation-tool)).

</comment></comment><comment><USER13> One wonders if, given a proper abstraction, some closed source executables can be recompiled to WASM with an LLVM IR "lifter".</comment>


Show HN: My first API, with SMS-based 3rd party auth method - <AUTHOR>

I've been experimenting with building an API for Spotversation over the last few weeks. I couldn't get OAuth to work correctly (yet) and I don't like the process anyway, so I made my own SMS-based 3rd party authentication method.
API Docs: http://spotversation.com/api/docs (clickable link at bottom of page)
Example Event: http://spotversation.com/shdh Login: 6502068481 / fake
I'm really curious how it gets the basic concepts across for other developers. Thanks for any feedback! <comment><AUTHOR> API Docs: <http://spotversation.com/api/docs>

Example Event: <http://spotversation.com/shdh></comment>


Rapid GUI development using familiar technologies (fat-free electron) - <AUTHOR> https://github.com/cztomsik/stain <comment><AUTHOR> We've almost finished big refactor so that it's more approachable for others to contribute - if you feel like it's something you'd like to do, please let me know...

So far the docs are a bit off (react part works almost the same, but low-level API is very different)

For people wondering what this is about - it's a composition of yoga (flexbox layout), webrender (2D primitives rasterizer), pango (text) and custom react reconciler.

What is this good for? In some cases, it might replace electron... Certainly not now, but in future, yeah I guess it could. I personally want to make alternative desktop environment for my linux pc (gnome & cinnamon are js already, but imagine if you could do apps with hot-reload and using any of conventional javascript libraries & tooling)</comment>


Ask HN: Evernote alternatives for research? - <AUTHOR> I do alot of research for both product/market evaluation and general interest type stuff. Evernote's tagging features have served me well for a long time and make it easy for me to find stuff.
Their web-clipper is also an amazing tool that is super-useful, but not essential.
I'm getting involved in a project where the nature of some of the data I'll be handling is such that I can't host it with Evernote. So I need an alternative.
I use mostly Mac/iPhone. I don't like OneNote. Would prefer desktop software, but I'm fine with something with a server requirement. Open source is preferred. <comment><USER2> For academic research, I find [https://www.zotero.org/](https://www.zotero.org/) useful. AGPLv3 license, good integration with web browsers, and good sync. It has tagging and custom notes although I prefer using folders and a separate note taking app.

<comment><USER3> Zotero is good. I've also used [http://mendeley.com/](http://mendeley.com/), which is a good alternative to Zotero.

<comment><USER4> If going this route I'd also recommend checking out my brother's reference management tool Paperpile [http://paperpile.com](http://paperpile.com) [0]

It's kind of like Gmail for your papers—keyboard shortcuts, fancy Google Docs integrations, auto-downloading etc. He spent a couple of years after finishing his PhD to make his dream reference management tool with a couple of friends.

[0]: I also voiceovered the video on the homepage. A Redditor noted my natural voice is too cartoon-y for the subject matter which I found hilarious, and have since accepted.

<comment><USER5> It wasn't super clear from the page, but can I easily annotate PDF's from my iPad and use the summary of the annotations on my PC?

<comment><USER4> Sorry I missed this yesterday! They have a pretty amazing PDF annotator [https://paperpile.com/features/pdf- annotator](https://paperpile.com/features/pdf-annotator) but not sure how it looks on an iPad.

Here they suggest that using iAnnotate synced with Google Drive files works like a charm: [http://forum.paperpile.com/t/tip-sync-with-goodreader-on- ipa...](http://forum.paperpile.com/t/tip-sync-with-goodreader-on-ipad/49)

</comment></comment></comment></comment></comment><comment><USER6> Try CopyCopy. We do bookmarking and article saving but more broadly let you keep anything for later just by copying it (using normal copy and paste). So we handle not just web articles, but any information that's copyable in any app! See [https://www.copycopy.com/](https://www.copycopy.com/)

If our homepage isn't clear enough, check out [https://www.copycopy.com/product](https://www.copycopy.com/product) (excuse the unfinished wording on that page as it's not live yet).

You can go to [https://www.copycopy.com/account](https://www.copycopy.com/account) and turn on experimental features which will enable tags (called "labels"). From our webapp [https://www.copycopy.com/clips](https://www.copycopy.com/clips) you can search clips, or filter them by label.

Oh, and we're quietly releasing our Mac OSX app tomorrow.

<comment><USER7> You need a working live demo. Can't bring myself to signup just to try.

<comment><USER6> You're right, and thanks for the feedback.

We thought animations would be good enough but people do like to see the real live thing. Here's a live demo, albeit one with rather poor sound and editing: [https://vimeo.com/140990404](https://vimeo.com/140990404). Password is "disrupt".

</comment></comment></comment><comment><USER8> Former Evernote user here. I use [http://tiddlywiki.com/](http://tiddlywiki.com/) and its quite amazing. Self- hosted, small, fast, tons of features, superb tagging support. There is no mobile app, I use Dropbox and view it in Safari. Highly recommended!

<comment><USER9> Another vote for Tiddlywiki. It support tags, search, easy authoring, export to static html or plain text, hosting on a server or on your hd. All in a single file. There is Tiddlyclip plugin to clip pieces of text to your notes.

[http://tiddlywiki.com/#TiddlyClip%20by%20buggyjay](http://tiddlywiki.com/#TiddlyClip%20by%20buggyjay)

</comment></comment><comment><USER10> You may need to explain more about your work flow and data types.

Like if you were preparing a paper (you presumably aren't) Zotero is a super cool set of tools for citation and bibliography management.

If you are doing data science, Ipython for python and RCloud for R.

Command line geek? Both vim and Emacs have relevant tools.

A lot of code and large data files? A git repo and git annex may be what you are looking for.

<comment><AUTHOR> There's a lot of PDF files, clippings from websites or applications, reports from databases, as well as plain text.

A big part of my workflow is annotation of the source data and tagging it with various categories.

Honestly, my perfect tool would probably be OneNote's engine with evernote's tagging bolted on.

<comment><USER11> I haven't used it myself, but Yojimbo from the makers of BBEdit is worth a look based on your criteria.

[http://www.barebones.com/products/yojimbo](http://www.barebones.com/products/yojimbo)

</comment></comment></comment><comment><USER12> I'd go plain text with org-mode, if you are willing to learn a bit of Emacs.

Plain text has the advantage of being completely open to scripting. So it can satisfy any requirements you have down the road. Also easy to version control, etc.

Org-mode supports an immense amount of things already, including tags and it derives from an outline mode so it's great for note taking.

</comment><comment><USER13> I use Quiver a bunch [http://happenapps.com/#quiver](http://happenapps.com/#quiver)

<comment><USER14> Thank you for mentioning this app! I've been searching for a great native note-taking app with support for code-formatting and rich text (not just markdown), and Quiver is fantastic! Clean UI, completely configurable UI via CSS, blazing fast, and the full screen presentation mode is awesome! And for only $10, it's a steal!

<comment><USER13> I know! I could not live without it at this point. It's funny how one guy (he's actually on HN [https://news.ycombinator.com/item?id=8683597](https://news.ycombinator.com/item?id=8683597)) can totally own a niche and blow Evernote and OneNote and all the other note taking apps out of the water.

</comment></comment></comment><comment><USER15> Simplenote has tags, a desktop and iOS app, and a "good enough" feature set.

[http://simplenote.com/](http://simplenote.com/)

</comment><comment><USER16> For better and worse it's not cloud-based, but check out DevonThink: [http://www.devontechnologies.com/products/devonthink/overvie...](http://www.devontechnologies.com/products/devonthink/overview.html)

<comment><USER17> +1. For me, and I have used orgmode, onenote, and evernote and for me, there is nothing better.

</comment></comment><comment><USER18> To be honest, I use plain old email. If you have a decent client (I use Thunderbird) you can put any text, links, images etc in there. Searching is built-in. Tagging isn't quite as good but there are ways around it.

I then use procmail for putting into the right folder.

It has worked really well for me.

</comment><comment><USER19> Eaglefiler might be an interesting alternative. Closed source, OS X only, but actively developed, and from a one-person shop. [http://c-command.com/eaglefiler/](http://c-command.com/eaglefiler/)

</comment><comment><USER20> Orgmode is really good for this kind of stuff.

<comment><USER21> i second org-mode, criteria mentioned in request is available on org-mode. the only negative note to be mentioned is that it has steep learning curve

</comment></comment><comment><USER22> I'm also curious as to Evernote alternatives. One of the features they cut a while back is the ability to have nested notebooks and notes, a feature I loved dearly, but was cut several versions ago. I know some people who are still on the very first versions of Evernote due to this feature. There are other features that try to compensate for this (tags, keywords, etc), but I'm looking for genuine hierarchy of notes.

My main intention is for cataloguing, studying, and understanding many deeper contexts in religious studies.

</comment><comment><USER23> Try Microsoft One Note. You may find the following useful: \- track history of edits made to a page \- easy to insert images, videos etc. \- search works decent \- do complex sums etc inline without loading calculator or Excel \- Quite handy to write math equations.

</comment><comment><USER24> We are just launching myorb.com which is the excel of information sharing. You can upload any type of content files, bookmarks, links and pretty much anything else. Info goes into separate spaces where you can invite collaborators and then communicate with Chat, Email and Notes. It does what Evernote does but with a lot of other services which are currently in separate products. We are a web application and hence available on any device with a browser. I can give you a full demo as your use case is basically what we are aiming to provide.

</comment><comment><USER25> github + jupyter notebooks is what I use for my research notes... can put links and pictures and shit in it.

<comment><AUTHOR> I don't think that does what I need, but it's amazing. I'll spend an afternoon with it someday!

</comment></comment><comment><USER26> It's worth looking at AirStory - [http://www.airstory.co](http://www.airstory.co) I like their web clipper more than Evernote's.

<comment><USER27> Not sure I'd put professional data into a site that requires you to request an a beta invite.

</comment></comment><comment><USER28> I made Trunk as an Evernote alternative. It's open-source and web-based, using Markdown to store notes. It might be too simple for your needs however.

You can try it at [http://trytrunk.com/](http://trytrunk.com/) or get the source at [https://github.com/timdavies/trunk](https://github.com/timdavies/trunk)

</comment><comment><USER29> > I don't like OneNote.

It might help to be a little more specific here.

<comment><AUTHOR> OneNote is powerful, but it's way of organizing things just doesn't work for me. I end up with a sprawl that I can't find anything in.

<comment><USER30> Also, the web application is very poor on features. You can't even make a search in all your notes. This renders it useless to me.

</comment></comment></comment><comment><USER31> [https://news.ycombinator.com/item?id=10802046](https://news.ycombinator.com/item?id=10802046)

</comment><comment><USER32> You can try out Cubeit - You can collect all type of information into Collections which is similar to tagging. But its only on mobile for now.[https://play.google.com/store/apps/details?id=com.gridants.c...](https://play.google.com/store/apps/details?id=com.gridants.cubedroidbeta&hl=en)

</comment><comment><USER33> It would depend on the requirements. There are several Open Source programs, some will index locally, some won't. There are also evernote tools for command line such as GeekNote.

Oddly, if its public. I have had clients use a wiki; or even Wordpress. (has mobile sharing app)...

</comment><comment><USER34> [http://www.onemodel.org](http://www.onemodel.org)

It's the best info organizer (for my style at least) that I know of, though (so far) less feature-rich than many products. I hope the About page at that link explains the present and future well.

</comment><comment><USER35> I have been using NationalVelocity on Desktop + Simplenote on iPhone and I couldn't be happier about it.

</comment><comment><USER36> If you don't like your research to be in the cloud, take a look on the open source desktop app of [http://tagspaces.org](http://tagspaces.org)

</comment><comment><USER37> I am doing lots of PDF reading and highlighting what's important. Using this tool to extract the highlights later when I need to summarize my highlights:

[https://www.sumnotes.net](https://www.sumnotes.net)

</comment><comment><USER38> Evernote has always supported offline /local notebooks without the cloud. You lose some features such as OCR, but the search feature works otherwise. Is there some reason that won't work?

</comment><comment><USER39> I am incredibly happy with Google Keep. Set it up like a Chrome desktop application and you can tap into all the awesomeness of Drive also. It's very simple, syncs with your phone app, etc.

</comment><comment><USER40> Try out Workflowy. Browser based, iPhone app. Crazy fast and super structured. I'm in the midst of shifting from Evernote and doubt that I'll ever look back.

</comment><comment><USER41> Tinderbox and DEVONthink.

</comment><comment><USER42> try dscout.com - refreshing take on user research.</comment>


Finding Product Market Fit - <AUTHOR> http://rein.pk/finding-product-market-fit <comment><USER2> I had a startup about a year ago whose "product" was collecting the career wisdom of alums 5-10 years out and sharing it with undergrads so that they didn't have to make the same mistakes that everyone else did. All of the alums, professors, and mentors we talked to about loved the idea, and were more than willing to share their wisdom. We built it, we collected stories, we launched...and students derived basically zero value from it. The problem was that without actually being in the situation that lead to those mistakes, they were unable to contextualize the advice: it was all just random words, good in theory but not interesting or actionable. Some things can only be learned by experience.

Ironically, though this meant the death of the startup, it actually served its intended purpose _for me and my cofounder_ \- the experience of actually doing the market research, building it, responding to feedback, and launching taught us a lot about what we wanted out of our careers, what we were good at, and what would be a blind alley.

I suspect that finding product/market fit is similar. I know about 8-10 people who have successfully built a startup. In all cases but one, they spent at least a year, usually 18-24 months floundering around without any idea what they were doing. These were not uninformed people - they had all read Hacker News, Lean Startup, every blog post and Paul Graham article they could get their hands on, etc, and in most cases had worked for or even founded startups before. In my case, we actually did the 100+ or so customer interviews, we got great initial feedback, we put mocks of our preliminary product designs in front of prospective users and got "Oh yeah, we'd definitely use that, let us know as soon as it's done!", and still got no users once we built it.

It just takes 18-24 months to develop the kind of deep knowledge necessary to build something innovative. That's working full-time and assuming you take all the shortcuts available to you. And that's time to the point where you have a viable _idea_ \- on top of that, it's usually 3-6 months to build out a prototype, and unless you've gotten very lucky with social connections, that's the _beginning_ point of where you might viably get seed funded. Profitability is usually 2-3 years beyond that.

Budget accordingly, and don't get discouraged when you're a year in and don't have a clue what you're doing.

<comment><USER3> Hey, great write-up. Do you have the collection of stories posted somewhere? It'd be interesting to have a look.

<comment><USER2> I want to start a blog with them sometime, but I've been pretty focused on my next venture, so it's taken a back seat. Maybe once I'm not in the "building a product is so much damn work and I'm not sure I've got all the details ironed out" phase.

I did do a blog for my first startup, which is a little dated now (2007-2008), but may still be of interest, and better yet, has already been written down:

[http://diffle-history.blogspot.com/](http://diffle-history.blogspot.com/)

<comment><USER3> That was interesting and mirrors my own feelings/thoughts, thanks for sharing.

</comment></comment></comment></comment><comment><USER4> The problem with this is that had they made the exact same post on Hacker News an hour earlier or later there's a good chance it would have gotten no more than two or three upvotes and never even made the front page. If that had happened, which in fact is probably the most likely outcome given repeated experiments, does that mean that it was a bad business idea? (For example, this is a great blog post but it's getting no upvotes, and so most likely no one is ever going to see this comment.)

I think the first idea was probably just a bad idea and they could have figured that out on their own or by asking someone.

The second idea, if they had gone and asked professors, they probably would have gotten mostly folks telling them it was a great idea. But in fact that was still a bad idea also.

And the third idea was a legitimately good idea, but I think the validation they got was as much due to luck as anything else.

So I like the idea in theory, but it's trickier than it sounds. A lot of people make the mistake of not doing any market valuation. But even if you put in the work to do this, there is still a very high value to building something that has a lot of optionality going forward.

<comment><USER5> I disagree with the statement that it was pure luck that they got so many upvotes/stars based on timing. Many other posts of startups got more upvotes and failed. Segment is providing a very useful service of translating and routing analytics data to other services. There is a lot of value in the service (in terms of time/resources it saves). High value services, sooner or later get discovered and more importantly, people/companies start paying for such services.

Great article though, some thing that each technical founder should read.

</comment></comment><comment><USER6> We love Segment, but what I'd like to know is how you guys managed to get a year's worth of funding for four people to mess around on obviously difficult to monetize ideas. What sorts of initial funding did you have? How does that work?

<comment><USER7> We raised $600k coming out of YC S11 demo day for the classroom lecture tool. We kept costs low, and paid ourselves just enough to live on for ~2 years (plus servers, shared apartment doubled as office, etc.) We burned down to about $80k in cash (~3-4 months runway, not recommended) about 6 months after the launch of analytics.js, and then raised $2m (June 2013).

<comment><USER6> That sounds like a pretty difficult time; I'm glad you guys made it through.</comment></comment></comment>


Why your child's school bus has no seat belts - <AUTHOR> http://www.msnbc.msn.com/id/40820669/ns/us_news-life/ <comment><USER2> > "Even the smallest reduction in the number of bus riders could result in > more children being killed or injured when using alternative forms of > transportation," it said.

Fascinating, someone actually thinking rationally about safety.

<comment><USER3> Replace "bus riders" with "airline passengers" and you've got a great argument against the new TSA screening processes.

<comment><USER4> By that logic, TSA actually makes people less safe by causing people to take long dangerous road trips over safe flights.

<comment><USER5> Yes, the TSA's policies cause somewhere on the order of 100 extra road deaths each year.

<comment><USER6> If you have a source for that number, I'd love to spread it around.

Edit: I found a paper from 2007 that claims there were 129 extra driving fatalities in the last quarter of 2002 due to harsher airport security. <http://aem.cornell.edu/faculty_sites/gb78/wp/JLE_6301.pdf> (page 27)

<comment><USER7> And another 1,200 more deaths than expected in the three months following 9/11: <http://ur.umich.edu/0405/Nov22_04/09.shtml>

Or that backscatter X-ray machines odds of giving you cancer are roughly equal to those of dying in a terrorist attack: [http://cosmiclog.msnbc.msn.com/_news/2010/11/16/5477568-are-...](http://cosmiclog.msnbc.msn.com/_news/2010/11/16/5477568-are- airport-x-ray-scanners-harmful)

</comment></comment></comment></comment></comment></comment><comment><USER8> > "six children die each year in bus accidents"

Those seem to be ridiculously good numbers and back up everything stated in this article. I would worry that making ANY changes could actually increase that number.

<comment><USER9> This seems to be the cue for those annoying people to start reciting "if it saves even one life...".

In reality, these numbers are incredibly good, so much that chasing after any improvement is bound to be extremely expensive. The money that would be spent on seatbelts or whatever could obviously be invested to greater effect in some other effort.

<comment><USER10> Sometimes those people are wrong, but it seems that in this case the cost is purely monetary and the budget has plenty of bloat in it where we could move money from which could make the final 6 lives be saved (it is what, the cost of two helicopters and 7 hellfire missiles? Half a bridge to nowhere?).

Given these things, I would have to disagree with you, in this case it would be worth saving the final 6 lives.

<comment><USER9> Of course there's a ton of bloat in the budget. But once we've pared down that money ( _if_ we could pare it down -- bureaucrats have been promising to do so forever, but it just gets worse), there are other ways to spend the money that would be more effective. It's a question of the opportunity cost: spending the money here means that it's not available to spend elsewhere. We must choose the most effective way to spend it.

We could install those seat belts on every bus in the nation, but that would cost hundreds of millions (and the article quotes information indicating that it might actually be counterproductive anyway, but set that aside for this argument). But that money could instead be invested in finding a cure for some childhood disease, or building a poison treatment center, or better law enforcement to keep some drunks off the road, and on and on. It seems to me that any of my suggestions are likely to save _more than_ six lives a year, so why would you want to invest that money on something that is going to do _less_ good?

</comment></comment></comment></comment><comment><USER11> _"The child will go against the seat, and that will absorb most of the impact,"_

It's remarkable how scientists, engineers and tech folk are able to abstract the description of a high-trauma event, especially for a young child's body and describe it in such matter-of-fact terms.

I note this here not only because it is striking to read but to also consider that we do this in our own work in the startup world. Often we will think of an act such as 'unfriending' someone as simply a manipulation and purge of row(s) in a database when, from the user's perspective, it may be a significant and deeply nuanced real-world event.

I think in both cases we could make better products if we articulated better and humanized events such as "going against the seat" or "unfriending".

 _(nb: I'm not comparing the impact of a mass body trauma to that of unfriending someone, fortunately for us there is very little if anything in startup world that has such real-world significant consequences)_

<comment><USER12> I don't disagree that "we could make better products" when analyzing things from a human point of view — that's practically day 0 in any industrial design class — but I dispute the implicit comparison here. It's extremely important that the person who saves your life doesn't think of it human terms. They need to be thinking in absolute terms because those terms will give them the power to save your life.

It again brings to mind the (Canadian version of the) Iron Ring. Building things that abuse the forces of nature and exert power over the shape of our work, building these things and having them _work_ , is distinctly beyond human terms. It's why you pair architects with structural engineers: a friend of mine always complains that his job is to remind architects about gravity. I wonder just how many lives have been secretly saved like that.

Of course, the best solution is to somehow hold on to both sides, but I think too much sentiment these days is reactionary against the dehumanized computer technology we're working our way past. I really liked the last slide of one of Job's recent keynotes where they put a signpost labeling the intersection of "technology" and "liberal arts". Always keep that intersection in mind even when you make a decision to walk in one of those directions looking for it.

<comment><USER10> The hole argument is stupid - there are plenty of money in Washington tied up to things that doesn't matter (bridge to nowhere comes to mind) which could be used to buy these damn safety belts. They don't hinder anything really, the price is trivial and 6 kids would not die.

But no, we got to be all "rational" about it (which is code for not do a damn thing).

<comment><USER13> When your injury rate is 6 out of 37.9 million [1], there's not much of a _policy change_ you can enact to make something safer. You're thinking "seat belts are more safe, therefore they are better." The rational argument is more along the lines of "Adding a drop of water to the ocean makes it more wet, but not in any way that matters."

[1] <http://en.wikipedia.org/wiki/Education_in_the_United_States>

<comment><USER14> I agree. This would be more of a burden than is necessary. Helmets and seat belts are some of the very few laws that exist to protect an adult from themselves. The social aspect of this being that we decrease the cost of healthcare from people flying through the windshield of a car. Nonetheless, all children in America should not be punished by forcing them to wear seat belts for negligible benefit. By doing this, other safety factors would probably be removed, and it would cause distractions for the driver to check if all kids are buckled at all times. "Suzy, put your seatbelt on! Suzy? Suzy, put it on now!" I can see this scenario, and it would likely cause more accidents than it would prevent.

</comment></comment></comment></comment></comment><comment><USER15> Six deaths a year? Add seatbelts and you'd have more deaths than that from communicable disease. Lets have all these kids put their hands on exactly the same surface.

<comment><USER16> _Six deaths a year?_

I went looking to verify that statistic thinking it can't be right, but I didn't find what I expected. According to the source below:

"Approximately 27 school aged children die in school bus accidents every year. Seven of these are passengers in a school bus and twenty are pedestrians. Of these twenty pedestrians, fourteen are killed by school buses"

In other words it seems your child is twice as likely to be run over by its own schoolbus rather than to die inside it in a collision!

[http://www.onlinelawyersource.com/personal_injury/bus/statis...](http://www.onlinelawyersource.com/personal_injury/bus/statistics.html)

<comment><USER17> The actual quote was:

 _About 440,000 public school buses carry 24 million children more than 4.3 billion miles a year, but only about six children die each year in bus accidents, according to annual statistics compiled the National Highway Traffic Safety Administration._

So yes, those six or seven only cover the students inside the actual bus.

</comment></comment></comment><comment><USER18> I grew up in NY, one of the states that has required seatbelts on all schoolbuses for some time. I'm not aware of anyone actually using them.

</comment><comment><USER19> Wow, thats an actually enlightening article from msn.com! I've been thinking in recent years about school bus seat belts and until now I hadn't understood why the state didn't require them. Now I feel a little better informed about the trade-offs.

I have a feeling that my thinking on the topic is tainted by the ever-present "Click it or ticket" billboards. This is something I feel despite having lived through the dawn of airbags, which were instituted in such a way to hype passive restraints. An example of that hype was that cars without airbags had to have automatic seat belts. Wouldn't that be just the ticket for those pesky non-seatbelt-wearing kids!

I wonder if in the future:

* adding seat belts will cause manufacturers/school districts to skimp on passive restraints

* the push to fuel efficiency will lead to lighter buses in the school district fleets, necessitating a move to seat belts anyway

Next up: why don't city buses have seat belts?

</comment><comment><USER20> In a crash, "The child will go against the seat, and that will absorb most of the impact," said John Hamilton, transportation director for the Jackson County, Fla., school board.

How do you go against the seat when the bus flips over?

<comment><USER21> Too bad the article didn't comment on the frequency of bus rollovers. One is left to conclude, though, that they must be extremely rare, if the average annual fatality rate is 6.

<comment><USER10> The busses would be extremely heavy in the bottom, and in addition it would require a collision with a large object to tip it over.

<comment><USER22> I think the more common case for a tip-over is going off the road into a ditch.

</comment></comment></comment></comment><comment><USER23> My child's school bus does have seat belts. Really.

</comment><comment><USER24> Alex Johnson must not have remembered the editors this Christmas.

 _…evidence is incomplete and uunconvincing, and they unconvincing, arguing that…_

</comment><comment><USER4> This article makes me feel like I'm talking to someone who would say: "I don't wear seatbelts because I want to be thrown from the car in an accident".

It all comes down to money. If we put in seatbelts things will cost more and I'm not taking a pay cut.

<comment><USER25> Did you actually read the article? Six kids die in a school bus every year. Awful, yes, but it's nothing compared to how many die in cars. Want to save more kids? Get more school buses with the money, not more seat belts.

</comment></comment><comment><USER26> On a side note, Anyone else surprised that installing seat belts would cost an additional 8000 - 12000 _per_ bus. That just sounds a lot of BS. $170 million per state. LOL.

<comment><USER27> 12-15 seats per row * 2 rows * 2 people per seat = 48-60 seat belts per bus. Does $150-250 per seatbelt seem _that_ unreasonable to you?

<comment><USER26> Yes. It is expensive even for a single installation.. Now, if the cost were $50 to install a seatbelt, then the magnitude of the issue of "costs of installing seat belts" wouldnt be so big and instead people would be judging the "need for seat belts" based on merits. Does it really improve the net safety for children.

No, I dont think each seat belt would need to cost 150-250 bucks especially when these are installed in bulk contracts.

<comment><USER28> Keep in mind that these seat belts would be retrofitted to existing models, models which may not be designed to hold seat belts since, as discussed in the article, almost no states require seat belts on school buses over a certain weight. Whatever the case, it wouldn't be surprising if installing a seat belt were 150-250 bucks as there are probably a metric fuckton of regulations on what such a seat belt needs to be.

This is pure speculation of course and, as you've said, only distracts from the real point. Whatever the cost, adding seat belts would probably only make things worse.

</comment></comment></comment></comment><comment><USER29> There's a better reason for seatbelts on buses.

Keep those little frackers in their seats.

If everyone isn't buckled in, driver should stop the bus.

$15k to install seatbelts? What if they weren't made from gold (or the gold lining the pockets of the vendor).

<comment><USER30> Why are you assuming that the kids want to get to school quickly?

</comment></comment><comment><USER31> That's also why there's no need to put on a seatbelt when you're sitting in the back of a car. I rarely do.

<comment><USER32> Because you are a small child and your car is as tall as a bus and the seats are designed to cushion impacts anyway?

<comment><USER33> Your car is also huge, yellow, and driven by a sober professional?

<comment><USER34> And probably the single most important statistic: weighs close to 30,000 lbs without 80+ bodies on board.

</comment></comment></comment></comment><comment><USER35> I don't understand how anyone can believe it's _safer_ to be unrestrained and free to bounce around the cabin in a crash.

It's definitely cheaper, though. And, maybe more importantly, banning kids who won't stay buckled up would be very unpopular.

<comment><USER36> >I don't understand how anyone can believe it's safer to be unrestrained and free to bounce around the cabin in a crash.

Did you read the article? That is the point; most people share your view.

Buses are safer because the tightly packet seats act like little pods of foam, like little safety bubbles. If the bus hits something, it's 4 inches of foam that the kid is going to hit...basic physics, f=ma, a=v/t...the foam increases the time it takes the moving body to slow to a stop, and spreads the force over a longer period of time. Since it would be instantaneous, not aggregate (I'm making both of those terms up, no idea what you would actually call this) force that you care about, a longer time at a lower force == a safer collision.

Think about it like this: you have two buckets, one of them is called "child" and the other called "seat". These two buckets contain a liquid called "momentum". If the bus hits a brick wall, all of the momentum from the child is going to get transferred into the "seat" bucket. The interstitial bucket you use to transfer this liquid is called "force".

The foam seat means that you're using a little tiny thimble to transfer the momentum from the child to the seat...it takes a long time, and it isn't very big...it's "gradual".

It's counter-intuitive, but that is one of the reasons that buses are safe.

<comment><USER37> While we're here talking about physics: another big reason why buses are safe are because of their high mass. I was in one accident while on a school bus - another car hit the bus head-on while the bus was stopped. The kinetic energy of the 1 ton car travelling at say 30 mph - 1/2 * m * v^2 - was absorbed by the bus. I won't step through the math, but because of the high mass of the bus, the resulting velocity of the bus+car was quite low (it also helped that the change in velocity was mitigated by brakes/tires/friction, as the driver was ready for the impact).

In any case, as a passenger on the bus, the result of the impact was quite minimal - there were no injuries on the bus, and the bus actually drove off afterwards (with no passengers and a bit of sheet metal scraping the pavement).

Granted, it's a different story if the bus hits a tree or is hit by a tractor trailer doing 70 mph.

Another reason why buses are safe? The bus is operated by a trained professional, most of which have years of experience driving the bus for hours every day.

<comment><USER38> I have often wondered about the difference in accident rates between professional and other drivers, anyone know if there are any studies done on this?</comment></comment></comment></comment>


Developer productivity: The art of saying no - <AUTHOR> https://localizejs.com/blog/startup/developer-productivity-saying-no <comment><USER2> This post is almost comically ridiculous if you try and apply any of it outside of the context of (I imagine) a small team that doesn't really do anything externally.

How do I tell my clients that I only do meetings on Thursdays? If they happen to be unavailable one Thursday, do they have to wait a fortnight before I deign to speak to them again?

Is this guy seriously suggesting that the way to stop being overwhelmed by inbox zero is by using Slack?

And honestly, doing one thing a day - really? How in the world does that work? Sure, doing one thing well is better than doing nothing or half-doing a bunch of things, but surely your goal should be actually doing a reasonable amount of things that reflect a solid day's work - and figuring out a strategy for reliably making that happen.

Perhaps I'm just a grouch today, but it feels like this post is either satire or written from a completely different universe, utterly unrelated to the one I inhabit and work in.

<comment><AUTHOR> Coworker of the OP here. To elaborate a bit:

> How do I tell my clients that I only do meetings on Thursdays?

I generally do 10-15 customer meetings per week. When I get a meeting request, I ask if they're available on the following Tuesday or Thursday with a 90% hit rate. Meetings are almost always not urgent, so fitting them into Tues and Thurs, instead of spreading them randomly througout the week, has worked really well for me.

> How in the world does [doing 1 thing per day] work? [...] surely your goal > should be actually doing a reasonable amount of things

In the context of software development, doing a large number of things usually doesn't push the product forward as much as doing 1 big 2-4 hour project.

Personally I still have 30+ things on my TODO list at any given time, but I try to center my days around getting one "big" thing done, and fill the rest of the day with smaller day-to-day tasks.

<comment><USER2> So you do meetings on Tuesday or Thursdays, and rather than doing one thing a day, in fact you do one big task a day and many small tasks. That's all fine and good, but 1) it's not really what the OP's post says, and 2) it's not really very revolutionary at all.

I'm glad it works for you guys, but I'm often irritated by these preachy posts which seem to say that developers should be treated as delicate flowers and suggest all manner of strategies to preserve their preferred ways of working, many of which, if you actually applied them to the real world, would result in clients saying, "Wow, these guys are hard to work with, can we please find someone else?"

<comment><USER3> I've been told that customers actually respect companies that say "no" to them more than the ones that always say "yes" to everything (as long as the rationale is explained and reasonable).

<comment><USER4> Just like you respect a romantic partner who is firm with you and has boundaries, more than you respect one who's a total doormat and lets you trample all over them.

</comment></comment></comment></comment></comment><comment><USER5> A lot of the commenters are understanding this post as the author putting down unbreakable commandments and then demonstrating that there are exceptions to the rules, and thus the author is wrong, or bad at his job, or whatever. We programmers have really got to learn to take stuff less rigidly.

OP can correct me if I'm wrong, but I read this more as "here's the ideal I'm working towards, and I follow it as much as I can unless there's a good reason to break it." Read it that way, and there's actually a lot of good advice in there. I've never met a programmer that didn't need to be in the zone to get big projects done well, and everything mentioned here is good advice towards finding time to get into the zone more often. As a start-up founder, I have a ton of little things I constantly need to do, and following advice like this to get those little things into manageable clusters that allow for less context-switching has been incredibly helpful in getting stuff done.

I'd never heard of some of the tools the author mentioned, and I sometimes forget some of the strategies, and a refresher is always nice. Thanks for the post!

</comment><comment><USER6> This reminds me of a type of professional that I see far too often. The professional who specializes in not doing their job. It happens with programmers, as well as many other specialties. You've probably seen them:

\- Software developers who as soon as you tell them what you need, they tell you why it's impossible.

\- Network administrators who apparently specialize in making machines not talk to each other, because things worked better before their first day

\- DBA's whose first priority is keeping you from accessing the data

\- Engineers who think it's their job to make things more difficult

Saying NO to all the things is better than getting nothing done, sure. But having the skill to say yes to the things that are needed is better.

<comment><USER7> It's all about what you say no to. For example, if it is something that will cause a lot of technical debt, as a developer, I push back until I get a concession where I have the opportunity to undo the damage afterwards. Otherwise the debt will increase stress, lower developer happiness, and potentially prevent the business from growing in the long term as developer retention becomes more difficult the longer it lasts.

If you're going to ask for something unreasonable from someone with domain expertise, expect to make a concession if you want it done since that person has a high likelihood of understanding the true costs of the request. It is all too common to see developers experience burnout from 60+ hour weeks in order to attempt to meet a deadline because managers were awful at planning.

I often take a more neutral stance through explaining that it would take [X] amount of time to build solid & tested pieces of functionality as designed, and then let the product managers assess the information to come to a decision to either scale back or if it is still pushed for, then push back for a concession. It doesn't have to be a Yes or No proposition, it is like bartering - you want to get to a mutual agreement so all parties are satisfied.

<comment><USER8> _It is all too common to see developers experience burnout from 60+ hour weeks in order to attempt to meet a deadline because managers were awful at planning._

Another pattern I've seen is the dreaded "artificial deadline" from on high. A project is structured to meet a tight deadline, resources are reallocated, nights and weekends are worked, stress ripples through the team. At great emotional expense the deadline is met, and the team submits the project, victorious.

And then nothing is heard for several days. No feedback from the heavens. Inquiries are made, and it's discovered that, well, no, in fact there was no particular reason this project had to be finished by that particular date. Managers have moved on, checkboxes have been checked. Because the project was nominally successful, the episode is used to further confirm the management theory that "the dev team needs deadlines, even arbitrary ones, or things don't get done." The project size and time frame is now baked into management's institutional memory as the new baseline.

</comment></comment></comment><comment><USER9> A strategy of communication avoidance might work if you're a one-person company with no managers and no customers, but in the real world, it's necessary to periodically come out of our hidey-holes and talk to people. The need to communicate regularly grows as the project's size and complexity grows, as deadlines approach, as requirements change.

The idea of the Lone Wolf Developer sitting uninterrupted in his office 24/7, building the software in a vacuum, gloriously emerging after three months, on time, with software that perfectly conforms to the requirements, that miraculously works exactly according to the customer's needs, is a myth-- incompatible with the reality of professional software development.

<comment><USER10> Having meetings every Thursday is exactly "periodically come out of our hidey- holes and talk to people".

<comment><USER11> I operate a "if you can't be bothered to structure your thoughts in a well- written email, you can bugger off" process. Meetings Thursday is a no go area for me.

This works well once everyone understands it.

Unfortunately for it to work, you tend to have to serve as an internal consultant to a company, write good replies and maintain a lot of documentation and technical standards.

</comment></comment></comment><comment><USER12> Am I the only person who hates daily morning stand ups here? Not everybody on the team arrives at the same time, so if you arrive early it will become aninterruption in your workflow. Sometimes I can't do what I planned to do and most of the time I don't care about what others are plamning to do.

Also in my previous companies members of my team had the tendency to talk _a lot_ in the daily standup, making it last sometimes 20 minutes.

<comment><USER13> 20 minutes? We have a technical architect who alone babbles nonsense for half hour in each standup. Some people confuse stand ups with their counselling sessions.

<comment><USER14> Then whoever is running the stand up.... sucks. This is not a stand up.

</comment></comment></comment><comment><USER15> The pendulum always swings to one extreme; it never seems to find a resting place in the middle.

Productivity is all about balance, which is a word that never appears in this article. A blog providing polarizing advice won't be any sort of silver bullet, as the definition of "productive" will, quite often, change completely. One day it may be fielding calls, having meetings, and talking to clients. Another day it may mean sitting in a dark room for ten hours with a coffeemaker, a laptop, and yourself, just banging out bugfixes and feature requests.

This is the kind of concept that should be felt out on a project by project / week by week basis, not with a rigid "WE NEVER DEVIATE!" attitude.

</comment><comment><USER16> It's kind of strange, but I came up with the same (more-or-less) rules while I worked.

Especially interesting, was that I worked at a place that "required" meetings pretty much every day. I just decided to start skipping them, all of them. Absurdly, nothing happened. I was able to complete all of my work by Tuesday afternoon (skipping the 3 monday meetings).

Then I would meet one-on-one with my boss (who agreed that I could try this out), show him what I did, and by wednesday I started something new. Within a month I convinced three of the teams (3 - 8 people) to start doing this. It was pretty awesome it was to improve productivity by just trying to skip meetings I didn't want to attend anyways.

<comment><USER17> Yup :) I also get a morale boost from feeling rebellious and anti-bureaucratic when I skip meetings. "Fuck y'all, I've got _code_ to write, your words don't mean anything to me. If it's important my project manager will give me the lowdown."

</comment></comment><comment><USER18> Their key points here were:

-Inbox Pause

-Thursday Meetings

-and Do 1 Thing a Day.

I personally use:

-Archive Everything

-Never have meetings... ever.

-and Prioritize

My email is like Chat unfortunately, so much back and forth on projects I really can't afford to only chime in once a day or nothing would ever get done. But everything gets archived unless I'm working on it actively, or I still need to reply.

Meetings... I never meet in person now. The time suck is just horrible awful miserable. I will occasionally have a phone meeting, but they aren't much better, but at least I don't have to take time to shave and drive.

1 thing a day would be nice unless your world consists of 200 little tiny things. So, I prioritize and block out hours to get things done. Then I DO apply 1-thing-a-day to my side-projects so they stay fresh.

To each their own.

<comment><USER19> Not having meetings or conf calls might work for you but I would be very surprised if it works for your customers and/or peers (assuming you have any).

If there is one thing I have learned it's that the quality of communication in a team usually makes or breaks the project. The quality of communication with a customer makes or breaks the relationship.

It's important to remember that humans have been communicating for thousands of years without email, chat servers or telephones. Our brains are hard-wired to respond to facial expression, tone of voice and body language.

All of this is lost with computer-mediated communication channels. Your post prompted me to look at this study which you may also find interesting: [http://www.academia.edu/538403/Face-to- face_Versus_Computer-...](http://www.academia.edu/538403/Face-to- face_Versus_Computer- mediated_Communication_Exploring_Employees_Preference_of_Effective_Employee_Communication_Channel)

Don't get me wrong, meetings for the sake of meetings are a waste of time but that's not to say that they do not have their place.

<comment><USER20> I find maker-vs-manager a bit brittle as well. A company I'm very familiar with has people going into and out of immersive "modes" that involve creative work as well as communication about that work. So, someone might spend all week in "ABC mode" and have 4-8 meetings about ABC as well as shipping a few features or solutions. Others might advance a few large features and be interrupted by 2-3 meetings, but because they are connected, the immersion is not broken.

</comment></comment></comment><comment><USER21> We all make fun of "One weird trick to lose belly fat" but how many articles have you read about pomodoroing, closed offices, meeting refusal, and the like?

The market is ripe for The Secret to Developer Productivity, a product that talks about all the common strategies in a happy but "we all know they don't work" style, while promising to let you in to the True Secret after you break out the credit card.

<comment><USER22> > We all make fun of "One weird trick to lose belly fat" but how many articles > have you read about pomodoroing, closed offices, meeting refusal, and the > like?

I've been reading them for years. I'm sure there are vets who have been reading them for longer.

I'm also sure a good portion of management - at all levels - have read it, or heard about it, or attended a conference etc.

So then why does it persist? I'm sure it's not down to just one reason. There are three that instantly spring to mind -

One slightly cynical one could be that management simply views the eroded productivity as an acceptable cost of getting things their way in regards to meetings, agendas, stopping by to bother you and so on.

Another, more self-critical one, is that we as developers just aren't assertive enough in demanding change in the workplace. Maybe we do need unions. I don't know.

A third is that for every one company that "gets it" there are hundreds (if not more) of companies that don't. Most of them not even in your field/industry, but if you want them as clients then external pressure to conform to their way overrides the ability to operate how we want.

I'm sure there's lots of other good reasons it happens and probably plenty of bad ones. I haven't _completely_ given up hope things could change throughout the industry but it's not something I'd cling to.

</comment></comment><comment><USER23> Very interesting article, something every manager who manages developers should read.

However I think a lot of developers (Particularly startup ones) have multiple roles, so interruptions and changing flow is a part of the job. How do you suggest to get around that? My only solution would be to split your day up into chunks for the different roles, minimizing context switching.

<comment><USER24> >> However I think a lot of developers (Particularly startup ones) have multiple roles, so interruptions and changing flow is a part of the job.

That's how my last job was. Tasks varied as followed:

* Work on upcoming project X (release date in the future)

* Feature request on project Y (need done somewhat soon for a client on an already operating project)

* Bugfix needs done NOW on existing project Z

* Ops issue with servers, database, etc

</comment></comment><comment><USER25> I disagree with many haters in the comments. Of course, it works differently for different people and different businesses. But the ideas in the article make me willing to try some tweaks to my workflow. I will just try less hardcore implementation of those things (eg. limit meetings and calls to 3 days a week and see how it goes).

</comment><comment><USER26> _Weekly sprint planning. 30 min over Monday lunch._

I'm happy to eat on company time if you like, but if I'm working it doesn't come out of my lunch break :)

<comment><USER27> Also, I don't get how you can plan a sprint while eating. Sprint planning is like the most important time to be _actively_ in discussion.

</comment></comment><comment><USER28> My favorite developer productivity trick is office hours. Post times you are available on your door/cube and most people will respect it.

</comment><comment><USER29> I like the idea of holding personal email and then bulk delivering to my inbox at specific times during the day. However, the tool recommended by the linked post, "Inbox Pause", seems to just use a toggle button and doesn't have a scheduling mechanism. Anyone know of a tool that does? Maybe the folks over at SaneBox should add this.

<comment><USER30> How about Ctrl-W to just close the Gmail tab?

<comment><USER31> That's actually a great point.

</comment></comment></comment><comment><USER32> Anyone here who has not read "The Power of a Positive No" really should get to it. It's about how to say No constantly without being an ass. It's practically tailored around devs negotiating with customers.

I the whole world read Ury's "Getting to Yes" trilogy, the whole world would be a much nicer place to be.

</comment><comment><USER33> Meetings only on thursdays!!...Working in a startup I can say that those kind of enforcements is quite tough to keep on Clients...You know there is lot of competition every where...if your client is unhappy, they will find another one...

<comment><USER34> > Working in a startup I can say that those kind of enforcements is quite > tough to keep on Clients

The post is titled "Developer Productivity..." \- _most_ developers (regardless of startup or megacorp) aren't having meetings with clients.

</comment></comment><comment><USER27> It'd be nice, but the article comes off like a small-sized engineering team, telling much bigger businesses how to be efficient.

The reality is that the meeting is about communication, and that's almost-as- important-as coding for bigger teams.

</comment><comment><USER35> Love it, great read

</comment><comment><USER36> sounds awfully boring.</comment>


Perception is Reality - .Net OSS is DOA - <AUTHOR> http://amirrajan.net/meta/2013/09/19/perception-is-reality-dot-net-oss/

<comment><USER2> On the timeline presented there is a framework called ServiceStack[0] which I successfully used to significantly simplify internal APIs, used by multiple internal systems, back in early 2011.

Recently we brought on a new developer whose first question was "Why didn't you use Microsoft's WebApi". I had to gently explain that I couldn't use something that didn't exist. So I definitely feel the author's pain.

[0] - [https://github.com/ServiceStack/ServiceStack/wiki](https://github.com/ServiceStack/ServiceStack/wiki)

<comment><AUTHOR> This mentality is rampant, wish there it were better. Thanks for the comment (glad I'm not alone on feeling like this).

</comment></comment><comment><USER3> Very accurate. One of my coworkers constantly wants to use the MS version of things that I've been using for 2-3 years already.

<comment><AUTHOR> Thanks for the comment. How do you go about talking through this situations? Lost cause?

<comment><USER3> I wish I had a good answer, but what I do is point out why we are using what we are using. When we have a disagreement about this kind of thing my way usually wins because I'm the team lead, but I wish that weren't the deciding factor in most of our tech choices. I let that particular coworker use the MS stuff on small internal tools type projects, but when it comes to longer term stuff, or things that are more central to our company, I will push for the solution I think is best.

</comment></comment></comment><comment><USER4> This is why people leave .NET. Why build tools when people will only use other inferior tools.</comment>


JQuery PopBox Balloon UI Inspired by Highrise - <AUTHOR> https://github.com/gristmill/jquery-popbox <comment><USER2> That looks fine, but how is it different that the plethora of alternate implementations of that particular UI widget?

e.g. Bootstrap's popover: <http://twitter.github.com/bootstrap/javascript.html#popovers>

<comment><USER3> Also pretty easy to recreate using qTip2 <http://craigsworks.com/projects/qtip2/>.

<comment><AUTHOR> I saw qTip, but looked too heavy. Prob. took as much time to write the plugin as to read the qTip docs.

<comment><USER3> No arguments there. But I suppose if you want a tooltip framework that also bizarrely functions as modal dialogs, hover menus, alerts, notifications, ........., and maybe even tooltips, qtip2 would probably cover your bases.

Either way cool plugin.

</comment></comment></comment></comment><comment><USER4> Great start behanpsean!!!, have a look at beautytip for more ideas to add : <http://archive.plugins.jquery.com/project/bt>

<comment><AUTHOR> Thanks. I will!

</comment></comment><comment><USER5> I had never seen this css border trick for drawing triangles. It works in IE7+. Bootstrap uses the same technique.

<comment><USER6> Really? Maybe that's because you've never asked in the form of a URL: <http://cssarrowplease.com/>

<comment><AUTHOR> Awesome!

<comment><USER5> Yours is actually better because it works in IE7.

I really hate these sites that don't tell you what browsers are supported.

</comment></comment></comment></comment><comment><USER7> Thanks pretty cool!

</comment><comment><USER8> whats the license?

<comment><AUTHOR> MIT (just added to README)

</comment></comment><comment><USER9> There are a bunch of ways to do this already, and this requires jQuery. The only way I could see this as being interesting is if it has no dependencies. I really wish people would stop developing with jQuery as a dependency...

<comment><AUTHOR> It may not be interesting, but it may be useful to some folks.</comment></comment>


Solar Impulse plane starts 24-hour test flight - <AUTHOR> http://news.bbc.co.uk/1/hi/science_and_environment/10534960.stm <comment><USER2> Looks like they have an actual cockpit and pilot. I would have thought this would be a good use case for remote control. What reason is there to put a pilot in a (I assume) low-maneuverability prototype such as this?

<comment><USER3> For the press and for the record, most likely. Both result in them getting more funding for round n+1.

<comment><USER4> It's probably more likely that a pilot would be able to land the plane in case of a failure more so than an autopilot could. That plane probably isn't cheap, they don't want it to come down in someone's swimming pool.

<comment><USER2> I think GP had it right - now that it's landed and I've read the new article, I see it mentioned that they set a record specifically for _manned_ solar- powered aircraft.

</comment></comment></comment></comment><comment><USER3> The video shows a freakishly-low take-off speed o_O It looks like you could practically jog along side it, though that could just be from its size.

</comment><comment><USER5> "He is to take the aircraft to an altitude of 27,900ft (8,500m) by late Wednesday, when the sun's rays stop being strong enough to supply the solar cells with energy."

I'm just a bit confused by this. Wouldn't the sun's rays be stronger at higher altitudes because of having to travel through less atmosphere, and therefore less diffraction from the air?

<comment><USER6> I think they mean time of day, not altitude. Makes more sense without the comma.</comment></comment>


iPhone X Benchmarks - <AUTHOR> https://browser.geekbench.com/v4/cpu/search?q=iphone10 <comment><USER2> I want a high tdp A11 in a MacBook.</comment>


Why is Jeff Bezos building a giant 'millennial' clock inside a mountain? - <AUTHOR> https://www.techradar.com/news/why-is-jeff-bezos-building-a-giant-millennial-clock-inside-a-mountain <comment> really-dinosaur I really like this... It forces us to question our role in the universe. Whilst the pyramids have stayed, what would end up standing from the modern days?

Our days on this planet seem finite, and given progress recently I sometimes think that there can't be many generations left.

<comment><USER2> Contrarily, I find it to be a total waste of time, energy and money to build such a device and stuff it into a mountain where a few handfuls of people will ever see it.

The saying "out of sight; out of mind" exists for a reason.

</comment></comment><comment><USER3> One answer: because with as much money as he has, why the hell not?

I do think the Long Now Foundation is pretty cool, whatever I may think of Bezos & Amazon.</comment>


The Family That Couldn't Say Hippopotamus - <AUTHOR> http://nautil.us/issue/24/error/the-family-that-couldnt-say-hippopotamus-rp <comment><USER2> This article doesn't really debunk the chomskian hypothesis that language reflects deep structure in the brain; it simply refutes the more naive characterization that there is a "grammar gland" in the brain (which, to be fair, isn't even what Chomsky says).

To use a computing analogy, the fact that most networks are big-endian doesn't mean that there is something inherent about big-endian layout; it simply reflects the neoteny of networking (when most of the old time machines were big endian). But traffic analysis at higher levels can teach us something on how computing networks are organized today... which is a combination of what humans want and what machines are capable of.

</comment><comment><USER3> as a layperson, i have a hunch that language first developed as a defense mechanism against predators, and continued (perhaps more rapidly) with the proliferation of hunting weapons and methods.

an article/thesis from last year claims to have decoded gibbon vocalizations for distinct predators, as well as what the predators were doing [1].

and a while back i remember reading a theory that consumption of animal-based protein increased the brain size of early humans.

barring a monolith [2] my guess is that crude hunting tools provided more brain food for less work which, in turn, led to the development of more sophisticated tools and hunting methods.

so if the presence of predators caused early humans to develop simple words and grammar, perhaps a better-fueled brain, as well as the desire to teach and learn better tool development/use and hunting methods, expanded and improved this early grammar into something that could be used to communicate (e.g.) abstractions.

as a layperson, this process would seem to involve more than the mutation of one gene (e.g. FOXP_{2}), it would seem to involve lots of stuff: chemicals related to fear, stress, changes in diet, group dynamics, and so forth.

[1] [http://search.library.wisc.edu/catalog/ocn888412908](http://search.library.wisc.edu/catalog/ocn888412908)

[2] [https://www.youtube.com/watch?v=mM6OIlreneA](https://www.youtube.com/watch?v=mM6OIlreneA)

</comment><comment><USER4> The Neandertal race supposedly has the modern form of this gene.

</comment><comment><USER5> I think they're having a mother's day sale, too. I think it because they threw it right in my face. Didn't read the article though, I don't like it when offers get thrown in my face. But maybe that's just me.

<comment><USER6> You might like [http://thosefuckingpopups.tumblr.com/](http://thosefuckingpopups.tumblr.com/) or it might just make you more angry.

<comment><USER5> Haha. Well kind of. But honestly, the thing that really made me laugh was when I noticed that we now get the best of two worlds; the only thing that really annoys me other than popups is profanity in titles and URLs. So just for that, here's my upvote: you properly nailed it. +1</comment></comment></comment>


CERN scientists to announce proof of Higgs boson found - <AUTHOR> http://phys.org/news/2012-07-cern-scientists-proof-higgs-boson.html <comment><USER2> Here is an easy to understand article about implications of this discovery:

[http://www.wired.com/wiredscience/2012/07/higgs-boson- breaks...](http://www.wired.com/wiredscience/2012/07/higgs-boson-breaks- physics/)

<comment><USER3> And here's an animated introductory explanation of the Higgs boson particle <http://apod.nasa.gov/apod/ap120501.html>

</comment></comment><comment><USER4> They have certainly found something that is very close to the Higgs Boson predicted by the standard model of particle physics. How do they know its the Higgs?

[http://blog.vixra.org/2012/06/24/higgs-discovery-on-the- brin...](http://blog.vixra.org/2012/06/24/higgs-discovery-on-the-brink-but-is- it-the-higgs/)

There are some intriguing unexpected signals in the data that is public so far:

[http://blog.vixra.org/2012/06/29/whats-the-deal- with-h-%E2%8...](http://blog.vixra.org/2012/06/29/whats-the-deal- with-h-%E2%86%92-ww/)

<comment><USER5> > How do they know its the Higgs?

Woit's comment is a pretty succinct explanation:

> The standard model gives very specific predictions for the behavior of the > Higgs, which are fixed by the distinctive properties of the Higgs field > (spontaneous breaking of the SU(2) gauge symmetry fixes how it interacts > with gauge fields, giving mass to fermions fixes its interaction with them). > These predictions have for a long long time shown that if the Higgs mass is > 125 GeV, it could not be observed until the energies and luminosities of the > LHC were available, and then it should be seen with certain specific signal > sizes in certain specific decay channels.

> What the LHC experiments are seeing is, after decades of no such signal in > these and similar channels, signals appearing in just the right channels, > with roughly the right signal size. If this isn't a Higgs, it's something > very like it.

[http://www.math.columbia.edu/~woit/wordpress/?p=4809&cpa...](http://www.math.columbia.edu/~woit/wordpress/?p=4809&cpage=1#comment-115426)

</comment></comment><comment><USER6> To steal a user's comment, finally an article that doesn't include "God particle" in the headline. I was rather disappointed in the CBC.

<comment><USER7> Leon Lederman, who popularized the phrase "God particle" with his book,

[http://www.amazon.com/The-God-Particle-Universe- Question/dp/...](http://www.amazon.com/The-God-Particle-Universe- Question/dp/0618711686/)

has some serious street cred as a physicist

[http://www.nobelprize.org/nobel_prizes/physics/laureates/198...](http://www.nobelprize.org/nobel_prizes/physics/laureates/1988/lederman- autobio.html)

and as a promoter science education reform. (I heard him speak on the latter subject in my town at a science museum a few years ago.) I agree with you that a term like that probably needs explanation in a popular article about physics, but I can think of much more harmful terms in popular articles about science.

<comment><USER6>
        but I can think of much more harmful terms

"Evolution? It's just a theory!"

</comment></comment></comment><comment><USER8> It would be more interesting if they did _not_ find it. LHC needs more exciting results to justify its cost.

<comment><USER9> Is 9 billion a lot? as an american, It's hard to see that as more than the operational cost of a fighter jet.

Just trying to manage the data from the LHC lead directly to the world wide web. I'm pretty sure there were a bunch of other technologies developed, like the superconducting cable that power those magnets, that will have a big long term payoff.

I mean, sure, it's a lot of money. I think we're getting NASA moon mission level of return on our money. Paying a bunch of smart people solve really hard problems does good things for everyone.

<comment><USER10> _as an american, It's hard to see that as more than the operational cost of a fighter jet._

Not sure if you're being ironic but a fighter jet typically costs a couple of orders of magnitude less than $9B - even the hugely expensive JSF (F-35) is 'only' $200M unit cost.

<comment><USER9> You're right. My estimate is off by a bit over an order of magnitude for the f-22. they cost just under 50,000 an hour to operate (<http://hatch.senate.gov/public/_files/USAFResponse.pdf>) you could certainly operate more than 10 of them for 9 billion.

I think a B-2 will come close to that though. 1 billion in todays dollars and 130,000 an hour for operational costs. -it's not actually 2000 a minute, there's a bunch of work before and after each flight.</comment></comment></comment></comment>


Clean your Rails app's config with configuration_manager - <AUTHOR> http://blog.wonsys.net/posts/33-clean-your-configuration-with-configuration_manager/

<comment><USER2> Pretty cool but why a plugin? Gems, please!</comment>


Zerocash: Decentralized Anonymous Payments from Bitcoin [pdf] - <AUTHOR> http://zerocash-project.org/media/pdf/zerocash-extended-20140518.pdf <comment><USER2> It's a little disappointing to see how much ZeroCash is hyped compared to Bytecoin ([https://bytecoin.org/](https://bytecoin.org/)), since the former is still vaporware while the latter is something real that you can go use right now.

While the CRS ZK-SNARK stuff used for ZeroCash is very exciting technology, the cryptographic assumptions are very new and kinda sketchy. The fact that there is a trusted initialization is unfortunate, especially since compromise of the initialization results in unbounded and undetectable inflation (well I suppose you can detect it once a single altruist ends up with more coins than ought to exist!). ... though it has implications which go far beyond transaction anonymity.

The Bytecoin approach is based on much simpler cryptography— a schnorr ring signature in the curve25519 group. The anonymity it provides is theoretically more limited— sort of like a CoinJoin where even ofline people or even already spent coins can be joined with you—, but because it doesn't required gigabytes of signing keys or tens of seconds of computation to sign it might be more anonymous in practice just due to being easier to use. (Oh yea, and did I mention, it's already in use so at the moment it's infinitely more private! :) )

So far all of these anonymous systems have a number of interesting limitations in common. For example, none of them support any kind of pruning so a verifying node has state that grows forever— as compared to Bitcoin where if you're just verifying new blocks (as opposed to helping initialize new peers) you can forget the old state... e.g. right now a Bitcoin full verifier technically only needs about 300MBytes of storage. So this privacy stuff comes at a rather extreme cost. I've suggested some ways to improve this (basically expiring old coins), but they reduce the anonymity set and have some usability tradeoffs.

In any case, it's certantly better to see things like ZeroCash and Bytecoin being worked on... I'm really skeptical about the wisdom of splitting up the crypto-currency adoption network effect just to introduce some new transaction features. But certantly doing it with substantive new features is way better than just-another-worthless-clone. ... especially when there is running code and not merely a whitepaper. :)

<comment><USER3> Zerocoin was really the first of it's kind, that's where all of the hype comes from. The promise that Zerocoin offered initially was a lot stronger than anything around, and many people heard about Zerocoin long before they heard about CoinSwap or CoinJoin (and subsequently Bytecoin).

>I'm really skeptical about the wisdom of splitting up the crypto-currency adoption network effect just to introduce some new transaction features.

As someone who's been working on cryptocurrencies, I think that most of the Internet of Tomorrow is going to be driven by a set of cryptocurrencies that all do different things, following some of the primary principals of Unix. Storage and computation, for example, are services that I think will eventually find homes in cryptocurrency. Already you see things like MaidSAFE and Ethereum attacking these problems. But you also have problems that need to be solved like DNS routing, public random numbers, time synchronization where the modern solution involves centralized services.

Right now, there's not much that allows cryptocurrencies to communicate, but that's quickly changing and should move forward much more in the next 5 years. Merge mining, colored coins, and decentralized inter-currency exchanges are just the beginning.

There are a lot of problems that cryptocurrency has the potential to solve, and I think it's foolish to hope that a single cryptocurrency that will effectively solve all of them. But I also don't think that having 12 or 200 different cryptocurrencies means that any individual currency needs to be made weaker. Merge-mining is a good start, but I think that inter-currency cooperation and protection will continue to get better.

<comment><USER2> > Zerocoin was really the first of it's kind, that's where all of the hype > comes from. The promise that Zerocoin offered initially was a lot stronger > than anything around

Can you really say that Zerocoin was the first of its kind when it still doesn't actually exist? There is a crypto library that implements the blind accumulator but thats it. Not a usable system. Bytecoin and CoinJoins are things you can use today.

The anonymity offered by systems that exist is inherently better than that offered by ones that don't exist, I think. :) The Bytecoin anonymity is better than Zerocoin's too, even ignoring the whole existence part.

(FWIW, I (and others) were posting about CoinJoin a long time before Zerocoin was a twinkle in anyone's eye. But the suddenly popularity of Zerocoin made me realize that I needed to attach a compact and snazzy _name_ to the idea if I wanted people to pick it up and run with it. Doing so appears to have been a pretty massive success. ... I worry a lot about people paying too much intention on someday-ware and as a result not going out and building things that we can use sooner than someday.)

> As someone who's been working on cryptocurrencies, I think that most of the > Internet of Tomorrow is going to be driven by a set of cryptocurrencies that > all do different things, following some of the primary principals of Unix

Well, what do I know. ::shrugs::

To me "driven by a set of cryptocurrencies that all do different things" doesn't sound like unix it sounds like saying that "in the future computer communications will be enabled by orthogonal networks that each do different things".

I think currencies just like communications networks benefit from Metcalf's law... So it seems silly to me to artificially divide up the world into separate currencies just to get different transaction features. It's technically unnecessary. There is, I think, an argument for dividing things up for different economic approaches— e.g. freicoin's inflationary currency— but for transactional purposes, it just isn't necessary. You can have one cryptocurrency being used on many different transaction networks (including decentralized ones). And I think that if in the future these things continue to be used at all, we'll find ways to not create artificial friction where it can be avoided.

<comment><USER3> >sounds like saying that "in the future computer communications will be enabled by orthogonal networks that each do different things".

Well, if you consider ntp to be one network, and the dns system to be a separate network, and the CA system to be a separate network, that statement seems to hold pretty well to today's internet. I'm not sure if you were disagreeing with my statement.

>So it seems silly to me to artificially divide up the world into separate currencies just to get different transaction features.

Just as you can have one cryptocurrency being used on many transaction networks, you can have one transaction network that uses many cryptocurrencies. Just like the ntp/dns analogy, just because Bitcoin and Ethereum are separate systems doesn't mean that I can't actively use each for what it's most useful for. Each can still benefit from the users of the other.

</comment></comment></comment></comment><comment><AUTHOR> This is, for me, the single most interesting thing in the Bitcoin/Blockchain world.

I love the idea of Cryptocurrencies in general (and got interested in computers, cryptography, security, and cypherpunks around the same time in ~1992), but without something which makes every transaction unlinkable, and thus preserves fungibility of the currency, I find things like Bitcoin a step back from Chaumian blinded tokens. There's the potential for coin validation in regular bitcoin, and once there's technical potential, it can become mandated. Once that happens, even if it starts for something "nice" like preventing large thefts, it can turn into censorship.

 _With_ zerocash, I could see blockchain-based anonymous systems coexisting for low-throughput, high-persistence systems mainly going to blockchain tech, and high-throughput, non-inherent-decentralized systems doing their own Chaumian blinded token currencies. And "currencies" not just being used for human payments, but lots of forms of resource allocation.

<comment><USER4> Blockchain technology would certainly make title searches on real property easier.

Right now I have to physically drive to a land records office, pay the people behind the desk to look through some old photocopied records; which they can't even fully guarantee the accuracy of.

<comment><AUTHOR> There are two main systems of managing real property -- the decentralized common law system, and the land registry system. I think for each just regular signatures work -- the hard part is associating a key to each property owner, but a central timestamping service helps there.

Most of the automated systems for land title seem to be the civil law approach, and for that a central registrar doesn't really map well to the blockchain. There's also no real anonymity -- at best, pseudonymity for keys, but the hard part is binding keys to legal owners.

<comment><USER4> On one hand, I am glad that the transfer of property is not always 100% absolute.

Can you imagine what might happen if the land of the U.S. federal reserve building was somehow transferred to a random individual?

I used to get "free money" in my bank account all the time. Some banker would make an error, depositing a check from a member of a separate branch into my account with the same account number. The mistake was usually noticed during an audit and the money would magically be removed from my account.

Reversible transactions do have their place, I suppose.

<comment><AUTHOR> I think with real property (and probably with "major" capital goods), enforcement and registry are pretty intimately collected. If there's a specific organization I'd call to get a non-owner removed from my property, I'd probably just let that organization maintain a database of the property, especially if it's using some cryptographic technique to prevent forgery (through time, if nothing else), and some replication strategy.

Where it gets really interesting is with things like cars (and eventually cellphones and other similarly priced goods); putting effectively activation locks and DRM into the equipment. IFF you could trust the whole system, it would make theft much less of a concern, which is great.

<comment><USER5> There's nothing technical impeding having a database linking each phone to a UID-individual that could be disabled for carriers worldwide through some DRM scheme (iirc, law enforcement demanded it several times). What's lacking is will/coordination from carriers and device makers. They don't see it as a competitive advantage, apparently.

It could make phone theft a lot harder depending on the hardness of the DRM.

</comment></comment></comment></comment></comment></comment><comment><USER6> Could anyone better versed in cryptocoinage tell me how this differs from darkcoin[1]? DRK is another cryptocurrency created for anonymous transactions.

[http://www.darkcoin.io/](http://www.darkcoin.io/)

<comment><USER7> One of them is an academic paper and the other has a website that mostly consists of "coming soon" pages. But seriously, DarkCoin appears to use CoinJoin[1] which has a smaller anonymity set than SNARKy systems.

[1] [https://bitcointalk.org/index.php?topic=279249.0](https://bitcointalk.org/index.php?topic=279249.0)

<comment><USER8> Darkcoin has actually implemented a lot of new code. They have an advanced form of decentralized coinjoin called darksend mixed with a system of masternodes which share the block reward as a sort of proof of service. The masternodes require 1000 DRK ($6600+ as of right now) to limit network chatter and make it increasingly expensive for people to take control of a lot of masternodes. Additionally coins in masternodes are removed from circulation, allowing a sort of positive feedback loop as far as price goes.

Darkcoin V2 is also adding ring signatures mixed in with the masaternode system so I'll see how that works when it gets released.

[http://www.darkcoin.io/downloads/DarkcoinWhitepaper.pdf](http://www.darkcoin.io/downloads/DarkcoinWhitepaper.pdf)

</comment></comment></comment><comment><USER9> Can someone explain how this works to a non-mathematician?

<comment><AUTHOR> Do you want to know what the results are, or how it works?

The results are essentially that a central party can pool together an arbitrary number of bitcoins, then issue a derivative instrument against that pool. Those derivative instruments can be constantly recreated, so they're not maintaining any history or linkability. Once you receive one, you can also redeem it, destroying it, and claim an equivalent value of bitcoin, which is removed from the pool.

Except there is no "central party", except at the initiation of the system; you can build it so the central party creates parameters but doesn't save anything, so he's just a normal participant after that, and can disappear. So it's almost as decentralized as Bitcoin/Satoshi.

How it works is a bit more complex; it involves zero knowledge proofs about the derivative instruments. This is sufficiently advanced crypto that it will be a burden to anyone trying to understand it.

<comment><USER10> The math and crypto are fairly straight-forward, dunno why you're telling people they can't understand it.

I'm curious about implementation, though. Most derivatives have a cost of carry built-in and this doesn't. It also doesn't work unless you convert your bitcoin immediately; the blockchain doesn't forget.

<comment><USER2> > The math and crypto are fairly straight-forward

Would you mind explaining the q-power knoweldge of exponent assumption and how someone verifying the recursively constructed proof can be confident that the prover actually knows a _specific_ satisfaction of the circuit themselves given that the proof is much smaller possible state of different inputs? :P

</comment></comment></comment></comment><comment><USER11> "The Zerocash protocol extends Bitcoin and enables users to pay one another directly, via payment transactions that reveal neither the origin, destination, or amount of the payment."

I can't see many governments being happy with a service like this.

<comment><USER4> My thoughts exactly.

Matthew Green has carefully worded his presentation of this project in the past.

He has always claimed that such an implementation _could be_ possible. Not that it was inherent to the coin itself.

Let's hope that he gets it running sooner, rather than later. Before somebody has a chance to change his mind.

</comment></comment><comment><USER12> So is this something that can be added on top of Bitcoin or is it a separate coin with improvements? It isn't clear to me which it is from the abstract.

<comment><USER4> It is going to be a separate coin once released.

Their attempts to merge the original Zerocoin idea into the Bitcoin blockchain were met with contempt.

<comment><USER13> oh. contempt from whom, and why?

<comment><AUTHOR> The major objections are to the inherent complexity of Zerocoin (it uses actual bleeding edge crypto); the performance/size issues (it used to be hours per transaction, I think it's down to minutes now); and the potential for regulatory backlash at a time where Bitcoin people were in appeasement mode, to some extent.

<comment><USER14> Compared to the crypto used in Zerocash, Zerocoin's internals are fairly elementary.

Zerocoin used one-way accumulators and discrete log based ZKPs, which are fairly approachable to anyone who has taken an undergraduate course in cryptography. Zerocash, however, uses Ben-Sasson's highly efficient zk-SNARK construct [0], the details of which are probably fully understood by a handful of people in the world. There's a reason the people who geek out over this kind of thing (#bitcoin-wizards) call it 'Moon math'.

[0] - [https://eprint.iacr.org/2013/507.pdf](https://eprint.iacr.org/2013/507.pdf)

<comment><AUTHOR> Sorry, I confused Zerocoin and Zerocash (which even some of the paper's authors did when I talked to them at RWC).

<comment><USER4> It's easy to do so, considering that the new zerocash protocol's whitepaper references zerocoin and claims that its new coins will still be called zerocoins once implemented.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> isn't there a legal issue here - in any contract there is _consideration_ \- but if consideration is anonymous who can enforce a contract?

<comment><USER16> To enforce contract you do not always need identity. Identity is needed when enforcement is through violence. But you can use economic incentives to make people prefer following the contract.

[http://blog.oleganza.com/post/71410377996/real-crypto- anarch...](http://blog.oleganza.com/post/71410377996/real-crypto-anarchy- without-anonymity)

[http://blog.oleganza.com/post/58240549599/contracts- without-...](http://blog.oleganza.com/post/58240549599/contracts-without- trust-or-third-parties)

</comment></comment><comment><USER17> a source of some confusion: zerocoin !== zerocash</comment>


768-bit RSA cracked, 1024-bit safe (for now) - <AUTHOR> http://arstechnica.com/security/news/2010/01/768-bit-rsa-cracked-1024-bit-safe-for-now.ars <comment><USER2> Nit: most modern crypto does not rely on large numbers that are the product of two primes. Truly number-theoretic algorithms are mostly in the province of public key crypto. For all you read about public key, it's somewhat rare in workhorse production systems.

Also, truly modern public key systems aren't the product of very large prime numbers. Elliptic curve systems achieve better security at much lower key sizes, and for that reason and others it's displacing RSA, especially in the cryptosystems you don't regularly read about in Ars Technica.

There is probably another 10 years before there's even an academic result against 1024 bit RSA keys.

<comment><USER3> _For all you read about public key, it's somewhat rare in workhorse production systems._

I disagree. Sure, most data gets encrypted or signed using shared-key systems; but those shared keys are almost always negotiated using public key crypto. Don't forget that if you can break RSA, you can write yourself an SSL certificate identifying yourself as anything you want.

 _There is probably another 10 years before there's even an academic result against 1024 bit RSA keys._

Given the maxim that the NSA is always 10 years ahead of academic cryptographers, I'd say this is a very good reason to not trust 1024-bit RSA any more.

</comment></comment><comment><USER4> It needs to be noted that RSA as a whole is discouraged in favour of elliptic encryption.

RSA is difficult to use correctly, one needs the data to be padded correctly (OAEP), the prime numbers ideally should be Sophie-Germain primes and the keys need to be longer and longer which causes other problems related to prime generation.

See: <http://en.wikipedia.org/wiki/NSA_Suite_B_Cryptography>

<comment><USER2> There may not be a single person on Hacker News, including Colin, who knows enough to implement ECC safely. It's got at least as many easy dealbreaker pitfalls as RSA.

You don't need OAEP to make RSA work for signing.

<comment><USER3> _There may not be a single person on Hacker News, including Colin, who knows enough to implement ECC safely._

Yep. ECC is _messy_. I don't use it, for the very simple reason that I wouldn't trust an ECC implementation that I wrote. I _might_ trust DJB's ECC code; but I'd be really uncomfortable with using it unless I had spent at least a few weeks checking it over.

 _It's got at least as many easy dealbreaker pitfalls as RSA._

s/at least as many/many many more/

 _You don't need OAEP to make RSA work for signing._

No, but you do need PSS if you want to do things right; and PSS is basically the "natural" translation of OAEP from encryption to signing.

<comment><USER5> I agree. The randomized RSA modes (OAEP and PSS) are preferable to the old constant ones (PKCS #1 v1.5). They are better from a theoretical perspective and also from the fact that the randomization may protect you against an attack even in the face of some (but not all!) implementation flaws. They offer both better theoretical security and defense-in-depth.

</comment></comment></comment></comment><comment><USER6> Is there not already "CryptoCracker" website? Where, for a fee, you can submit a cracking task to a cluster and have it send you the results when it's done? Price is set according to a matrix: crackable items down the rows and turnaround times down the columns. The harder the crack and the faster you want it completed, the higher the fee.

</comment><comment><USER7> I discovered how RSA works only recently, but I wonder how long would it take for NSA to decrypt a RSA cypher. If people can do that in an academic environment, then I think we don't have to worry that NSA can't decrypt messages, because they are probably doing it more quickly.

</comment><comment><USER8> Factored != Cracked

768-bit RSA is no less safe now than it was last week.

<comment><USER3> _768-bit RSA is no less safe now than it was last week._

Indeed. It was completely unsafe last week, and it is still completely unsafe.

Stunts like this are like terrorist attacks: They don't make you unsafe; they merely remind you that you're unsafe.</comment></comment>


Using array_agg in Postgres – powerful and flexible - <AUTHOR> http://craigkerstiens.com/2013/04/17/array-agg/

<comment><USER2> Arrays are a really nice feature. As an aside, you can replace this line:

        array_to_string(array_agg(projects.name), ','))

with this:

        string_agg(projects.name, ',')

</comment><comment><USER3> Cool. MySQL and SQLite both have something similar called group_concat. Useful for creating lists of ids to plug into another system.</comment>


Ask HN: Which is the most customizable/programmable smart watch? - crypto-jeronimo <comment><AUTHOR> There was one smartwatch prototype released by Jolla, maker of Sailfish OS. But sadly, it didn't see the light. Try contacting the founders.

[https://blog.jolla.com/watch/](https://blog.jolla.com/watch/)

[https://tube.quinzel.tech/watch?v=Rd86KTs2Les](https://tube.quinzel.tech/watch?v=Rd86KTs2Les)

<comment> crypto-jeronimo Thanks!

So far, I've found this, but it doesn't seem to be programmable, in a conventional way:

[https://www.noodoe.watch](https://www.noodoe.watch)

I'll have a look at the Jolla prototype, and try to contact their engineering team, if it turns out to be relevant enough.</comment></comment>


Scala for the Impatient - <AUTHOR> http://blog.typesafe.com/free-pdf-from-typesafe-scala-for-the-impatien-64715 <comment><USER2> firstname.lastname@example.com is a vaild email address... That's too bad, I was quite interested in the book and willing to give you a real email for it too.

<comment><USER3> We've fixed it to handle "+" addresses now. Thanks.

</comment></comment><comment><USER4> Browser zoom-in on this page's text does not work.

Why do browsers allow websites to break this feature? If the result is unpleasant to look at, it is still preferable as the unzoomed page is not readable at all. Also, that would give designers an incentive to create size- independent pages.

</comment><comment><USER5> Please provide an ePub/mobi version. I don't mind if I have to pay for it.

</comment><comment><USER6> that's more or less in the same line as this other free book online <http://ofps.oreilly.com/titles/9780596155957/index.html>

</comment><comment><USER7> Went to the page, entered my email address. No link to click for downloading PDF on the page or the response email. FAIL.

<comment><USER8> After you enter your address, a button appears prompting you to click on it to open the pdf. Then you just save it.

<comment><USER7> I swear that didn't happen before. It works now. Thanks!</comment></comment></comment>