skysight-inc/HackerNews huggingface dataset:
If you assume they won't be able to break the encryption or coerce him, then you should buy BTC now. If he ever gets out of prison, maybe he'll be able to unlock a backup copy and spend them, but that will be 20 years down the road.
Mentorship does not mean being reshaped in the form of your mentor, as if you are supposed to become a carbon copy of them. It means learning from someone more experienced than you in a more controlled environment. And not just learning from situations you wouldn't normally find yourself in and thus benefitting greatly from specific context, but learning from a different perspective that you can incorporate into your own. You are being given an opportunity to grow and diversify your way of thinking and executing. Embrace it.
Hmmm... Thanks for the explanation!

Just thinking that through, and from what I can gather from all my other osmosis and grokking of bitcoin (without actually participating and risking/investing real money in it), I think I get the general concept that (a certain degree of) anonymity can be had with bitcoins without a particularly sophisticated methodology. That the anonymity remains real, as long as certain behavioral protocols are maintained (not unlike the kind of behavior that must be adopted to successfully implement a password, such as don't write it down, don't type in front of video cameras, don't e-mail it, etc etc...).

The whole transaction history aspect bothers me at a gut level (much in the way that exit node analysis is a deep systemic flaw of TOR), and in many ways affirms for me that anonymity is an emergent behavior and byproduct of other factors inherent to bitcoin. True anonymity doesn't seem to have been an original design goal of the system.
I don't think it is possible for a company as large as Google to completely avoid using Windows products. As an example, here is the video of the tour of Google's Data Center and around the 1:08 mark, you can clearly see them using Windows XP [1]. However if you meant to say they don't use it in their core services, I can imagine that.

[1] http://www.youtube.com/watch?v=wNyFhZTSnPg
1. it's just an idea of how to make a decentralized SR.

2. I doubt I'll be able to implement it entirely myself regardless.

3. even if I or someone else does, what is bad about it, exactly? It'll be just software. A set of Ruby/JS files. Everyone would be able to run a node so clearly punishing a mere guy who turned idea into reality, but who doesn't run the operations himself, won't be a feasible option.
In my case, the 'universal description language' is one that supports a single operation, let's say CC for 'carbon-copy', and some other number of operations (contrived to have a quite clumsy/verbose interface). The CC operation takes one input--the 'text' to output (which in my case would be T0 and J1). The 'other operations' would be only the minimal set required to still be Turing-complete (and once again would be devised such that no sane person would want to use them for any sufficiently complicated task). So, M is the implementation of the above UDL.

Then, the question becomes, how much logic do we have to put into M itself to achieve the above? I posit that it would not be very much in fact (but that should be demonstrable if someone were sufficiently motivated).

I think KC requires that M be constant across the texts you wish to compare (so that texts across various languages are normalized to an underlying architecture).

If one views M in this light (as an attempt to level the playing field across competing hardwares/algorithms/languages), then we could see it as the concatenation of the following:

1 - the specification of the raw hardware.
2 - the microcode for the hardware.
3 - BIOS, drivers, HAL, OS, etc.
4 - language implementation/runtime/shared libraries etc.

Now, to compare any two real-world implementations, we need to port them both to the language implemented in #4, for running on the hardware specified by #1-3 and sum their length with M's length.

And if we want to compare two algorithms from different languages (but running on the same 'machine'), we can shift the codes in #4 into the 'texts' of the programs themselves (so as to keep M constant between them). We can do this all the way down to the minimum M required to be Turing complete (and nearly all the way 'up' to the programs under test); i.e., the division between M and a particular text, L0, is somewhat variable.
Improve your messaging
Tell, don't Ask.
Cryptosphere author here. Thanks for the mention! The brochure site probably provides a better overview than the github project page:

http://cryptosphere.org

I should also give a shout out to Tahoe-LAFS, which the Cryptosphere is inspired by. They've also discussed supporting distributed webapps and adding a JavaScript API:

https://tahoe-lafs.org

> I'm curious to see what will be the first real world implementation

Cryptosphere, Tahoe-LAFS, and similar systems have all sorts of potential use cases. I'd love to see distributed Facebooks, distributed Wikipedias, and even a distributed DNS registry.

One of the reasons I'm using Git as the "object manager" in Cryptosphere is to better facilitate things like forking, so if there's a distributed web site you like, and you don't like the way it's being managed, you could fork your own copy and try to get people to use that instead (licenses permitting, of course!)
interesting counter argument. but you can still use the "trillion hashes" as a limit to how parallelizaeble it is, and then use m to increase the average amount of work done, but which however can be done in parallel. You are right that this increases unpredictability. You can balance a trade-off between the figure of "trillion" hashes and the value of m, to strike a balance between how much work you have to do to compute it, and how predictable and non-parallelizable the work will be (by increasing m).

e.g. you can work for an hour and increase it by a factor of 10,000, but the ten-thousandfold work will be parallelizable and slightly unpredictable; or you can work for 1000 hours (41 days) and increase the work by a factor of just 100 in the worst case - but the increase will be parallelizable and the unlocker might get lucky.

so you can really balance how much work you're doing with the level of parallelizability/predictability of the reverse.
Maybe bitcoins could be moved around in an onion-routing scheme similar to Tor. You might be able to see that a particular wallet ended up with the money but it wouldn't necessarily be possible to see where they came from originally.
I used it around 2002(?) when it was called the "Empower" program and it was 3 years long.
I agree with this response. Specifically highlighting the problem being a matter of practicality vs idealism. One of the things you learn as a young programmer is that bad code is inevitable when your resources are limited.

A practical generic solution, for example, that takes an extra 10 days to do, sounds fantastic from an engineering perspective-- we're trained to think this way. But on the business side of things, you may have a timeline for a feature to nab a client, or not enough budget for those extra 10 days, etc.

My opinion on these matters now generally falls into the it depends camp. Take his mentorship, because it sounds like he understands that every engineering solution is accompanied by a business solution and they must be agreeable for both parties (that said, he does seem a little jaded, so you don't have to take absolutely everything he says to heart-- there are companies who will give less weight to the business side of things, but the reality is that the consideration will always exist).
They are not more common in general use. They're more common in suitcases full of notes.
$ find / -mindepth 10 | wc -L
273

I seem to have some slightly longer file paths on my home computer. Do I need that? Probably not. I could move those files somewhere else. But should I really have to worry about such things?
That centralized party is a weak link, and in the case of SR, compromised all BC wallet ids that were used as well as the bitcoins stored.
This line of reasoning works when you have a fixed number of shares that represent ownership in something real, but I don't see how it works with bitcoins that have no intrinsic value. Bitcoins only hold value by inertia. People think they have value because they're accepted by other people because other people think they have value. I see no rational mechanism by which this feedback loop should jump 5% when 5% of bitcoins are lost.
Cleverly self-referential.
How to get auto-scaling of Google Compute Engine just right
3.5x Increase In Performance with One Line Change
> From personal experience .... I can't comment on ASP.NET MVC

Then you don't have personal experience in the area of Scalable web-based systems based on .Net. I speak from personal experience.

You don't need to go near EF, there are plenty of other ways to access data, the lightest of which is Plain Old SqlConnection. Don't knock it when you have a few simple, well-defined queries.

Though you should also look at other open-source lightweight frameworks such as Nancy or ServiceStack.

Also, it helps to use more loosely coupled components on merit not source language. It doesn't matter that ZeroMQ, RabbitMQ, memcacheD or StatsD aren't coded in .Net, it just matters that you can connect to them.
Which is a brilliant strategy in itself as the FBI can't introduce it as evidence with out providing him a copy.
Maybe a silly question... but what prevents counterfeiters from making false copies of the old bill if the new bill is harder to counterfeit?
Hey oellagaard. When you say, "I was also hoping for the possibility to write a synopsis for each blog article", where would you want that synopsis to show up? In the archive? Just curious about this idea. (I'm taking feature requests). Sorry if you find it to be too minimal and don't like the menu. I guess everyone has different tastes. I like your idea about storing the docs in dropbox.
See Matt Green's Zerocoin concept:

http://zerocoin.org/
It's not so much a generalization but somewhat of a reality of the culture. There is definitely the notion of where you are on the hierarchy ladder in India. Being of a lower or higher caste does change the dynamics of the work environment. Of course, it can be argued that its better now but the caste system is still a major part of Indian culture. Aside from the caste system, there is a large 'follow the leader' mentality.

Also, respect for your supervisor means doing what you are told and not speaking out (even if you should be).

Take a look around a typical company that may have a lot of workers from India. It's very likely that most will be in non-leadership roles and are are very good followers.
Perhaps, either way I'm always hoping for the alma mater to do well in all areas its involved in.
You can do normal deployment tasks all via the file system. I'm not sure why you needed physical access to do deployments, but that's not the usual case.
Exactly--people were happy with the old UI, which, non-standard or not, was in place for ~ a decade. They really resented having to learn something new. Now repeat that experience once for every new application you want to use. It can be extremely frustrating.
I don't think fairness is necessarily characterized by an exact 50:50 distribution, nor do I think that is a common view of it.
Taxing rich people more for having multiple homes isn't going to make them give up those homes (we are talking about "1%"ers, right?), all it is going to do is increase your tax revenue. If you plan is to use that additional revenue to provide housing for the poor, the knock yourself out, I think that is a swell plan. However focusing on where that money comes from is a distraction.

Rich people having multiple homes is a distraction that is engineered to tug on irrational anti-rich sentiment. Tax them if you want, but don't mistake them for the actual problem.
AutoCAD[1] uses a ribbon licensed from MS, and SolidWorks[2] also has somewhat similar UI bar.

[1] http://down.cd/images/apps/Autodesk-AutoCAD-2013-1241.jpg

[2] http://www.rickyjordan.com/wp-content/uploads/2012/09/SW2013...
Alternatively, I could suggest that CPU is cheaper than bandwidth, especially on mobile, so not sending a full html document with every request and just sending the required data and updating via JS makes much more sense for mobile.

Although this article is mostly about javascript on the server, and so isn't focussing on the fat js sites that you are talking about.
How can we bring query to the data?
To address the "it's super expensive" argument, let's consider the actual costs involved, for example the on-demand AWS EC2 LARGE instance prices:

Linux - $0.24 per hour
Windows - $0.36 per hour
Windows + SQL Web edition - $0.50 per hour

Overwhelming majority of startups spend most of their money on things like payroll and travel. The server costs is relatively small, and increasing it by 50-100% is not a big deal, if what you get in return is productivity gain.

So unless you are building the next YouTube I would not consider the cost a factor - use what makes you and your team most productive.
3 Must-Follow Rules for Creating A Content Culture
It's hard to judge this objectively, since you seem to be painting your differences from Mr. X in a particularly "new v. old" light.

A few examples:

X says that we should be using "special character" separated strings - without using a lib/wrapper that hides the underlying implementation.

Why does he think that way? Has he tried going down a JSON route before, only to be confronted with an edge case or peculiarity that makes his method simpler?

And this part jumped out to me:

For example, I say - Let's put in 10 more days and make a generic solution to create similar forms for 30 db-tables ... (time is not a problem)

Ten days is a lot of time. Can you put together an argument that the generic solution is worth that time even in the very long run? You say time is not a problem, but how is that possibly the case?
Confused? Not at all. I personally watch really godawful action movies on my spin bike on a regular basis. And if you're on your feet all day, by all means, eat what you want, you're going to need it! But don't lump yourself in with the couch potatoes. Physics doesn't lie.

I wear a fitbit and I can burn ~3,000 calories a day just walking around the office and doing household chores. If I exercise on top of that, it's 3,500 to 4,500 calories.
> Ask the Clojure people how THEIR IDE support is

Good from what I understand. Counterclockwise for Eclipse (https://code.google.com/p/counterclockwise/) received commercial support and sponsorship last year and is under active development. Chris Granger's Light Table (http://www.chris-granger.com/lighttable/) is an interesting contemporary look at an IDE. Tim Pope's fireplace (https://github.com/tpope/vim-fireplace) adds inline evaluation, a repl and some other tools to Vim. There's emacs of course.
You don't get to pick your mentors. They just happen. I have a lot of people I consider mentors, and none were "assigned" to me. And the ones that were assigned? They tended to be the absolute worst people to learn from, if for no other reason than they felt they had to impart wisdom and be smarter and justify being a "mentor".

Learn from him, sure. Maybe that means learning what not to do. But "mentor" isn't the word you're looking for here, I don't think.
3 Things That Every Startup Has to Build
The power of minimalism in technology
Yeah, I'm sure that'd work fine. The Image class itself doesn't have any size limits. I guess that the openGL engine might hit GPU limits on texture size, but the software renderer should handle anything you throw at it.
3-4 releases a year is a red flag to me if you're not shipping something physical to update.

That said, you can learn from almost anyone - talk to him a lot about the reasons why he makes decisions, not the decisions he makes.
> Writing a street address on an envelope, and sticking it in a mailbox? It sounds absurd compared to what you are doing to protect yourself on the digital side.

I agree, it does sound absurd. And yet...

> And it seems that I am not the only one who sees something there, as according to media reports DPR himself was extorted over the question of revealing the street addresses of users.

DPR was worried (assuming, as usual, that the indictments are reasonably accurate here and their lies, omissions, and insinuations affect only other things) about the reputation of SR as a whole: SR as a viable business was being held hostage. This is not something relevant to an individual buyer being blackmailed one on one, which was the scenario you were asking about.

> But for specific individuals like DPR, they should know that being involved in facilitating a large number of illegal transactions, there is much more likelihood that they specifically will be targeted by law enforcement. I would expect then that they would do more to guard access to their address.

Yep. The ID stuff was remarkably careless. We don't know that it was fatal - I personally suspect the Australia wire transfer may have revealed everything - but it obviously could have been.
Because you might go to jail.
No. It lacks extension support and it also lacks MSTest support. This means no integrated unit testing. This means coding like it's 1996.

Of course, you can run an NUnit runner separately, or as a custom build step, but, well, that sucks.
You can get 1.x installers for the command-line tools from ftp://ftp.gnupg.org/gcrypt/binary/
If you want to sacrifice some productivity then yeah, VS.Express would work.

(i.e. can't run unit-tests inside your IDE for example)
It should be noted that the biggest dog-fooder of the Microsoft web stack - Microsoft online services and Bing - has never been able to make big-boy money.
Certain SBT plugins and build settings can generate really deep nested paths under the "target" folder of a project. I think the point of this is to enforce file immutability during the build process - whenever a file is modified by a build stage, a new file is created instead.

I could be completely misunderstanding this though since SBT is fairly complex.
This seems a strange criterion. Do you mean that you expect all programmers to have written in PHP? Or do you mean, you'd expect a competent programmer to pick it up quickly?

I've been programming professionally for 18 years, and informally for 30. The most contact I've had with PHP is changing a couple of strings in an internal script.
Ask HN: How did you do marketing for your app?
I'm not talking about just launching your project and posting it to multiple sites. I'm talking about figuring out where your users are, making them take notice, selling and building a brand. I'm sure a lot of members here have some really good stories to tell.
everyone can make $50 to 80 per hr....if you work on your free time you actually will make a lots of money it depends on you how much you work.. just read carefully starts to end...here info big57.com
Thanks to Kevan from http://sendsmarter.co for the post. Definitely check out Send Smarter for great email tips.
Yes, I could include that in my guide. Since promises are actual values, most of the tools in async.js become unnecessary and you can just use whatever you're using for regular values, like your regular array.map / array.reduce functions combined with some promise tools like .all

You already have async.waterfall and async.auto with .then and .spread chaining.

files.getLastTwoVersions(filename)
.then(function(items) {
// fetch versions in parallel
var v1 = versions.get(items.last),
v2 = versions.get(items.previous);
return [v1, v2];
})
.spread(function(v1, v2) {
// both of these are now complete.
return diffService.compare(v1.blob, v2.blob)
})
.then(function(diff) {
// voila, diff is ready.
});

async.map is straightforward.

// download all items, then get their names
var pNames = ids.map(function(id) {
return getItem(id).then(function(result) {
return result.name;
});
});
// wait for things to complete:
Promise.all(pNames).then(function(names) {
// we now have all the names.
});

If you want to wait for the previous item to download first (ala .mapSeries) thats also pretty straightforward: you just need the previous download to complete, then run the next download, then extract the item name, and thats exactly what you express in the code:

// start with current being an "empty" already-fulfilled promise
var current = Promise.fulfilled();
var namePromises = ids.map(function(id) {
// wait for the previous download to complete, then get the next
// item, then extract its name.
current = current
.then(function() { return getItem(id); })
.then(function(item) { return item.name; });
return current;
});
Promise.all(namePromises).then(function(names) {
// use all names here.
});

The only thing that remains is mapLimit - which is a bit harder to write - but still not that hard:

var queued = [], parallel = 3;
var namePromises = ids.map(function(id) {
// How many items must be complete before fetching the next?
// The queued, minus those running in parallel, plus one of the parallel slots.
var minComplete = Math.max(0, queued.length - parallel + 1);
// when enough items are complete, queue another request
// for an item, then get the item's name.
return Promise.some(queued, minComplete)
.then(function() {
var download = getItem(id);
queued.push(download);
return download;
}).then(function(item) {
return item.name;
});
});
Promise.all(namePromises).then(function(names) {
// use all names here.
});

Is a library needed? Probably, but only for mapLimit.
This is what I'm experiencing right now. We've basically done away with prioritization. We have no project managers anymore (we used to have 7), so any interested party can come to any dev to get anything done. We basically have no pipeline for allocating resources and it is amazing how many people try to fly under the prioritization radar of the product manager and VP of Engineering. There is, paradoxically, too much trust and too little at the same time, we aren't trusted to be part of stack ranking, but we're basically responsible for partaking of the orders that come down from on high in anyway we please, if you're a full-stack engineer it sucks.
Cash Flow and Destiny
Funds were also transferred through SR's wallet so they could take their cut.
He probably has a very good understanding of the company's priorities and politics. Pay more attention to that. Politely disagree on the tech side when you think it's appropriate, make your arguments, and then implement based on what comes out of that.

On stuff like JSON vs. custom delimiters, that's old thinking - you can probably win that argument by finding out exactly why he thinks that way. Chances are that he's concerned about bandwidth overhead or something similar, or he's thinking about the effort of implementing it from scratch. You can argue against the former by doing some tests with your webserver's mod_gzip, and the latter by coding up a POC with a JSON library and showing him how easy it was.

Being mentored doesn't imply that you have to take everything they say as gold. Approaching their advice with a critical but respectful attitude is probably best.
I'd love for it to show up on the home page. Since some of my blog posts get a bit long, it would be cool to write a small synopsis of each article to let me user scroll through a few articles on the home page, without reading through the entirety of all each blog post.

I think it would be really cool if you could use the header from the bio page, for the rest of the site as well - then I think it would be less anonymous, e.g.: http://kristianoellegaard.silvrback.com/bio

In the end the menu isn't a big problem - but I would really like the opportunity to put my name or a blog name on the top of the page.
Presumably the old one will be withdrawn from circulation at a later date when most old bills has been vacuumed up. The Swedish Central Bank will stop accepting a couple of older bills at the end of this year, for example.
Why does Google blur out the name on this street sign?