What's wrong with statistics in Julia? - <AUTHOR> http://www.johnmyleswhite.com/notebook/2014/11/29/whats-wrong-with-statistics-in-julia/ <comment><USER2> Is Julia seriously targeting the R user base? Or, if it is honest with itself, is it going after the matlab people first. My sense is that engineers (Matlab users) and to a certain extent scientists (Python rules) will be drawn in, but the stats crowd requires subtly different priorities, that seem to be alluded to here. Graphics are one such priority. The excellent ggplot2 gets all the glory, but base graphics are mega-fast, extremely robust, and deeply customizable, and there is the unsung hero of grid graphics which provides an extraordinary set of abstractions for building things like ggplot2 and/or Lattice. My point is that so much graphical quality speaks _directly_ to one of the key requirements of statisticians, where at the end of the analysis, _communication_ is usually required. This is much less the case for engineers or financiers (big matlab users) for example, where correct and fast answers are the endpoint. Where is Julia on graphics? Last time I checked it was still trying to interface to R and/or Matplotlib.

The other thing that intrigues me is Julia's scalar computations being "at least" as important as vectors. This has the whiff of For loops (an immediate eye-roller for R people) accustomed to vectorization everywhere and essentially, exclusively. I am not suggesting that Julia doesn't do vectors well, just that, like any set of priorities, it is not catering _first_ for statisticians, whose requirements are often quite different from those of scientists and engineers who use Matlab and Python.

<comment><USER3> Julia does vectors well, but scalar computations are very important. The problem with vector computations:

        z = x*(v+w)

This involves a memory allocation for v+w, and a second one for the product x times result. One way to avoid this in numpy is careful use of out:

        z = zeros(shape=x.shape, dtype=float)
        add(v,w,out=z)
        multiply(x,z,out=z)

An even faster way, which only requires traversing the arrays once, and is more readable in my opinion, is a simple for loop:

        for i=1:len(x)
          z[i] = x[i]*(v[i]+w[i])
        end

This also lets you more easily put if statements inside loops, etc. You can also do accumulative calculations without creating intermediate arrays at all. I.e. one way to create a random walk is:

        walk = cumsum(bernoulli(p).rvs(1024))
        end_result = walk[-1]

Another way is:

        end_result = 0
        for i=1:1024
          if rand() < p
            end_result += 1
          end
        end

<comment><USER4> This is not a problem with vector computations, but the particular implementation. The vector expression in your example is by far the most readable. It is literally the math you had in mind.

De-vectorization in code is like embedding ASM code: you had to write it out because the compiler sucks. Good language design should favor lucid and concise syntax, and good compiler implementation should make it not necessary to circumvent it for performance. In this case, the compiler should be implementing those vector expressions without allocating unnecessary memory.

</comment></comment></comment><comment><USER5> I found some development discussion about the changes to missing values here: [https://github.com/JuliaLang/julia/issues/8423](https://github.com/JuliaLang/julia/issues/8423)

I've yet to try out Julia, but seeing productive and intelligent discussion like this followed quickly by execution certainly inspires confidence that it's a language with considerable promise.

</comment><comment><USER6> > In a future blog post, I'll describe how Nullable works in greater detail.

This is the part that interests me. If you're not using sentinel values like NaN, then it seems like you're left with pointers (terrible) or tags and tag tests (also pretty bad). If Julia can't use the processor's SIMD instructions (or the GPU in the near future), it's not suitable for inner loops. Do you special-case "Nullable{Double}" to use NaN as its "NA" value?

<comment><USER7> Thankfully, the solution paths you're enumerating aren't the only viable solutions to the problem of representing missing values. Because Julia has value types (called immutables) and because Julia can compile functions based on their input arguments' types so that the functions don't need to do any run-time tag checking, a Nullable{Float64} value can be stored using at most 16 bytes -- 8 bytes for a Boolean flag indicating whether a value is present or not and 8 bytes for the actual 64-bit floating point value. The latter 8 bytes can store arbitrary bits if the Boolean flag is set to indicate that the Float64 value is missing.

If you're interested in the details of how Nullable{T} works, you can start with [http://github.com/JuliaLang/julia/pull/8152](http://github.com/JuliaLang/julia/pull/8152) and then read through Julia's compiler code to understand how immutables are represented in memory and how functions that employ them are compiled to machine code.

UPDATE: Looking back at my answer, I should make clear that, when you want to work with SIMD or GPU operations, one can (and we will) use a representation of arrays of Nullable objects that places the values and the Boolean flags into two separate arrays. The values array is then identical to a normal 64-bit floating point array and allows all of the same operations. Setting the Boolean flags appropriately requires a bit more work. (How much work is strongly dependent on the exact computation being performed.)

<comment><USER5> Yikes. While this sidesteps some of the issues in the other approaches, it also doubles your memory usage and halves your potential SIMD performance. Maybe this is better than the downsides of the alternatives, but as someone working on optimizing large and slow R code with C++ extensions speaking to someone who is trying to replace R with something better, this seems like a choice that may haunt you in the future. If you can, I'd keep your options open for a "Structure of Arrays" approach or "buddy bitmap" that keeps your data contiguous and compact.

<comment><USER7> We'll keep re-evaluating this over time, but I'm currently not sure it's that serious a problem. For many numerically intensive computations, you'll want to move over to a pure array of 64-bit floating point values before the long- running computation begins, at which point you can adopt NaN == NA semantics if appropriate. I believe the solution I outlined in my updated comment above may already describe the buddy bitmap solution you're referring to. It certainly describes a solution that I would refer to as a struct-of-arrays.

</comment></comment></comment></comment><comment><USER8> I've got a perhaps naïve question related to:

> In particular, I'd like to replace DataFrames with a new type that no longer > occupies a strange intermediate position between matrices and relational > tables.

Namely, why is an embedded SQLite database not used for all things tabular in languages like R/Julia/Foo? I was thinking about this as I was attempting to reconstruct a visualization in Racket using their (pretty good!) 2d plotting facilities and lamenting not having a tabular data structure.

SQLite is embeddable. It has fast in-memory database support. It can operate reasonably quickly on data that is stored to disk. It supports indexing. NULL values already exist to represent missingness. SQLite allows for callbacks to user-supplied functions that I'd imagine could be created relatively easy in something like Julia.

As a side benefit, it seems like a SQLite-oriented tabular data store could be extended, like dplyr has done, to support other databases.

When I think about the use cases I've encountered where I've found myself reaching for DataFrame or data.frame, I am struggling to think how a tightly integrated SQLite wouldn't work.

Are there Computer Science reasons why this is a silly idea? I know Pandas claims nominally better performance than SQLite in some circumstances, but then again SQLite has also recently seen some substantial performance gains.

<comment><USER9> Racket comes with support for SQLite (the index of Scribble is built with help from SQlite for example). That is, it is possible to make such a tabular data structure with a reasonable effort.

It would be interesting to hear what kind of features such a tabular data structure. A post on the Racket mailing list is welcome.

<comment><USER8> Thank you for the example of SQLite being used with Scribble. I was playing a little bit with the sqlite interface, but using it rather naively to pass queries and return values.

Not quite sure I have the Racket chops to implement something like a data.frame abstraction over an in-memory SQLite database (or even dplyr style query construction). Maybe a project for after I get off Hacker News and finish up a couple of articles that have needed finishing...

</comment></comment></comment><comment><USER10> I'd be interested in seeing things you think are done correctly as well. We're working to build a statistics package in go as well (github.com/gonum/stat). It's good that people are taking a fresh look. Our capabilities are clearly limited at the moment, and the features of Go are quite different from those of Julia, but there's still a lot that can be learned in common.

<comment><USER7> To echo what I said in the post, I think using Nullable as the representation of missing values is the right strategy. I think it achieves sufficiently strong performance while also providing a lot of other desirable features.

As for other things that we've done well, I think the Distributions package is one of the best designed interfaces to probability distributions I've ever seen in any programming language. I don't know if Go supports value types, but the existence of value types in Julia allows each distribution to have its own distinct type without having to pay any cost for maintaining object identity. When combined with Julia's ability to do multiple dispatch, the Distributions package allows one to encode analytic knowledge about probability distributions directly into the type system. And existence of parametric types lets you talk about things like location-scale families in a natural way.

I'd also encourage you to look at the optimization libraries that have been built for Julia. The language makes it easy to do automatic differentiation, which is probably the most under-utilized tool in all of scientific computing. In general, I think there's really high quality work being done on optimization -- which I see as essential for enabling ad hoc statistical modeling.

</comment></comment><comment><USER11> Isn't the rather big flexibility of R to not eagerly evaluate, or to rewrite function arguments entirely (and apparently scope manipulation, that's a new one for me) one of the major points of critic? It always seemed to me that having "proper" macros is a selling point rather than only an approximation/emulation.

<comment><USER12> > _Isn 't the rather big flexibility of R to not eagerly evaluate, or to > rewrite function arguments entirely (and apparently scope manipulation, > that's a new one for me) one of the major points of critic_ [sic]?

For anyone coming from a programming background, the way R deals with scope and function arguments is incredibly confusing and frustrating, and causes all kinds of nasty bugs. It seems pathological.

For several of the academic statisticians I've talked to though, R seems to be their first programming language, and they learn (in a slightly fuzzy way, but enough to do their work) the behavior of its APIs without thinking too deeply about issues of scope or eager vs. lazy argument evaluation, etc. However it works is "just the way it is." When their expectations about what it should do are violated, they futz with the code until it starts working again and call it a day. People are typically using R to solve narrow concrete problems instead of building systems out of it, so most end-users don't really have practice with thinking about API design. (R is similar to Matlab in this way.)

Personally I think many of R's idioms are net negative for the language because they make the abstractions much less simple/clean, and make it more difficult to solve problems in general/adaptable ways. But for someone who already has substantial amounts of time invested in learning R's API quirks, and doesn't know any other way, it might not seem like a big deal.

<comment><USER7> A fun test to see if R users understand how R works is to ask them to predict the behavior of the following snippet of code:

foo <\- function(a, b) { if (a == 0) { return(1) } else { return(2) } }

foo(0, stop("Error!"))

foo(1, stop("Error!"))

<comment><USER13> Why? Seems to simple. I normally go straight for drop=FALSE the most evil default issue of the language.

<comment><USER14> Agreed. There are many WTF things I can think of in R, this is absolutely not one of them.

<comment><USER7> My experience asking people about that snippet is that very few people can correctly predict the results of that function without actually executing the code. What interests me about the question is that many people's mental model of how R programs are evaluated is often too vague to enable them to produce sharp predictions about program behavior prior to executing code.

<comment><USER15> This is funny because I was heavily skeptical yet completely reversed my opinion within 10 minutes. I correctly predicted the results, but I program R professionally. Then I asked my partner who's a non-programmer to read the snippet and her prediction was that the program would stop. That led me to reflect back on your statement. I think the key word is "sharp". I correctly predicted the result, but that's only because I trust lazy-eval heavily. Even then, it's hard to really cement trust in lazy-eval (for me) as it's difficult to mentally map. That's not exactly sharp after all!

<comment><USER14> "but I program R professionally"

To be fair to JMW, I used to as well - and perhaps more importantly I was writing end user software in R and not doing my own data wrangling.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> One of Julia's main selling points has been speed. They said there was no reason a dynamic language had to be slow, but now we see that as soon as they start adding basic features, such as support for missing values, it's beginning to take a toll on performance. I wonder if Julia 1.0 will be any faster than R or Python.

<comment><USER17> > ...now we see that as soon as they start adding basic features, such as > support for missing values, it's beginning to take a toll on performance.

Of course there is a price to pay for adding dynamic features, but only when you use them. This has been the case for Julia as long as I can remember (for example, fields of type `Any`). As far as I can see, isn't the whole point of Julia that you can go towards the dynamic end of the spectrum if you need to, while still being able to generate blazingly fast code by adhering to type constraints wherever it is necessary? All this within the same language, rather than with R and Python where you need to write extensions in a lower level language and deal with a C API.

</comment></comment><comment><USER18> I am a big fan of much of the work going on with statistics in Julia.

I'd like to point out another (related) thing though that is wrong with the state of statistics in Julia, in my opinion. Actually my problem has less to do with statistics, per se, than the mathematical foundations of statistical calculations. There are, of course, many different approaches to statistical inference (the Bayesian vs. frequentist camps infamous among these), but the calculations all come down to reasoning about probabilities which is a well posed but not always easy task. The Julia developers, in their wisdom, have recognized this, and as such have put together Distributions.jl the purpose of which is to provide datatypes and utility functions over probability distributions (plus some vestigial methods about maximum likelihood inference, which thankfully stay out of the way). If you haven't seen it, check it out. It's got a nice design, I think.

But there is presently a clear server limitation: the parameterized type hierarchy. The requirement is that every distribution have support over a set in which all members are either Univariate, Multivariate or Matrixvariate with elements in the fields being either Discrete or Continuous. This obviously misses the general picture of the kinds of sets from which one draws random variables, which plays into issues that the article mentions (if the probability distribution datatype can't model the data you have to do ad hoc things to account for it). Indeed a huge chunk of the issues currently open in the Distributions github page essential boil down to problems with representing the sets and/or spaces from which elements in the distribution are drawn:

[https://github.com/JuliaStats/Distributions.jl/issues/147](https://github.com/JuliaStats/Distributions.jl/issues/147) [https://github.com/JuliaStats/Distributions.jl/issues/309](https://github.com/JuliaStats/Distributions.jl/issues/309) [https://github.com/JuliaStats/Distributions.jl/issues/224](https://github.com/JuliaStats/Distributions.jl/issues/224) [https://github.com/JuliaStats/Distributions.jl/issues/283](https://github.com/JuliaStats/Distributions.jl/issues/283)

End users have a variety of well developed ideas in mind about the sets that their samples belong to and even the spaces from which they are drawn from which currently exceed the representational capacity of the existing types. In my opinion the way to fix this is to start a separate library that focuses on types and methods for representing and manipulating sets and spaces (i.e. topological information attached to sets). This could then be consumed by the Distributions people as well as others modeling things outside of probability.

<comment><USER7> I think it would be great to develop support for generic sets in a separate package that could eventually be merged into Distributions. I'm not sure that I think all of the issues you've linked to are related to that problem, though. For example, the issue about using Vector{Rational} as an input to the Categorical distribution type's constructor is a relatively minor issue since there are very few cases in which you'd want to evaluate the PDF of a Categorical variable using rational numbers rather than floating-point numbers. As such, it's not clear that you'd want to have a Categorical{Rational} type that's separate from the current Categorical type (which could be called the Categorical{Float64} type).

<comment><USER18> >I'm not sure that I think all of the issues you've linked to are related to that problem, though

It's probably true that many of these issues could be resolved without the need for this generic sets fantasy of mine. The resolution that you propose for Categorical{Rational} I think makes the right choice, given the tradeoffs that one currently has to make in designing these things.

The particular reason that I considered this issue to be related to the problem of the representation of sets is that if it is true that both the support of such a distribution and the values of the pdf were rationals one could support exact computation of moments and/or cumulants and/or coefficients of generating functions and the like. The "exactness" of these procedures becomes important if there is important information in the factorization of said moments/coefficients/whatever. In fact in these cases one actually might care to know not just that they are Rationals but Rationals with such and such restrictions, which is where more general type parameters would really start to shine. So perhaps someday somebody will want it...

<comment><USER7> That's true if Rational means Rational{BigInt}, but the default in Julia is for Rational to mean Rational{Int}, which can potentially produce less reliable answers that using Float64.</comment></comment></comment></comment>


CNN's holograms not really holograms - <AUTHOR> http://www.cbc.ca/technology/story/2008/11/05/tech-holograms.html

<comment><USER2> needless pedantry. hologram has entered the lexicon as meaning any 3d projection of an image. people involved in actual hologram research will no doubt be very frustrated in the next couple decades as many different methods of 3d projection are tried in consumer products and everyone calls them holograms.</comment>


The 'Too Rich to Succeed' Challenge Facing Start-ups - <AUTHOR> http://knowledge.wharton.upenn.edu/article/what-happens-when-start-ups-raise-too-much-capital/

<comment><USER2> There's a clear difference between raising a lot of capital and spending money foolishly. Just because a company finds it easy to raise large amounts of capital, doesn't mean that it's necessarily a bubble-type phenomenon. It could be the case, and probably is, that the company created a lot value and so was able to raise the money easily because of said value creation.

Having a capital cushion is an effective strategy, especially if the market does shift and the bubble becomes self-fulfilling.

The real issue is either around the need to quickly spend any raised capital or a valuation problem created for the next round. These are the things that management should focus on.

<comment><USER3> The only problem with early stage companies having a capitol cushion is the decreased mandatory competitiveness.

It doesn't apply to everyone or even a majority, but some meaningful percentage of young companies will lose focus when their runway is long enough for them to slow down.</comment></comment>


Megan McArdle is Always Wrong... - <AUTHOR> http://inversesquare.wordpress.com/2010/09/17/megan-mcardle-is-always-wrong-on-so-many-axes-its-hard-to-no-where-to-startoutsourced-edition/ <comment><USER2> McArdle is unreadable. In addition to the linked post, I'd recommend Mike Konczal's response to her post on Elizabeth Warren's scholarship:

[http://rortybomb.wordpress.com/2010/07/27/megan-mcardles- hac...](http://rortybomb.wordpress.com/2010/07/27/megan-mcardles-hack-post-on- elizabeth-warrens-scholarship/)

Isaac Chotiner's reporting on her blatant agitprop:

<http://www.tnr.com/blog/the-plank/megan-mcardles-word-games>

Ezra Klein on the same subject:

[http://voices.washingtonpost.com/ezra- klein/2009/08/in_defen...](http://voices.washingtonpost.com/ezra- klein/2009/08/in_defense_of_experts.html) and [http://voices.washingtonpost.com/ezra- klein/2009/08/is_megan...](http://voices.washingtonpost.com/ezra- klein/2009/08/is_megan_mcardle_right_about_e.html)</comment>


After Being Upstaged By Google, Wolfram Alpha Fires Back With A Leaked Screenshot - <AUTHOR> http://www.techcrunch.com/2009/04/28/after-being-upstaged-by-google-wolfram-alpha-fires-back-with-a-leaked-screenshot/ <comment><USER2> I think innovations in search will be largely about interface and about relevance. It's not who has the most, or the best data, because it's not really that much of a technical challenge to build a big search index anymore. So, I think that Wolfram could be on the right track, because this seems to try and expose data that Google doesn't, in ways it doesn't.

The challenge is providing useful and relevant snapshots of that data to the user. In this area, Google continues to innovate. Maps, images, video, reddit- like search, your name it... Google is always looking for new ways to reveal good data to people. And Google is definitely good at producing relevant searches for people's phrases and words.

Maybe Wolfram's new search engine will have a good interface, and provide relevant results. I certainly wouldn't put it past them, and I doubt this will be a Cuil flame out. Though I do tend to agree with the sentiment that talking about something before it is released is suspicious. A good search engine sells itself.

<comment><USER3> It's funny how none of you even question what a search engine should be. Everyone gave in to the concept that you want to find web pages.

Wolfram is the first one to say that you need an answer engine. The web has data, you want answers, not necessarily an URL.

When you discuss indexing, you imply keyword matching. That has nothing to do with Wolfram Alpha. If anything else, this discussion was a great way to question conventional wisdom.

<comment><USER2> I find it hard to believe that keyword matching has nothing to do with Wolfram Alpha.

</comment></comment></comment><comment><USER4> I will be really impressed when I can ask a question like the following:

"What is the historical cost of solar per watt for the last 30 years?"

and get a meaningful answer, which right now is scattered across various press releases, journal articles, etc.

I don't really care who answers it, google or wolfram alpha.

<comment><AUTHOR> What unit of measurement is "solar"?

<comment><USER5> I'm going to guess he asked "how much does solar cost, per watt..."

</comment></comment></comment><comment><AUTHOR> This is the first clue that Wolfram is not competing with Google

<comment><USER6> I know! It's like thinking that Ducati competes with Amtrak. Sure their products have similar objectives, but their function, specs, market, etc are completely different.

<comment><USER7> Okay, can you provide a bit more detail besides the analogy? For example, reading one of the links referenced in the OP, it says

 _"It doesn't simply return documents that (might) contain the answers, like Google does, and it isn't just a giant database of knowledge, like the Wikipedia. It doesn't simply parse natural language and then use that to retrieve documents, like Powerset, for example. Instead, Wolfram Alpha actually computes the answers to a wide range of questions — like questions that have factual answers such as "What country is Timbuktu in?" or "How many protons are in a hydrogen atom?" or "What is the average rainfall in Seattle?"_

[http://www.techcrunch.com/2009/03/08/wolfram-alpha- computes-...](http://www.techcrunch.com/2009/03/08/wolfram-alpha-computes- answers-to-factual-questions-this-is-going-to-be-big/)

But Google does some of those things indirectly at least. For example, in a Google Spreadsheet I can type

=GoogleLookup("hydrogen", "number of protons")

and the cell returns one.

=GoogleLookup("Timbuktu", "country")

returns "Mali"

and

=GoogleLookup("Seattle", "rainfall")

returns "36 inches".

Now I don't know whether there is some syntax to do these from the main search, but it seems to cover some similar ground. I am guessing since everybody is very excited about Wolfram Alpha that there must be more than this, or qualitatively different.

[Edit following comment below: I am not saying they are competing, I was asking whether the same underlying technology is powering both, for example with Wolfram being a more complex version of whatever GoogleLookup is doing, or whether the algorithmic approach is fundamentally different. I will admit to not watching the 2 hour webcast and looking for a quick answer]

<comment><AUTHOR> I wonder how many people actually use Google Lookup instead of just opening a new tab and searching Google

<comment><USER6> GoogleLookup is useful sometimes. If the rainfall changes in Seattle, your spreadsheet would update...

Although another proton won't likely be discoverd in a Hydrogen atom.

</comment></comment></comment></comment></comment><comment><USER8> Is today's Alpha webcast archived anywhere?

<comment><USER8> Now on front page: <http://news.ycombinator.com/item?id=584477>

</comment></comment><comment><USER9> They are already failing since they give you a search box that doesn't work. When it finally does work, I probably will be trained not to type into that box.</comment>


6,953 reasons why I still let Google host jQuery for me - <AUTHOR> http://encosia.com/2010/09/15/6953-reasons-why-i-still-let-google-host-jquery-for-me/

<comment><USER2> I used to let Google host jQuery for me. And then one day their CDN went down for a large chunk of the midwest (where I live), and I noticed the render time of my site (and a few others) jump up anywhere between 5x and 100x.

That was the moment I resolved never to leave critical, blocking elements of any site I run into the hands of others, no matter how well known or reliable they are. (FWIW, this also includes ad network invocation scripts and similar, which always seem to be notoriously slow to load).

<comment><AUTHOR> I decided it's outside the scope of that post (which was already laboriously long winded), but you can/should use a fallback technique like this to mitigate the potential for Google downtime: [http://weblogs.asp.net/jgalloway/archive/2010/01/21/using- cd...](http://weblogs.asp.net/jgalloway/archive/2010/01/21/using-cdn-hosted- jquery-with-a-local-fall-back-copy.aspx)

Also, HTML5 Boilerplate has that built-in: <http://html5boilerplate.com/>

<comment><USER3> The fallback technique does nothing to mitigate the "It can connect but loading takes forever" case surely.

<comment><USER4> I've thought to myself, "I wish there was a timeout attribute on the <script> tag," about once every few months for the past 10 years. Is there any good reason you can't manually specify how long you want the browser to wait for an external file to load?

<comment><USER5> There's no reason you couldn't code this up in JavaScript:

      load jquery from google
        - onload, set flag jquery_loaded
      settimeout load_locally_if_not_flag 5sec

<comment><USER6> Don't forget that JavaScript is blocking. You'd need to load the jQuery from Google dynamically by inserting script tags.

By the time you've added that, timeouts and fallbacks the amount of inline JS would make hosting jQuery on a CDN pointless.

</comment></comment></comment></comment></comment></comment><comment><USER7> It seems to me that unless the likelihood of a cache miss is fairly small you need to balance the probability of a cache hit against the expense of an extra HTTP call, as opposed to bundling the JQuery libraries directly with your custom JS with some JavaScript minimization trickery (and two HTTP calls if you're using both jquery and jquery-ui).

I have no doubt that the likelihood of a cache hit here is growing, but I wonder what the likelihood of an actual hit is? These data show that 4.7% of the top 1000 Alexa sites use _some version_ of JQuery. What you'd need to consider is the likelihood that your visitor has (a) visited one of the those 47, (b) that is using the same version of JQuery as you are, and (c) has done it recently enough that the (relatively large) files are still locally cached. I suspect that for most sites that works out to much more than 4.7%, but is it more than 50%? If not aren't half of your users getting a slower response as a result?

(Moreover, and I don't know if or how this effects the JQuery CDN, but doesn't it seem like many sites drag because of delays in loading the Google Analytics JavaScript files? Wouldn't this pose an even greater problem if you're using Google to serve JQuery, since your UI depends upon it?)

<comment><USER8> I started off using Google CDN to host my jQuery file, then later ditched it because about 20% of the time there would be a noticeable delay in retrieving it (if I'd cleared my cache).

There's really no reason not to just host jQuery yourself. Use GZip, and set a far-future expires header. Ensure the jQuery file is named by version, so that if you update the version the cached filename will be different. That's all you need to do, really.

One last note: The benefit of putting script tags at the bottom of the body is very similar to having the scripts cached in the first place. Just in case you didn't know, putting script includes at the bottom of the page lets the browser render the page progressively as it retrieves the HTML text [generally very, very quickly]. Scripts in the HEAD block rendering, as the browser needs to be load each script file sequentially, in case there are dependencies. [Note: not exactly true, it will grab several in parallel and execute them in order, but there's still a delay.]

Whether or not the scripts are cached, very fast page rendering will make the page appear to have loaded quickly. Likely, the user will not require javascript by the time the scripts are loaded anyway, if they aren't already cached.

<comment><USER9> You can also speed up load time using LAB.js <http://www.labjs.com>

It loads and executes all scripts in parallel. Just be careful and hide any elements that rely on javascript before the scripts finish loading.

</comment></comment></comment><comment> mike-cardwell I'm not willing to hand over the security of my websites and privacy of my users to a third party, in exchange for my first page load to be fractionally shorter for a small number of my visitors.

Googles jQuery hosting is now a _highly_ desirable target and I don't want to be included in the victims if it does get attacked. We learnt earlier this year how Google can be hacked.

<comment><AUTHOR> If Google's CDN were hacked (as unlikely as that is), it's almost certain that you'd find out about it _far_ sooner than if your own server were hacked. There would be a huge controversy and then it would be quickly fixed, probably in the course of hours or minutes, just like with the Twitter CSRF issue this morning.

Conversely, the Internet is absolutely littered with compromised sites that have been modified to inject malicious scripts.

The situation is similar to Linus' Law.

<comment> mike-cardwell Without using Googles CDN, they have to hack my website

With Googles CDN, they have to hack _either_ my website, _or_ Googles CDN.

Whichever you choose, it wont make any difference to how quickly you notice a local hack. Increasing the attack space doesn't make you more secure.

<comment><USER10> That's not a very high cost. They don't _choose_ to hit you, they let their scripts and botnets look around for old and vulnerable software.

Have you looked at your raw httpd logs? When I look at mine, and grep away known-cookies, I see that I'm frequently scanned by hundreds of IPs looking for vulnerabilities in common software packages.

And that's just the stuff that shows up in logged HTTP queries. I don't want to think about how likely it is that tools like nessus are constantly being scan-run against IP ranges that I sit within.

Ok, sure, you can believe you're going to be more on top of things keeping your site secure than a high-value target like Google. I don't know how the target value of your site, but I doubt it's as high as the server the jQuery plugin you're afraid of pulling remotely sits on--and you can bet that Google knows they have high-target-value externally-facing assets, and are watching them even harder and with more eyes than you would.

<comment> mike-cardwell The thing we're discussing here is whether jquery.js is stored on my server with the rest of my website, or some other third party server. I'm not sure how the things you've said above apply to this discussion?

<comment><USER10> You were critiquing the security cost of hosting on your own server verses that other server. It was pointed out to you that the admins of that other server would likely learn of (and react to) a breach on their end at a lower latency than you would for your server.

You implied that the security cost for hosting on your server was actually lower, because you weren't as much of a target. My reply was an attempt to point out to you at a technical level why that was a specious argument; your servers are likely being scanned by the same botnets that are scanning mine with automated exploit attempts against old and vulnerable software, and common errors in securing a server.

It's going to be far easier and cheaper for them to take a shotgun-scanner approach against a large class of average systems than to apply manual, concerted effort against a small set of high-value targets like CDN nodes.

The cost to the attacker to attack your system with automated tools is near nil. They'll attack, and if they get in, that's gravy. Using "we're not a target" as a security model makes about as much sense as putting an unpatched Windows box in your home router's DMZ.

<comment> mike-cardwell I'm already hosting my own website on my own server. That attack space already exists. You seem to be misunderstanding this.

We're only talking about moving one of my files from my current website to an entirely different third party service over which I have no control...

Do you not understand this? Spreading my website over multiple services controlled by multiple people decreases the security... Obviously...

<comment><USER10> I think the part I may have misunderstood was where you said, "With Googles CDN, they have to hack either my website, _or_ Googles CDN.", and I interpreted that as an exclusive condition, rather than an inclusive one. Probably the "either" that did that.

With that misunderstanding corrected, I believe you're generally correct on the security argument. There's still some plausible variation in terms of server security policy and implementation of things like intrusion detection, (Is it safer to keep all your money in your home, or is it safer to keep most of it in a safe deposit box in a bank?) but that's not the key problem I thought I noticed in your argument, and not one worth devoting energy into.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> One thing that doesn't seem to have numbers, though I think the data would be sufficient to give them, is what the caching probability is like _after_ taking the fragmentation into account. If I reference the Google CDN URL for jQuery 1.4.2, how many of the top 200,000 sites reference that? I assume it's rather less than the 6,953 that reference any version, but how much less?

<comment><AUTHOR> The split is about 50/50 right now. I've run the crawler three times in the last ~5 months and observed the transition from 1.3.2 to 1.4.2 moving along quite nicely though. After my first run, 1.4 adoption was so anemic that I was worried 1.3.2 was going to be jQuery's IE6. At this rate, it looks like 1.3.x should be a small minority by the time 1.5 rolls around.

</comment></comment><comment><USER12> _HTTP errors – About 10% of the URLs I requested were unresolvable, unreachable, or otherwise refused my connection. A big part of that is due to Alexa basing its rankings on domains, not specific hosts. Even if a site only responds to www.domain.com, Alexa lists it as domain.com and my request to domain.com went unanswered._

 _At first, that may seem like an awful lot of potential error. However, the one thing all of these inaccuracies have in common is that none of them favor the case for using a public CDN._

I would have to disagree with the last paragraph there. I think that if one is so incompetent that his page is not available without the "www.", that there is a very strong chance that such person hasn't heard of a CDN. So domains that are not working without the "www." are, in my opinion, favouring the non CDN way.

<comment><USER13> I've started to see some best-practice-if-you-ignore-user-expectation guides out there which say that allowing the domain to ignore the www is Not A Good Idea. I don't really know why this is the case, though.

<comment><USER14> I've seen people worry that if incoming links are split between foo.com and www.foo.com, it will affect Google's ranking of your site.

I don't think this is true and, anyway, the right solution would be to redirect one to the other.

<comment> mike-cardwell Google treats <http://www.example.com/foo.html> as a different page to <http://example.com/foo.html> and it is completely right to do so because they could be different pages.

You can use rel="canonical" to get around this, or a http redirect.

</comment></comment></comment></comment><comment><USER15> The one reason we don't use Google's CDN for our public website: Some of our business users block sites by domain or IP, so they allow our site but block google's CDN. It's a PITA to get a rule added to a client's security setup.

<comment><USER16> Do you know why they block Google's CDN?

<comment><USER15> I don't know their institutional reasoning, but I believe they are on a whitelist based system. They're not so much blocking Google as they are allowing us through.

</comment></comment></comment><comment><USER17> I was playing around with the google map API one day when it started throwing very strange errors. Upon further investigation, I found the library URL was returning an html captcha page - not very useful to a browser expecting a javascript file.

Even google screws up simple stuff sometimes. So I think I'll pass on using their CDN for something as small as the jquery library. You're optimizing the wrong thing if you're worried about this.

</comment><comment><USER18> I ran into a problem with https -- will google allow me to securely reference their CDN?

<comment><USER19> Works for me: <https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js>

<comment><USER18> damn, my solution was to host it locally. how did i blatantly not try this?

<comment><USER19> Everybody could use protocol relative URLs with the google CDN to simplify things:

      <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>

<comment><USER20> holy shit! Is that universally supported?

<comment><USER21> Yes, but there's bugs when used with stylesheets in IE7 & IE8

[http://www.stevesouders.com/blog/2010/02/10/5a-missing- schem...](http://www.stevesouders.com/blog/2010/02/10/5a-missing-schema- double-download/)

</comment></comment></comment></comment></comment></comment><comment><USER22> Another option for using a CDN that will let you maintain better control and outage visibility, is to sign up for a paygo CDN account yourself. GoGrid and Speedyrails resell Edgecast CDN and Softlayer resells Internap CDN both of which are very good performing CDNs with both origin and pop pull models. The cost for these services would only be about $0.57 per 100k jQuery hits (assuming 24KB minified version is used).

<comment><AUTHOR> One of the biggest underlying benefits of using a shared, public CDN for this is that you can take advantage of cross-site caching. As more and more people use it, the potential for that is greater and greater.

However, it only works if sites are referencing exactly the same URL; just referencing the same file is unfortunately not good enough. So, using private CDNs like those don't confer quite the same benefit (though they're a great idea for hosting site-specific assets, of course).

</comment></comment><comment><AUTHOR> My original post about using Google's CDN to host jQuery generated a lot of discussion here, so I thought you might be interested in this one too.

</comment><comment><USER23> I'm interested in the technology behind your crawler, you could potentially use it to discover many more things, like which sites use popular APIs etc. What language is it written in? What do you use for the backend/DB? How fast is it? I'm working on a project involving similar large scale crawling and I would love to know more.

<comment><USER7> You might be interested in <http://trends.builtwith.com/>

It doesn't give you a crawler or API, but they have done a lot of the analysis you're talking about and put it together in an explorable interface.

<comment><USER23> That site is nice, but they also want to charge me close to $2000 for a list of sites using a single technology, I could definitely do this myself for much less.

Anyone want to build a free version with me?

<comment><USER7> To be honest, I didn't dig into that site deeply enough to notice that. I pulled this out of an email I was sent just yesterday.

Sure, I'd be interested in collaborating if there's not one out there already.

The spider part is easy, you just need a web client (e.g. Ruby's or Python's Mechanize, Java's HTTPClient, even just wget or curl) coupled with an HTML parser (Hpricot, Nokogiri, Tidy, etc., or even some basic regular expressions). One can readily hack something rough together in an hour or two. Gabriel might have a lot of the data and certainly the code in order to produce DuckDuckGo, but he may have good reasons to keep that private.

The harder part, and the part that I wonder if builtwith is doing correctly, is to do the technology detection. Things like JavaScript libraries or CSS frameworks might be fairly easy to detect, but it is not trivial to reliably detect some of the server side technologies. I recently put together a script to survey the operating system and web server in use at a large number of domains from Alexa's top million list (similar to what Netcraft does) and there are plenty of servers that make that difficult, let alone determining whether a site is built with Ruby, Java or PHP. There are HTTP headers that could tell you, but not everyone uses them. There are certain signatures that give a pretty good clue, but those aren't always present and can be downright misleading. (I've seen sites that migrated from ASP to Java Servlets, for example, that kept .aspx URLs to avoid breaking links.)

If I remember correctly someone posted a JavaScript framework survey based on a similar spidering approach on HN a while back, you might be able to find it at searchyc.</comment></comment></comment></comment>


Show HN: Randomly generate ascii animals - <AUTHOR> http://animals.ivolo.me/

<comment><USER2> what you mean random generate? it seems it goes and fetches a random txt file and prints it?</comment>


Capacitive Sensing EL Wire for Motion Sensitive Smart Clothes - <AUTHOR> http://hackaday.com/2016/08/26/el-wire-gets-some-touching-after-effects/ <comment><AUTHOR> More narrative here: [http://imgur.com/gallery/1n4Jn](http://imgur.com/gallery/1n4Jn)</comment>


Why Bitcoin Will Never Be a Currency - <AUTHOR> http://www.theatlantic.com/business/archive/2013/12/why-bitcoin-will-never-be-a-currency-in-2-charts/282364/ <comment><USER2> There are many bitcoin competitors now and I find it interesting that many of them are the creations of a specific political and economic line of thought.

While bitcoin supporters tend to hate the idea of inflation, there are others coins that have inflation built in to encourage spending -- a kind of progressive version of bitcoin.

Here's a random example of a coin designed around a specific economic philosophy:

>Unlike Bitcoin, Freicoin has a demurrage fee that ensures its circulation and bearers of the currency pay this fee automatically. This demurrage fee was proposed by Silvio Gesell to eliminate the privileged position held by money compared with capital goods, which is the underlying cause of the boom/bust business cycle and the entrenchment of the financial elite, and has been tested several times with positive results.

[http://freico.in/](http://freico.in/)

(no idea if that has merit but it was the one that stuck in my head because it was so clearly articulated on their homepage)

Whether bitcoin itself last who knows, but probably some descendant will be around at the very least at the protocol level.

</comment><comment><USER3> > What Bitcoin really needs is a central bank to stabilize its value.

The whole point of Bitcoin is that there is no central governing authority. I'm not sure if this statement is meant to be funny, but if it isn't the author clearly has no understanding of how Bitcoin works or what it aims to achieve. I think given this statement its fair to ignore this piece all together.

<comment><USER4> The author obviously understands that Bitcoin has no central bank - his point is that if it ever were to be used as a currency it would need one. Would you like your salary paid in bitcoins? You wouldn't know from one month to the next what you could afford to buy since prices would be so volatile. Bitcoin might have other uses like easy electronic payments - but the author points out that if you want to buy something legally it is quite convenient already today with the currencies we have.

<comment> coinbase-craig I get my salary paid in bitcoin and I think it's pretty awesome.

<comment><USER4> From your other comments you seem to be paid in USD but your employer buys bitcoin for you each month and gives you that. You could buy the bitcoin yourself each salary day and nothing would change.

<comment> coinbase-craig Yep, basically. But what's your point? I don't want to do the extra work. I consider not having to a perk.

</comment></comment></comment></comment></comment><comment><USER5> "Why Bitcoin will Never Be a Currency".

And yet it only takes an arbitary 5 minutes to realise that it is being used as a currency. People are buying goods and services in exchange for bitcoins. Sure some people horde in the hope that the value will double but the same is done with US Dollars. I mean isnt that what FOREX trading is?

<comment><USER6> If you RTFM, it states that 64% of Bitcoins have never been used. For a currency that is a problem. A deflationary currency drives people to not spend. When people do not spend and aggregate demand goes down you end up in a recession. Read the article linked at the bottom of the Atlantic article on why deflation is bad:

[http://www.federalreserve.gov/boarddocs/speeches/2002/200211...](http://www.federalreserve.gov/boarddocs/speeches/2002/20021121/default.htm)

 _If_ Bitcoin stabilizes in the future it could maybe be used as a currency. But right now when every purchase decision is prefaced with a 'how much is BTC worth right now' decision it adds too much friction to a transaction.

<comment><USER7> A compute cycle has fallen in price faster than anything else in the world except perhaps shares of the East India Company or Dutch tulips. People still buy computers. And TVs and cell phones and flash drives and etc, etc, etc.

Surely if the falling price of a good with respect to the currency it's purchased in would prompt people not to buy then nobody would purchase computers. And yet it's a thriving industry.

Please help me reconcile this fact with the author's statement that would indicate that precisely the opposite should be happening.

<comment><USER8> What sort of everyday value can I get from the bitcoins in my wallet?

The material goods you mention are good for all sorts of things.

(My point being that they are not great comparisons, I'm staying out of the argument about deflation)

<comment><USER7> You've missed the point.

From the article: "When prices fall, people put off buying things. And when people put off buying things, companies put off investing. And then the economy slumps—and keeps slumping. "

I will make a more specific claim: the author is arguing that when the price of things in a given currency fall, people delay purchasing. This can be re- stated that as the ratio of money to goods declines, so too will the purchase of goods.

The ratio of money to a specific good declining can happen in one of two ways. Either

1) the currency as a whole appreciates in value relative to everything in the economy (usually called "deflation") or

2) the good becomes cheaper to extract, manufacture, grow or otherwise produce which then allows business to price it less expensively

In either case 1 or 2 the ratio of money to a good has decreased. We normally would say it has "gotten cheaper"

Computers are a good which has gotten cheaper in real terms and nominal terms and especially in absolute terms. A desktop computer used to cost $2000 or more for anything decent (adjusted for inflation perhaps $5000 or more), today a quite respectable laptop can be purchased for $800 which has hundreds if not thousands of times the capability of the $2000 machine from 20 years ago.

The world as it exists today does have a computer industry, in fact it's huge. Compared to 1993 it's at least 10x larger, and surely quite a bit more: [http://en.wikipedia.org/wiki/File:Personal_computers_(millio...](http://en.wikipedia.org/wiki/File:Personal_computers_\(million\)_ITU.png)

So according to the author's "when things get cheaper people stop buying" argument the computer industry should have been shrinking over the last 20 years, not growing. But we can clearly see from the world that exists today that the computer industry has grown over the last 20 years.

How should I reconcile the author's argument with the reality I see around me? I feel I have no choice but to conclude that the notion that "falling prices causes people to reduce their purchases" might not be a universal truth, or perhaps it contains only a little truth inside it.

<comment><USER8> I'm just saying I don't think you can expect the same behavioral responses to 1 and 2.

In the case of 1, I minimize all of my purchases during periods where I perceive higher levels of appreciation.

In the case of 2, I only buy what I need of that good (which is approximately what I do anyway).

So it isn't a particularly interesting comparison to make.

<comment><USER7> Sure, but for most people even in case 1 you still have to have food, clothing, shelter, etc. Those needs don't disappear just because you want to speculate.

Now you might be able to speculate quite effectively buying when prices are low and living off of your stores when prices are high. But everyone can't do that by definition, so we're saved from case 1 totally throwing a monkey- wrench into the works.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Finally, somebody with a basic understanding of economics decides to chime in. It is not possible for bitcoin to be a currency due to its deflationary nature.

Bitcoin might be an interesting investment vehicle, a storage of value, but something that will at some point replace the dollar? No.

<comment><USER10> Actually, I studied economics in the past and technically you can have a currency which is deflationary in nature, it just does not make it ideal. The Dollar has a similar disadvantage in many respects due to inflation.

It would actually be better to have some sort of currency which expands based on the number of transactions... There's a pretty large theory behind it and I out line some of it on my blog, where I also explain how a crypto currency can "potentially" work[1] or you could read one of Friedman[2] or Knights[3] books.

[1] [http://austingwalters.com/the-currencies-of- tomorrow/](http://austingwalters.com/the-currencies-of-tomorrow/) [2] [http://en.wikipedia.org/wiki/Milton_Friedman](http://en.wikipedia.org/wiki/Milton_Friedman) [3] [http://en.wikipedia.org/wiki/Frank_Knight](http://en.wikipedia.org/wiki/Frank_Knight)

Further, economic system and in turn the manipulation of the Dollar in the U.S. is based largely off Kaynes work, which for the most part (we now know) is an inaccurate portrial of economics.

<comment><USER11> This. Bitcoin is digital gold. Once it proves itself, we will probably transition into something like peercoin, or more appropriately an unimplemented proof-of-work payment scheme that calculates the payments not only on difficulty but also on the transaction rate across the last several blocks. You would want a median 1% inflation, but if exchange slows significantly (indicating money hoarding) you want the inflation rate to increase. If too many transactions are happening, you would turn down the inflation rate to compensate.

The only real "hard" part is preventing spoofing the system by moving money back and forth between accounts to fake economic activity, so you would have to put weights on idle money so that money that has been stationary longer has more impact than money changing hands, to avoid tampering.

<comment><USER12> I strongly suspect that the Bitcoin developers and mining community will eventually choose to inflate the currency. Not for any economic reasons, but rather to provide the funding for a large and secure mining network, because future transaction fees might prove to be insufficient.

That 21 million number is not set in stone, and will change if there is a need for it.

<comment><USER11> That still doesn't account for the fact that having a mathematical model for inflation is hugely advantageous for a currency. Current btc should be inflating at upwards of 10% considering how little money movement there is in the network due to the investment hoarding.

<comment><USER9> > That still doesn't account for the fact that having a mathematical model for > inflation is hugely advantageous for a currency.

This is hugely important and _obvious_ to anybody who has taken Econ 101.

Everybody knows this.

So why would you invent a currency that was deflationary in nature due to an artificial cap? Well, once you realize that the guy(s) who invented it are holding 10% of it, you'll have your answer.

Bitcoin is in a huge bubble at the moment. My only hope is that this bubble bursts before the inventors can cash out. Oh, sweet justice.

After the collapse, there is every reason to believe that Bitcoin will become something genuinely useful or at the very least, inspire something that will be useful.

<comment><USER12> Deflation is only a threat because of fractional-reserve lending. The world ends up owing itself more than it actually has in currency, and it collapses in on itself in a massive disaster if and when the currency deflates.

Fractional reserve lending of bitcoins seems highly unlikely to happen any time soon, if ever. And if it does start happening, it is likely to be made quickly illegal, because the system simply won't work.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> This almost reads like a parody. It's as if the author completely disregards the fact that the Austrian school exists at all.

I particularly like the reference to the 'deflationary' nature of the Great Depression while glossing over the fact that the prescribed solution (the establishment of a central bank) occurred less than two decades before it.

<comment><USER14> > It's as if the author completely disregards the fact that the Austrian > school exists at all.

Because they don't really, they're cranks, not a serious field of study. The Austrian school is equivalent to the flat earth society. Their answer to every possible economic issue is the same, the _magic_ market will heal itself. When you have one answer for everything, you don't get to call yourself a serious field of study.

<comment><USER15> I think it's important to distinguish between historic Austrians, like Hayek, and the nutjob libertarian variety that tried to turn economics into an apologia for anarchocapitalism, like Rothbard.

<comment><USER14> I'll make the distinction if you'll explain to me what Hayek proposes other than let the market handle it. From what I've seen, they're all cranks, Hayek included.

The Austrian school of thought is little more than don't touch the market, you'll break it, it's magic and it'll always work. That's not a serious field of study; that's a golden hammer theory.

<comment><USER15> Hayek is tendentious, but he made substantive contributions to the science. Rothbard didn't even do that: he was a libertarian political activist masquerading as an economist.

<comment><USER14> You've already said that, but that's not what I asked, I asked what those contributions were beyond "the magic market will fix it".

<comment><USER15> For one, he seems to have developed the theory of price signals.

<comment><USER14> Falls under let the magic market handle it, I asked for something outside that.

<comment><USER15> Cap and trade basically hacks price signals by enforcing the notion that there's a finite supply of the environment's ability to absorb pollutants. Without the notion of price signals, cap and trade is not the type of thing you'd think to use, and the distinction _I_ was making was that later Austrians, like Rothbard, never contributed anything of the like.

You can make whatever distinctions you want--this digression has gotten tiresome and I regret ever responding to you in the first place.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> "When prices fall, people put off buying things"

So I'll never go on vacation, cause next year it will be cheaper. So I won't do the surgery now, cause next year it will be cheaper. etc, etc. This "common knowledge" means no one will ever buy anything if prices fall. That's patently wrong. It may be true for fads, but not for things people really want.

"This self-perpetuating cycle of doom [..] is what has been sinking us since 2008, though this time central banks have at least kept prices from falling, just barely."

I live in a crisis stricken country in europe. Prices are NOT falling. That's a generalization and a lie. Prices fall for your property, what you have, and what you don't need, and prices are the same or spiking for things you need. Taxes also are spiking 2x 3x+. So, for example, you pay more and more taxes for your home, which is falling in price. (Owning it, not on debt.) But oil, food, electricity, etc, are rapidly increasing. Deflation and prices are falling, is a lie. They just destroy people, in order to pick up cheap on properties.

"What Bitcoin really needs is a central bank to stabilize its value."

lol. I remember seeing a graph of how much the dollar has lost it's value since the fed was created. Something like 90+%. I remember how much a coffee costed before entering the euro, and how much it costs now. Something like 15x more. It's bubbles, money printing, lies, and pure stealing. Central banks steal from all of us through inflation, and also give a competitive advantage to whoever they give the newly minted money first. (Their pals, big banks, etc.)

" See, the technology of Bitcoin really is revolutionary, but the currency of Bitcoin is holding it back. [..] So who's the perfect person to run Bitcoin? [..] Someone like ... Ben Bernanke."

This seems like a propaganda preparation piece. It seems that big players will introduce electronic money soon.

<comment><USER12> If prices have been barely protected from falling like the author is claiming, I'd like to know why the price of owning a piece of just about any sector of the stock market has just about tripled in 4-5 years.

</comment></comment><comment><USER17> I'm always a bit shocked that people can be so dismissive, is there really a precedent of a value construct like bitcoin that we can extrapolate confidently from?

</comment><comment><USER10> > What Bitcoin really needs is a central bank to stabilize its value.

Neither did the U.S. before WWI... Once they added the Federal Reserve they really didn't know what they were doing and when the stock market collapsed they raised overnight lending rates and essentially caused the great depression (or made it significantly worse).

Point being, although the Federal Reserve may have a better handle on what is going on now, it does not mean that it is necessary for a currency to have a central bank.

The author pretty much has no idea what he is talking about.

</comment><comment><USER18> And the actual evidence behind the author's claim that deflationary currencies aren't successful?

 _crickets_

Gold has been deflationary for all of recorded history, insofar as I'm aware (ie: rate of gold discovery was slower than economic expansion), yet it seemed to work pretty well for a little while.

<comment><USER4> Gold didn't work very well as a currency. There is plenty of proof, but just look at the first graph in this article. [http://fabiusmaximus.com/2010/09/13/21514/](http://fabiusmaximus.com/2010/09/13/21514/) Industrial production and when a country left the gold standard. Obviously clinging to the gold standard for so long was a huge mistake.

(my point is purely related to that one graph, not the rest of the article (that I have not read))

</comment></comment><comment><USER19> Let T be the total amount of money in circulation in a given currency C. When you see a value X in units of C, convert it to C' by X in C' = X / T. There you have it, every currency is already trivially equivalent to Bitcoin in that the supply of C' is fixed at 1.

How they're _not_ equivalent is that the creation of money in existing currencies is centrally controlled. You can get a clearer view of what happens when money is printed by looking at C' rather than C.

For simplicity, pretend there's only the Mint (can create money) and the Public (can't). Initially, Mint has X C and Public has Y C. In C', this is X/(X+Y) C' and Y/(X+Y) C'. Then Mint decides to create Z C. Mint now has (X+Z) / (X+Y+Z) C' and Public has X / (X+Y+Z). The Mint has effectively transferred money away from Public. All arguments against deflation are, basically, Mint will now redistribute the money in such a way as to stimulate the economy.

<comment><USER20> _the creation of money in existing currencies is centrally controlled_

This is a common misunderstanding. For typical fiat currencies, money creation is _highly_ decentralized in the banking system. Most money creation happens when banks give out loans. Conversely, most money destruction happens when loans are paid back.

This is actually why our system works so well: the supply of money is not controlled by a central (and therefore fallible) institution, and neither is it fixed (which would be even worse). Instead, it adapts _automatically_ to the demand of money (perhaps one should better say "liquidity" here) via market mechanisms.

<comment><USER19> Interesting point, and you're right: I was only considering printed money!

<comment><USER20> Exactly. And even with printed money, one could reasonably argue that the fact that money is printed centrally is irrelevant for the behavior of the economy.

After all, central banks typically just react to the demand for physical money that they observe via the requests that come from banks.

</comment></comment></comment></comment><comment><USER21> > When prices fall, people put off buying things. And when people put off > buying things, companies put off investing. And then the economy slumps—and > keeps slumping. Even worse, people are stuck trying to pay back debts that > don't fall with wages that do. So bankruptcies pile up, and so do bank > losses. That makes people too scared to borrow, and banks too scared to > lend, which only makes prices fall even more.

> This self-perpetuating cycle of doom is what sunk the global economy in the > 1930s, and what, to a lesser extent, has sunk Japan since the 1990s. And > it's what has been sinking us since 2008, though this time central banks > have at least kept prices from falling, just barely.

Oh good, I'm glad that the causes of the business cycle, the great depression, and the recent global recession have all been discovered with absolutely no question or debate.

</comment><comment><USER22> Bitcoin aside just reading the first few sentences really shows what a sad state our economics education is in. People literally, dogmatically believe something that is so blatantly false you'd think you would have to be mentally handicapped to believe it. Yet they do.

<comment><USER23> Is it sad that they would believe those sentences, or sad that those sentences are even necessary? I can't tell whether you agree with it or not.

<comment><USER22> I had a dream last night that I went into Walmart. Everything was a penny so I went home to wait this terrible situation out. And because the economy is dependent on SPENDING not producing the economy collapsed as a result! What a nightmare.

</comment></comment></comment><comment><USER24> This argument would only be valid if bitcoin were the only currency, or weren't easily convertible to and from dollars.

People invested in bitcoins still have to buy things. What many of them do is leave their investment in place, convert a few dollars to bitcoins and spend those.

Of course they have an incentive to save rather than spend bitcoins, but this incentive applies equally well to their dollars. If they expect bitcoin deflation to continue, they should convert their dollars to bitcoins rather than spending their dollars. If bitcoin's deflation isn't preventing people from spending dollars, it's not preventing them from spending bitcoins either.

Bitcoin isn't having a strong effect on dollars, because its total value is only about $10 billion. Maybe someday it will have a strong deflationary effect on the dollar economy, but it'll have to get much bigger before that happens.

But once it is that big, its rate of deflation will slow. It's high now because its usage is growing[1] so quickly. In the past seven days, the number of bitcoin-accepting merchants on coinmap grew 13%. That radical growth will eventually slow, and then we won't see such drastic price changes.

Arguably it will still be somewhat deflationary, but even that isn't a sure thing since bitcoin won't necessarily be the only successful cryptocurrency. Hayek argued that private competing currencies would result in price stability without central control, and we might find out whether he was right.

[1] [http://www.bitcoinpulse.com](http://www.bitcoinpulse.com)

<comment><USER8> It's telling that none of those indicators relate to the value of the goods that are being purchased with Bitcoin. That's probably the most interesting metric.

<comment><USER24> It would definitely be interesting. I'm having trouble thinking of a way that metric could be gathered with any reliability, given that merchants typically generate new bitcoin addresses for each purchase.

</comment></comment></comment><comment><USER14> > What Bitcoin really needs is a central bank to stabilize its value.

No, a distributed system who's goal is getting rid of central control doesn't need a central point of control.

> When the demand for Bitcoin goes up, they need to print more to keep it from > skyrocketing.

And again no; rather, minting more currency can be built into the network algorithmically so that hoarding causes enough inflation to offset it.

Bitcoin's deflationary nature will make it a bad currency, but it's not the only crypt-currency out there, and inflation and deflation can be tied into actual transactions on the block chain to build a self regulating currency that can actually be trusted and more importantly adjusted by the economy itself, unlike central planning.

Peercoin has these attributes, though I'm not convinced in the correct proportions as it's still long term deflationary. Saving causes inflation by minting new coins and spending causes deflation by destroying transaction fees. This is a better strategy for a currency, but it's not quite balanced right yet.

</comment><comment><USER25> "Why the Internet Will Never be Newspaper"

It doesn't have to fit the role of traditional currency because it isn't.

<comment><USER26> You're criticizing The Atlantic (which happens to be a print publication as well, not just online) for an article stating that Bitcoin won't become an everyday currency, but saying "it doesn't have to fit [that] role." The article never said it _did_ have to fit that role. The journalism is perfectly fine here, quit being defensive and make an actual argument.

</comment></comment><comment><USER27> Bitcoin is already used a currency right now but I believe what the author is trying to say is it has not lasting power. Which i believe it to be true.

In its current form, its too complex for non-tech savvy people and what makes bitcoin bitcoin will not last more then 10 years as processing power increases over time.

<comment><USER12> Heh. It's not that complicated. How many concepts have common people learned since computers and the Internet took everything over? Computer network. Router. Website address. Domain name. IP address. Email address. File. Torrent.

What if knowledge of hashing and public and private keys become as commonplace? Because of bitcoin?

</comment></comment><comment><USER28> The author makes really good points about Bitcoin's viability right now as a day-to-day currency. The conclusion at the end, that "What Bitcoin really needs is a central bank to stabilize its value" comes out of left field. No matter the difficulty, the goal most consistent with those of Bitcoin would seem to be to create a cryptocurrency that has a reliable built-in inflation/deflation mechanism. I suppose such a creation would amount to the perfection of money, for whatever that's worth.

</comment><comment><USER29> People saying Bitcoin won't work because of the instable price are just dumb.

Can anyone bring up some charts from when the first 'normal' (non-crypto) currencies were invented? Let's see if those were so stable from the first year onward.

Earlier today I just happened to look up inflation rates from european countries before the Euro: one was nearly 30% in 1980. "Omg 30% price change in just a year," yeah and even that seems to have worked out fine. They were even allowed to join the Eurozone.

<comment><USER30> Look up the Euro. That was relatively recent.

And no, it didn't have fluctuations anything like BTC.

</comment></comment><comment><USER31> It would be great to have some guys here run a large simulation. I might be wrong, but I bet that there is a trade-off between "centrally organized" currencies versus "decentralized" ones. There might market potential for both. A centralized monetary system could have some disadvantages, isn't it?

</comment><comment><USER32> Isn't it contradictory to argue that everyone should go short on Bitcoin because it's deflationary?

It's either deflationary, so everyone should go long on it / use it as a store for all excess value, or it's not, so it doesn't actually have this problem.

</comment><comment><USER33> > When the demand for Bitcoin goes up, they need to print more to keep it from > skyrocketing.

To some degree, this already works. If the price of bitcoin gets high enough relative to the price of electricity and ASICs, then more bitcoins are mined, right?

<comment><USER34> Then the difficulty goes up. The network is designed to create an average of 6 blocks per hour, with a constant reward per block that halves every 4 years. [https://en.bitcoin.it/wiki/Controlled_Currency_Supply](https://en.bitcoin.it/wiki/Controlled_Currency_Supply)

<comment><USER8> It is slowly racing ahead of the forecast though. The current block was projected for 2014:

[http://blockexplorer.com/q/getblockcount](http://blockexplorer.com/q/getblockcount)

I guess that will slow down as ASIC hardware matures (or if there is a sustained price drop).

</comment></comment></comment><comment><USER35> Does a lack of inflation equal deflation? I've not heard that one before.

<comment><USER15> Deflation is when prices drop due to currency scarcity, and inflation is when prices rise due to currency abundance. The only perfect zero is when the amount of currency in circulation perfectly matches the amount of economic activity. A cryptocurrency might be able to make that happen, but central banks usually err on the side of 1-2% inflation since deflation is so much worse than inflation.

</comment></comment><comment><USER36> > Now, it doesn't make much sense, but there's actually a currency designed to > create these kind of economic calamities.

I wanted to stop reading right there.

</comment><comment><USER37> "...what Bitcoin really needs is a central bank to stabilize its value."

Seriously?

<comment><USER4> _IF_ it ever were to be used as a currency. Obviously the author knows that a central bank is not a part of bitcoin today or ever could be. So his whole point is that it can never be used as a currency.

</comment></comment><comment><USER38> Obvious to any one who have read a bit of Marx.

<comment><USER4> I don't see the connection.</comment></comment>


Where the Frauds Are All Legal: Welcome to the Weird World of Medical Billing - <AUTHOR> https://www.nytimes.com/2019/12/07/opinion/sunday/medical-billing-fraud.html <comment><USER2> Get rid of the loops and watch the loopholes disappear.</comment>


Ask HN: Whats your favorite HN thread from 2015? - <AUTHOR> <comment><USER2> "My Livecoding.tv account deletion saga": [https://news.ycombinator.com/item?id=10486476](https://news.ycombinator.com/item?id=10486476)

Which maybe was not on the lines OP intended. :)

<comment><USER3> This makes me wish that HN merely collapsed flagged comments rather than making them unavailable to read.

<comment><USER2> You can see them if you have showdead enabled in your profile.

</comment></comment></comment><comment><USER4> The guy who was talking about his "spouse firewall" in the facebook thread was pretty great. Basically he just doesn't have facebook and his spouse is the filter, she tells him all the important stuff. It was an excellent idea! :D

here's the thread: [https://news.ycombinator.com/item?id=10703194](https://news.ycombinator.com/item?id=10703194)

<comment><USER5> Missed that thread but it's great. I often refer to my wife as my "Facebook Ambassador" as she serves a similar role in our household.

</comment></comment><comment><AUTHOR> This is one of my own ASK HN threads but I was really happy with the discussion in there.

Ask HN: What problem in your industry is a potential startup?

[https://news.ycombinator.com/item?id=9799007](https://news.ycombinator.com/item?id=9799007)

It gave me so much food for thought and ended up with a fairly popular essay [http://000fff.org/the-problem-with-problems/](http://000fff.org/the-problem- with-problems/)

<comment><USER6> Good essay. I'd like to point out, historically in many parts of the world the "age problem" was solved by having three generations living in one house, whereas today, frequently the elderly live separately or in a nursing home.

I feel the generation immediately above me, i.e. my parents and their siblings, encourage me to keep a good job, find a career, save up, buy stocks and property, and "work my way up".

It's my grandparents who is telling me I should forget about all these things and do what I really want to do.

</comment></comment><comment><USER7> "How to be a good technical leader" [https://news.ycombinator.com/item?id=10395046](https://news.ycombinator.com/item?id=10395046)

The points in this thread helped me better understand team interaction. Especially: A leader is never too busy to listen to a teammate.

</comment><comment><USER8> "How do I stop comparing myself to others" : [https://news.ycombinator.com/item?id=10523788](https://news.ycombinator.com/item?id=10523788)

@cperciva's answer was sublime IMHO for multiple reasons.

<comment><USER9> Thanks for bringing this up - somehow I missed this thread. Not tech related, but beautiful and wise. Forwarding it to my kids right now.

</comment></comment><comment><USER10> For the amount of time I spend on here, it's a shame I can't remember any "life enhancing" threads that would be worth mentioning.

</comment><comment><USER11> "Presumption of stupidity": [https://news.ycombinator.com/item?id=10034883](https://news.ycombinator.com/item?id=10034883)

Really enjoyed both the article and the discussion on that one.

</comment><comment><USER12> "Open source software for developing world hospitals " [https://news.ycombinator.com/item?id=10675275](https://news.ycombinator.com/item?id=10675275)

I've been wandering around looking for a project I can contribute to and make a difference. This is small enough where I can make a contribution but big enough so that I'm not "in charge", plus the scaffolding has been already set up. My 2016 resolution is to hone my Javascipt & git skills and contribute to something meaningful. I'm using my break to get up to speed on Ember and get ready to dive in.

</comment><comment><USER13> I'm not quite sure, but the first one that springs to mind was "How art became irrelevant" ([https://news.ycombinator.com/item?id=10760665](https://news.ycombinator.com/item?id=10760665)). While I obviously like HN for all the techies that meet here, I also enjoy it when, once in a while, we have a discussion about something completely different. Like art :-)

</comment><comment><USER14> WebAssembly announce:

[https://news.ycombinator.com/item?id=9732827](https://news.ycombinator.com/item?id=9732827)

</comment><comment><USER15> "In Memoriam: Ian Murdock (docker.com)" [https://news.ycombinator.com/item?id=10813524](https://news.ycombinator.com/item?id=10813524)

Some pretty healthy discussions and consolidated information which I can't find elsewhere.</comment>


Ask HN: What are some ways to raise money for a startup? - <AUTHOR>

<comment><USER2> I guess it depends on what you are raising the cash for and how much you need to raise. If it is mostly to give you and/or your team a living stipend while you develop the product full-time, there are a number of tech incubators you could choose from or you could try to raise a few months salary from angel investors like me.

If you are using the cash more to buy an asset or equipment ( e.g. a food truck ), then you could try pitching it to a bank. I don't think they would go for it, but at least they would have collateral. If you have a personal car, you could try offering that for collateral as well.

\- Part-time consulting. If you are able to consult 20 hours a week, that should be enough cash to cover a modest cost of living and maybe some extra to invest in your start-up. A lot of companies start this way. They build specific products for their clients and eventually develop a product/service of their own. Check out 37Signals story on how Basecamp came along.

\- If you are developing an enterprise-level tool, you could try to pre-sell it to a large firm first and have them pay an advance. This is tricky, but possible if you are building a certain type of product and have the right experience/connections.

\- Build an MVP in your spare time and start charging for it. You may be able to skip the financing step altogether. Either way, you'll have more luck raising funds if you already have some, but maybe not enough to be profitable, paying customers.

\- Personal Savings

Some riskier ways to get cash:

\- Cash in a portion of your 401k ( you'll pay a 10% early withdrawal penalty + taxes )

\- Home Equity Line if you have enough equity in your home. Careful with this because you are gambling your home. Make sure that if the start-up fails, you'd be able to get a job making enough cash to cover the additional debt service on the equity line.

\- Personal line of credit. You pay high interest rates and won't be able to borrow that much ( ~25k or so ). You've probably gotten offers like this in the mail before. Your credit card company sends you a blank check and says 6 months no interest loan. Same as above, if the startup doesn't make it, make sure you'll be able to handle the additional finance charge ( which will be crazy high ). Please don't do this one.

<comment><USER3> I am co-founder of a startup that have some products with kinda average traction (but no profit), and not enough money to finish our flagship product (but I think we can make a the rewrite of the demo... the first demo is on Google Play).

How I would convince a angel investor like you to help?

</comment></comment><comment><USER4> Friends and family is an important one. It's not a lot of money, but investors are a little like sheep, and if you can show that you've been able to convince some investors and are committed enough to beg and borrow from your own family, then they are more likely to be interest.

Getting paying customers is the best way to raise money. No equity given up, proof of your business model, and that looks great to investors later on, too.

Incubator programs aren't all created equal. Do a LOT of work to vet them first. Many will offer a small amount of money, offer very little support during the incubator, have no connections at the end of the incubator, and then dump you with no support after the incubator, but kindly taking a percent of the company. There are some good ones, though.

Angel investors and VC are an option, but those are not easy to get and you have to kiss a lot of frogs before you find your prince.

The best thing to do is build your product and keep building it, and talk to as many people as you can. Resources will come out of the woodwork slowly, and connections will be made that will lead organically to what you need.

</comment><comment><USER5> Build a prototype/mvp/alpha/demo product. Something. Anything. Then depending on the type of startup, there are so many ways to get started. If you live in a big city, go to tech meetups and start gathering contacts who will help you get to angel investors. Or apply to incubator programs like YCombinator (there way more of these than you think). Regardless of the avenue, i repeat, work on your product and your pitch. Neither come easy.

</comment><comment><AUTHOR> I find none of the answers here will work for me. I'm looking to make a small product, which I believe is a great idea. I need to hire designers and developers every now and then.

Borrowing money from people is not an option, and neither is will banks help me in any way — I'm a student,and 17 years old.

I have little or no savings. So yea...

<comment><USER3> Sometimes, you need to strike lucky (like me... that a guy with the money and the same idea as me found me and offered me to code)

Or do like I tried to do in the past: work in a normal job, and in your idea on the side. (this resulted into this: [http://www.abril.com.br/blog/campus- party/2011/01/19/fanatic...](http://www.abril.com.br/blog/campus- party/2011/01/19/fanatico-por-jogos-leva-seu-proprio-fliperama-para-a-arena/) )

</comment></comment><comment><USER6> IMO, the easiest way is to borrow from a bank.

If you're in the EU the EC give out startup grants. In Scotland we get them through our local Councils.

<comment><USER5> Practically impossible to get a loan for a startup in the US :( Anyone have experience with this? Would be very curious to hear about it.

<comment><USER4> We've tried this. Banks won't loan unless you have prior success in that business. Only a few do Purchase Order financing (where you show them a list of pre-orders that you need money to service) and it's expensive and also requires prior success. All would require a personal guarantee. I had one tell me they wouldn't loan unless I had the amount of the loan in an account at their bank. What's the point of that? Generally speaking, U.S. banks are worthless for startups, unless you want to fund your business with credit cards.

</comment></comment></comment><comment><USER7> Look into crowdfunding. You don't have to give away any equity and a successfully funded campaign basically validates your MVP.

</comment><comment><USER8> Have you looked into angel.co?

<comment><USER3> Alright, a person create a profile there, that get no views, no references, and then so what?

<comment><USER9> There is going to be work involved somewhere. It's not going to just fall on your lap.

</comment></comment></comment><comment><USER10> nobody mentioned kickstarter.com</comment>


Apple to suspend iTunes Store support for "obsolete" first-gen Apple TV - rlv-dan https://arstechnica.com/gadgets/2018/02/apple-to-suspend-itunes-store-support-for-obsolete-first-gen-apple-tv/ <comment><AUTHOR> In fairness, 11 years is a pretty good run for an early internet appliance. I bought one of these to run XBMC (Crystalbuntu) - the hardware is very neat, but eventually it was going to hit a wall. It's done well, time for retirement.

It's lasted longer than the drastically more expensive first-gen iPhone and iPad, and people change those like underwear!</comment>


How the NSA Threatens National Security - <AUTHOR> https://www.schneier.com/blog/archives/2014/01/how_the_nsa_thr.html <comment><USER2> The most important line: "put security ahead of both domestic and international surveillance". That's what it comes down to, we can have communications security or surveillance, not both.

<comment><USER3> Yes, so far NSA has been successful as promoting mass surveillance as a matter of "security" not just against terrorists (which we now learn is being very wasteful and ineffective), but against "cyber-attacks", too.

Every time they talked about cyber-attacks, they implied Congress need to give them more powers and more money, which they later used for offensive actions, rather than securing the networks. NSA has _zero_ interest in security networks at this point. Maybe they cared about that a little before 9/11, but I don't think they care about it at all anymore.

All they want to do now is _be able_ to break into everything or have backdoors into everything, which means they will not only hoard systems' vulnerabilities for themselves, but they also won't even use that knowledge to secure domestic systems, because the truth is they want access to domestic systems, too, and to them that has a higher priority than securing those systems even against China and so on.

The NAS has probably always had this corrupted idea about security, but I think it became much more so when they merged the US Cyber Command with the NSA.

Bottomline is that we need to educate others that surveillance is pretty much the opposite of "cyber-security", and we need to call NSA out on it everytime they try to use the lie that they're the same.

</comment></comment><comment><USER4> While there's a healthy debate in the US (and to a lesser extent in Europe perhaps) about the extent of spying being done by governments, I see hardly any concern in India among both media organizations (with probably the exception of The Hindu newspaper), businesses and citizens.

Fed by the constant drip-drip of "free" features, people are almost blind to the true "cost" they're paying. I've tried my best to convince people I know to adopt even simple (not foolproof, which probably nothing is) countermeasures like VPNs or HTTPS-Everywhere...but nobody gives a damn.

Reminds me of a Supernatural episode [1] featuring drugged Turducken sandwiches that turn people into passive, media-absorbing, harmless zombies.

[1] - [http://io9.com/5861160/turducken-and-the-rise-of-dick- make-o...](http://io9.com/5861160/turducken-and-the-rise-of-dick-make-one- helluva-supernatural-episode)

<comment><USER5> This is true, just days ago there was a proposal of a Google tie-up with Election Commission of India [1]. The proposal allowed Google to offer services for the General Elections in India to be held in 2014. Google proposed free online voter registration besides making available vital details of voter EPIC card numbers and polling station locations.

While this did stir up a concern among the political parties and got some column inches and airtime in mainstream media, I think it should have deserved a lot more attention. I was quite surprised that many people I know don't even have a clue that this happened about a week ago. With all the recent spying revelations, this was seen as a huge security risk. Nevertheless, the Election Commission of India later dropped plans to partner with Google after spying fears [2].

[1] [http://articles.timesofindia.indiatimes.com/2014-01-07/india...](http://articles.timesofindia.indiatimes.com/2014-01-07/india/45954589_1_voter- facilitation-security-concerns-tie-up)

[2] [http://in.reuters.com/article/2014/01/09/india-elections- goo...](http://in.reuters.com/article/2014/01/09/india-elections-google- idINDEEA080CQ20140109)

<comment><USER6> "The proposal allowed Google to offer services for the General Elections in India to be held in 2014. Google proposed free online voter registration besides making available vital details of voter EPIC card numbers and polling station locations."

I started and used to run these programs for Google. I'm not sure what you are implying is done with this data, but security and privacy are always the highest priority.

Google does this stuff for completely altruistic reasons. It's not even part of .com anymore, it's part of .org. The goal is to help people know where to vote. Nothing more, nothing less.

If you'd like to tell me what conspiracy you think this is part of, ...

<comment><USER5> The point I was trying to make was that when it comes to security, privacy etc there isn't as much debate and media interest as I think should be in India.

In this case there were concerns voiced that the Election commission neither consulted all the stake holders nor consulted political parties to discuss this. And, of course with the revelations of US agencies indulging in widespread spying and intelligence gathering, sharing vital data pertaining to Indians citizens to a foreign company was perceived as a security risk.

I did not imply that there is a conspiracy. I just think when there are concerns about security and privacy, as in this case, there should be a louder discussion.

<comment><USER6> "The point I was trying to make was that when it comes to security, privacy etc there isn't as much debate and media interest as I think should be in India."

Fair enough. Note when I started this, Google was essentially one of the only players in this space who didn't want data that had PII in it (in the US, things like voter files get sold quite a lot). Still true, sadly

For national ID systems, most of it was something like "ID xxx through zzz vote at YYY". where xxx to zzz was some very large range. For those systems that required fine grained data (like Peru, I believe), our design was to give them secure one way hashes to use on the data before giving it to us so that we never had any info, just something we could key on (we would then proxy api calls to do the actual national id lookups or something so again, we never saw the id's) AFAIK, none of these ever panned out for other reasons.

At least when I was running it (and i doubt things have changed in the past 8 months, it's the same people other than me), there was a zero percent chance we would have ever agreed to _receive_ any "vital data" at all.

I haven't looked heavily into all this, but I have _very_ strong doubts any info about people would have actually been asked for or given. You know how the press tends to understand nuanced technical detail.

In most cases where these stories happen, sad truth is the real reason is losing control of voter suppression.

</comment></comment></comment></comment></comment><comment><USER3> > We need to build a coalition of free-world nations dedicated to a secure > global Internet, and we need to continually push back against bad actors -- > both state and non-state -- that work against that goal.

Let's do it. Even though I'm starting to believe that a "secure by default Internet" will come from the wilderness of the Internet and not from committees, because too many corporations (Google, Facebook, Microsoft, etc) and governments (US, China, "5 eyes", etc) will push against those committees' standards, I still think it's important to have at least some large countries support those types of projects when they arrive, or at least not be outright hostile against them and try to ban them "because terrorism/child pornography/money laundering".

These technologies will need some time to incubate, and leak into the mainstream, so at the very least we'll need some countries to turn a 'blind eye' to them until they reach critical mass, and not try to shut them down from day one or threaten people with new laws and arrests if they use them.</comment>


Undercover spy targeted Kaspersky critics - <AUTHOR> https://www.apnews.com/a3144f4ef5ab4588af7aba789e9892ed <comment><USER2> An Israeli "spy" associated with the infamous Black Cube? Another nail in Kaspersky's coffin.

Also, Black Cube is advertised as this elite "executive" services company, but their employees consistently come of as the Johnny Englishs of the industry. Their work seems sloppy, they don't cover their tracks and they keep getting their company in trouble.</comment>


How to Type with a Foreign Accent - <AUTHOR> http://esr.ibiblio.org/?p=1058 <comment><USER2> <http://www.waynesthisandthat.com/meihem.htm>

</comment><comment><USER3> What about a program to translate your typing so you can sound foreign?

<comment><AUTHOR> See <http://www.hyperrealm.com/main.php?s=talkfilters></comment></comment>


An open source OS built atop Java for visual artists and designers - <AUTHOR> http://www.processing.org/ <comment><USER2> How in the _hell_ is this an operating system?

Also, Java, ew.</comment>