What Even Is a Number? - <AUTHOR> https://notebook.drmaciver.com/posts/2019-02-18-08:58.html <comment><USER3> I had a fun mind-play with my kids; I asked them if numbers like "one" and "two" really exist. They said yes, of course.

OK, I said, show me a plain old "one". Nope, that's one fork; nope that's one ball; nope, you get the idea.

You cannot show just "one" unattached to anything else.

The concept of "one" is an idea. It only exists as a "real" concept in your mind because it exists as the same concept in the minds of others, and it's a very useful concept in describing the world around us.

This odd fact becomes ever more apparent when you find out about cultures that have very different approaches to quantitative reasoning, like the Pirahã in Brazil [1]. They don't have number words beyond "one", words roughly meaning "some" and "many" are used for anything more than one.

[1] [https://www.sciencedaily.com/releases/2008/07/080714111940.h...](https://www.sciencedaily.com/releases/2008/07/080714111940.htm)

<comment><USER4> Ah! I wrote the below before seeing your comment:

Numbers don't exist. Take the number two. You can have two apples but that's not the number two. You can write the numeral "2", but that's not the number two. It's one line. The word "two" has three letters, it's obviously not the number two. In fact, the number two doesn't exist (or it's existence is not contingent on an arrangement of matter/energy. No pattern of matter/energy/space/time is actually THE number two.)

To me, it's wonderful to reflect on the epistemological status of numbers. They don't seem to exist, but we talk about them as if they do. Certainly they are useful. But they don't exist any more than, say, Sherlock Holmes does.

It's also much fun to reflect that, whatever the epistemological status of number, that status is shared by computer languages and algorithms and much else. E.g. the C language doesn't exist. The C standard(s) exist, many C compilers exist, lots and lots of C code exist, etc., but the language itself doesn't exist anywhere, any more than does the number two.

<comment><USER5> Does an apple exist? You can show me an apple, but I would wag my finger in exactly the same way you are to people trying to show you "one". The apple you're showing me is not the same thing as the word "apple" which is an abstract category that encompasses all types of apples - honeycrisp, Granny Smith, etc. You could say a honeycrisp is like an instance of apple which is a base class, so then it is indeed an apple. But then youd have to say an apple is also a "fruit" and also a "food" even though those words also encompass broad categories of things.

If you buy the above, you'd have to say that a single apple is also "one". After all, it's just another broad category that a single apple fits in to. If not, I think you'd have to reject the fact that a honeycrisp is an apple, which seems untenable.

<comment><USER4> Reflecting on this stuff is my golf...

Even if I agree that THE number "one" is "just another broad category that a single apple fits in to", I think the epistemological status of the Broad Category is then itself just as problematical, existence-wise, as the original concept of "number", eh? We can at least display a pair of apples and "count" to "two" with them, etc. What hope do we have of enumerating (no pun intended) the Broad Category of "one"? And what do we gain from introducing it?

</comment></comment></comment></comment><comment><USER6> I was once posed a related question by a three-year-old: "How do you make a number?"

It was a simply worded but delightfully insightful wondering. I did my best in the moment and answered, "One way we can make numbers is by counting." I've continued to mull this question over since then. I'm drawn to this child's conception of numbers as something we make. It makes sense to me as a teacher of young children and a wonderer about math myself, yet it doesn't really square with what we've been told about numbers in most educational settings.

<comment><USER7> One of the Peano axioms is that every natural number is either zero or the successor of another. It's easy to explain to kids without jargons: a number either counts nothing at all, or it counts things that have an extra item compared to some other thing.

<comment><USER8> This kind of breaks down once you move past natural numbers, but for early learners of mathematics i agree it's useful to think about.

<comment><USER9> But other kinds of numbers can be made from that:

\- Differences of counting numbers (integers)

\- Ratios of numbers (rationals)

\- Limits to sequences of numbers (reals)

\- Solutions to polynomials made from numbers (complex)

You can think of each of these as adding a layer of behavior to the basic "each number is nothing or one more than another number".

<comment><USER10> I agree with your sequence until the last two.

The second to last, that should be Cauchy sequences.

And for the last, demonstrating that the algebraic closure of the reals is the complex numbers from first principles is much harder than describing complex numbers as pairs of reals with a multiplication rule that (a,b) * (c,d) = (ac - bd, ad + bc) and then much later proving that it is algebraically closed through complex analysis.

For those who don't know the proof, the idea is this. Liouville's theorem says that if a function is differentiable everywhere, and it is bounded, then it must be constant. Now suppose that p(z) is a polynomial. Consider the function 1/p(z). You can show that as z approaches infinity, it approaches zero. It is not constant. Therefore it must not be differentiable or not bounded. It doesn't take too much work from there to prove that it blows up somewhere, and the spot that it blows up is a point where p(z) is 0.

Apply unique factorization for polynomials (see [http://sites.millersville.edu/bikenaga/abstract- algebra-2/po...](http://sites.millersville.edu/bikenaga/abstract- algebra-2/polyufd/polyufd.html) for that proof) and you quickly get the fact that the complex numbers are algebraically closed.

<comment><USER11> A much easier to understand definition for the set of reals is probably to use infinite decimal expansions that don't end in 9999 etc. Equivalence classes of cauchy sequences is tougher to explain I'd say.

<comment><USER10> In that case, good luck coming up with a good definition around multiplication where 3 * 0.33333... works out right. And then proving arithmetic properties like the associative law. And then proving that when you do the reals in decimal, you get the same system as the reals in binary.

It sounds harder, but is actually easier to go through the Cauchy sequence definition and then point out that the decimal representation naturally gives rise to a Cauchy sequence. So, for example, 3.1415926535... gives you (3, 31/10, 314/100, 3141/1000, ...). And as Cauchy sequences, of course, (1, 1, 1, 1,...) is easily proved to be the same as (9/10, 99/100, 999/1000, ...).

<comment><USER11> Oh right, 3 * 0.33333 is an issue, yeah. Still, you need to define that equivalence relation on the Cauchy sequences and then explain what a set modulo a relation means.

<comment><USER10> This is all standard mathematics.

The equivalence relationship is that the sequence (x_1, x_2, x_3, ...) is equivalent to (y_1, y_2, y_2, ...) if and only if the limit as n goes to infinity of x_n - y_n = 0.

Formally, the real number represented by (x_1, x_2, x_3, ...) is the set of all Cauchy sequences which are equivalent to that one. Since "equivalent to" is transitive, any Cauchy sequence in that set will define the same set.

Addition and multiplication are defined elementwise. Proving that they are well-defined is relatively straightforward. Their algebraic properties follow for free. Any rational number q can be mapped to the Cauchy sequence (q, q, q, ...) which leads to a unique real number that we somewhat sloppily call q again.

I've left some details out, but this construction is well-understood, and is how we define the completion of a metric space.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> > You can see some of that history of what we call some of the different sorts > of numbers: e.g. Negative, irrational, and imaginary numbers. Each of these > represents a bitter argument about whether a new type of number should be > allowed, all of which were eventually won by the people on the side of the > new numbers...

Was there ever a proposed type of number that is today not considered a number? Like i=squareroot(-1), was there ever an attempt to do math with something like y=1/0 or another illegal construct?

<comment><USER13> > was there ever an attempt to do math with something like y=1/0 or another > illegal construct?

Wheels are a type of algebra where division by 0 is defined.

[https://en.wikipedia.org/wiki/Wheel_theory](https://en.wikipedia.org/wiki/Wheel_theory)

[https://math.stackexchange.com/questions/994508/wheel- theory...](https://math.stackexchange.com/questions/994508/wheel-theory- extended-reals-limits-and-nullity-can-dne-limits-be-made-to)

To call wheels "obscure" is to make them out to be better-known than they are, however.

<comment><USER3> I had not heard of Wheel theory, quite fascinating.

But eek! From the wikipedia article:

        0x ≠ 0 in the general case
        x − x ≠ 0 in the general case

Like, you get the ability to divide by zero, but at what cost? Multiplying by zero is also not zero! Seems bonkers.

Are there any practical uses for this kind of algebra?

<comment><USER14> Likely no (the peculiar distributive laws seem unusable to me). But I have come across similar rules that I think may have a real usage. It sometimes seems to me that it might make more sense to keep 'factors' attached to 0s, such that x-x = (1-1)x = 0x might be 'sound', and to keep track of 'powers' of 0s by having factors of 0 attached to 0s: (0)0 = 0^2 != 0, etc.

If you keep factors like this, then you could implement L'Hopital's rule without the result only being true if considered under a limit: say, lim(x->0) (5x^2/ 3x^2) = 5/3 could be computed as (5)0^2 / (3)0^2 = 5/3.

This is not like Wheels though; it requires that any power of 0 be a distinct number. I of course have no idea if it is sound or meaningful, but I do find myself thinking about it a lot.

<comment><USER15> Those "factor" zeros look like infinitesimal forms, which are well studied.

<comment><USER14> There is a similarity, but no one claims infinitesimals are _literally 0_, and certainly no one would claim that 2-2 = 2 epsilon.

</comment></comment></comment></comment></comment></comment><comment><USER16> There is a video ([https://www.youtube.com/watch?v=S4zfmcTC5bM](https://www.youtube.com/watch?v=S4zfmcTC5bM)) from the PBS Infinite Series that covered this topic as well, for people that what a visual version of the explanation. I'm still sad that the series/channel was shutdown though, such a great series.

PS: this article/video essentially defines the naturals from the fundamental set theory axioms. This other video ([https://www.youtube.com/watch?v=KTUVdXI2vng](https://www.youtube.com/watch?v=KTUVdXI2vng)) from the same PBS series shows how you can then use the naturals to construct other types of common numbers, up to the reals.

</comment><comment><USER17> As a follow on people may enjoy Feynman's lecture on Algebra [http://www.feynmanlectures.caltech.edu/I_22.html](http://www.feynmanlectures.caltech.edu/I_22.html) and some audio clips [http://www.feynman.com/the-animated-feynman- lectures/](http://www.feynman.com/the-animated-feynman-lectures/)

>To discuss this subject we start in the middle. We suppose that we already know what integers are, what zero is, and what it means to increase a number by one unit. You may say, "That is not in the middle!" But it is the middle from a mathematical standpoint, because we could go even further back and describe the theory of sets in order to derive some of these properties of integers. But we are not going in that direction, the direction of mathematical philosophy and mathematical logic, but rather in the other direction, from the assumption that we know what integers are and we know how to count. ...

</comment><comment><USER18> _"This means we eventually end up either with an empty sequence (the set is empty) or with a sequence with only + operations in it"_

For valid starting points, that is true, but it doesn't follow from the text. The loop has an error exit ( _"If the sequence starts with − then something has gone wrong"_ ), and the text doesn't show that you won't get there for valid inputs, and showing that isn't trivial.

For example, if the sequence is ++---+, the first iteration removes the second and third item, leaving +--+, and the second iteration removes the first and second item, yielding -+.

The 'program' crashes there because the input is invalid, but proving that it never will crash for valid inputs without resorting to "that's how integers behave" isn't trivial.

</comment><comment><USER19> My usual answer is that math isn't too concerned with what things _are_ , but with _how they work_ with each other. So the answer would be: anything that works like the Peano axioms says it should. The "what it is" can be filled in later, and that's what makes math so powerful.

</comment><comment><USER20> Article seems very verbose and only really addresses the natural numbers (it mentions negatives and rationals in passing).

In case anyone just wants actual answers without reading pages and pages of prose, here is one set of constructions (there are other competitors too).

The natural 0 is the emptyset. The natural 1 is the singleton {0}. The natural 2 is {0,1}. In general, the natural n+1 is {0,...,n}. Exercise to the reader: define appropriate arithmetical functions on the naturals.

Define a relation ~ on pairs (a,b) of naturals by saying (a,b)~(c,d) if and only if b+c=a+d. Exercise to the reader: ~ is an equivalence relation. Its equivalence classes are called "integers". The equivalence class containing (a,b) represents the integer b-a. For example, the integer -1 is the equivalence class {(1,0),(2,1),(3,2),...}. Exercise: define appropriate arithmetical functions on the integers.

Define a relation ~ on pairs (m,n) (n nonzero) of integers by saying (m,n)~(p,q) if and only if mq=pn. Exercise: Show ~ is an equivalence relation. Its equivalence classes are called "rationals". The equivalence class containing (m,n) represents the rational m/n. For example, 1/2 is the equivalence class {(1,2),(-1,-2),(2,4),(-2,-4),...}={(k,2k) for all nonzero integers k}. Exercise: define arithmetic operations on the rationals.

To get from the rationals to the reals, see [https://en.wikipedia.org/wiki/Dedekind_cut](https://en.wikipedia.org/wiki/Dedekind_cut)

<comment><USER21> Your castle is built on sand. What, then, is {}?

<comment><USER20> One of the axioms of set theory is the axiom of the empty set, which states that there exists at least one set which has no elements. Another axiom of set theory is the axiom of extensionality, which states that two sets are equal if they have the exact same elements: from which it follows that all sets without elements are identical, i.e., there is only one set without elements. We call that the emptyset.

Other axioms of set theory are used to formalize other steps in my post. [https://en.wikipedia.org/wiki/Zermelo%E2%80%93Fraenkel_set_t...](https://en.wikipedia.org/wiki/Zermelo%E2%80%93Fraenkel_set_theory#Axioms) For example, the Axiom of Infinity is used to formalize the handwavy part where I said "In general, the natural n+1 is {0,...,n}".

<comment><USER21> An _axiom_ is simply _something made up_.

At the end of the day, all of our Mathematics rests on foundations that are made up.

It's difficult to say _what_ the empty set is. Because it isn't really anything at all.

<comment><USER22> There are legitimate criticisms you can levy against set theory, but I'm starting to lose you here. I'm not really following your point anymore - <USER2> seems like arguing about whether or not mathematics is invented or discovered.

Are you trying to argue coming up with new definitions isn't worthwhile if the axioms don't have a foundation in reality? If so, why? If not, what _are_ you saying?

<comment><USER21> The original post is called "What even is a number?". The comment I replied to tried to answer that question with "some formalism".

What I'm saying is: questioning foundations leads you to new foundations. New foundations that you can then question all over again. It's turtles all the way down.

If you're actually looking to use math, this is a futile exercise. It works, so just use it. Essentially, I am re-iterating von Neumann's statement:

> In mathematics you don't understand things. You just get used to them.

<comment><USER22> In that case I'd agree with you. I'm not particularly keen on rehashing foundations of mathematics either.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> I was surprised by no discussion of ordinality. Cardinality was something I also specifically expected.

Counts of things are described here, but the greeks went to great lengths with geometry to discover numbers (and even killed people who came up with irrational answers)

<comment><USER7> Most of computer science deals with finite things. As such, it isn't necessary to introduce cardinal numbers or ordinal numbers. Natural numbers suffice. If you do, you quickly need to get into territory that requires lots of math background like well orderings, cardinal comparability hypothesis, transfinite recursion etc.

</comment></comment><comment><USER24> I read this as "What is an even number" and spent the entire article stoked for when he got to the part about a number being even.

Still, lovely article.

<comment><USER25> Don't even numbers have a pretty easy definition? If prime factorizartion of the number contains at least a 2

<comment><USER24> Oh sure, but then the article started talking about _sheep_ and _rocks_ and I'm like "Oh boy, I bet I totally don't understand what it means to be _even_!"

<comment><USER26> Well you can reduce the +/\- notation further by allowing yourself to (after removing all +/\- pairs) to remove pairs of sequential + tokens, and if it reduces to an empty string then it's an even number, otherwise it's an odd number.

</comment></comment></comment></comment><comment><USER27> It's extremely obvious that the author is a computer scientist

<comment><USER28> Exactly! I didn't know the author, but couldn't help but check on his background after reading the blogpost.

It's almost a dead giveaway for excerpts like 'The notion of a counter is not that of a single concrete class of object, it is an abstract description of the behaviour of a system providing certain operations satisfying certain rules.' , and 'A number is not any one thing, it is any one of any number of things that implement some operations (and there are different types of number depending on what operations you want to implement).'

<comment><USER27> And the very first thing he did was define natural numbers as a grammar of operations with rules for interpretation

</comment></comment></comment><comment><USER29> > What even is a number?

It's a category. 1 is the category of singletons, 2 is the category of pairs, etc.

As to what _numbers_ are, they're an ordered collection of categories.

Edit: To whoever downvoted this comment, kindly explain. Insofar as I'm aware this is textbook maths, psychology, and philosophy.

<comment><USER22> If you define the natural numbers this way you'll run into Russell's paradox. For practical purposes that's fine and this is an elegant, modern restatement of Frege.

But if you need to avoid Russell's paradox the sets defining each natural _n_ can't contain _n_ as an element. The easiest such construction was outlined elsewhere in this thread by xamael. Under your category theoretic construction, every natural number _n_ is defined as the category of sets having cardinality _n_. But then every _n_ th category will necessarily contain infinitely many sets with cardinality _n_ that also contain _n_. That causes the paradox.

Unfortunately I don't think you can construct the naturals in a category theoretic way while avoiding Russell's paradox since any category by cardinality will fall into that trap. But if you don't need to mind that problem, this is neat.

Responding to your edit: I didn't downvote you; in fact I upvoted this comment because it's correct and it was gray at the time of my writing. My comment is just a point of clarification.

<comment><USER30> I don't understand how Russell's paradox comes in. The set of all eg. pairs does not contain itself.

<comment><USER22> If you've defined the natural number 2 to be an arbitrary set with cardinality 2, you're including sets which contain the number 2. That's the basic form of Russell's paradox.

If you define the natural number 2 to be the category of pairs, your objects are the sets with cardinality 2, and your relations between objects are equivalence relations. As a consequence your category 2 will contain sets which contain itself.

<comment><USER31> Why is that a problem?

</comment></comment></comment></comment></comment><comment><USER32> I love articles like this. Thanks for sharing. Ultimately math is just a language invented to describe the world. Which is what any language does. And it's a really useful language for sharing certain kinds of intelligence. I got into a discussion with my son last night about sine waves. Which don't really exist, per se, but they are a useful language construct for thinking about waves (especially sound waves as we were discussing). Shared intelligence like this is, as some have maintained, a major differentiator between humans and pre-humans. So the very fact we can argue about what is a number is part of what it is to be human.

<comment><USER17> It may be more than a language to describe the world. Take Euler's identity, e^(i*pi)=-1. One of the most striking equations in maths and it doesn't really describe anything physical in particular and true regardless of the nature of the world.

<comment><USER33> I can visualize it as triangles.

[https://www.math.toronto.edu/mathnet/questionCorner/epii.htm...](https://www.math.toronto.edu/mathnet/questionCorner/epii.html)

</comment></comment></comment><comment><USER34> Possibly related: [https://www.smbc- comics.com/comics/1485876000-20170131.png](https://www.smbc- comics.com/comics/1485876000-20170131.png)

</comment><comment><USER35> Here's a silly definition:

A number is a sequence of 1 or more digits, optionally beginning with a '-' and optionally followed by a '.' and one or more digits, where digits are the characters {'0' '1' '2' '3' '4' '5' '6' '7' '8' '9'}.

Examples: 1, 25, 3.2, -8

"1 + 2" is not a number, but its evaluation is

</comment><comment><USER36> This appears quite similar to the difficulty in explaining Monads (from the programming perspective rather than the mathematical)

</comment><comment><USER37> I think the counting is natural to human. The corresponding theory op used is not natural. If one has to use that, one start to use writing to do correspondence. Or use shell/good/coin.

That is for +integer.

Not sure about how natural is real number other than pi using geometry. And irrational also use geometry.

Use algebra and group-ring-field is very late.

</comment><comment><USER26> The article ends with "Almost certainly not, but if so why would we care?" which I find (along with its inverse "Almost certainly, but if not why would we care") to be my answer to many philosophical questions.

</comment><comment><USER38> This really just boils down to: Counting is an intuitive thing for us and it's useful to mathematically define it.

<comment><USER26> Can you expand? I think the author chose counting because of its intuitiveness, but they then go on to show that a very simple definition of counting can lead to some non-intuitive concepts, _and_ that even restricting yourself to that simple definition of counting can lead to classifying something controversial (i.e. infinity) as a number.

</comment></comment><comment><USER39> Number is an abstraction. What is an abstraction? It is a definition for a set of things by stating what is common to all things considered to be in that set.

"1" is the set of all things which have exactly one element. It is an abstraction for all such things.

What does it mean to "have one element"? I think that's a more difficult question. Maybe it should be an axiom?

</comment><comment><USER40> I often hear people say mathematics is the language of science. Since learning about cryptocurrency, I came to realize that more precisely, mathematics is the language to describe energy transformation.

So a number can be seen as a metaphysical representation of energy.</comment>


Chicken Scheme - <AUTHOR> http://call-cc.org <comment><USER2> CHICKEN is a lovely, pragmatic Scheme, it has a ecosystem that IMHO beats other Schemes; you can easily compile executables, it has great package management, testing systems. In that regard, it feels modern and complete, like other contemporary languages. The only thing missing are lightweight green threads.

<comment><AUTHOR> In a recent update, they added a debugger called feathers: it's a TCL script included in the default distro, and it's very nice, IMHO, especially for a debugger for compiled code: You can execute arbitrary code inside the current stack frame, and inspect both the source and the compiled code, among other things.

>The only thing missing are lightweight green threads.

...Ummm... Chicken already has that. It implements srfi-18 style pre-emptive coroutines which do qualify as green threads by the standard definition. They all run in a single thread, so you can parallelize without an explicit fork(2) like you can in Erlang and Go, but they are Green threads.

<comment><USER2> Oh _shit_ , I got it backwards: CHICKEN needs native threads! That way, you could implement fibers.

[https://wiki.call-cc.org/man/4/faq#does-chicken-support- nati...](https://wiki.call-cc.org/man/4/faq#does-chicken-support-native- threads)

<comment><USER3> Or you can go with Gambit, which does superb job here and produces optimized code. Last releases added backends for Java, PHP, javascript and perl I think.

<comment><AUTHOR> Gambit has exactly the same problem Chicken does: It has green threads (Gambit's author actually wrote the API for it), but no native threads.

</comment></comment></comment></comment></comment><comment><USER4> Chicken remains one of the most elegant and impressive implementations of any concept in any programming language you will find. A true marvel of engineering.

<comment><AUTHOR> True, but that's not why I use it. If it was, I would have moved to Cyclone, which has improved Cheney on the MTA by adding threading support, and has a library system that doesn't suck (with chicken, you have to generate import files for every module in order for the system to compile or interpret your code, even if the modules get compiled into a single file: it's like .h files in C, but they're autogenerated. I usually use a make script to build them), and a macro system that (afaik) isn't O(n) if you evaluate in the macro environment by default.

But beyond the elegance of Chicken's internals, it's probably the most practical Scheme implementation for just getting stuff done fast. It has excellent C FFI, a good stdlib with solid POSIX bindings, an excellent package repository with all the libraries you might need, and it's very fast. It's not about the elegance, although it's there, it's about practicality: getting stuff done, efficiently, effectively, and now, not later.

</comment></comment><comment><AUTHOR> Can I just take a moment to say how incredibly cool Cheney on the MTA is? Fast continuations, and a really neat GC model: It's great.

<comment><USER5> What is 'the MTA'. Everything I tried to find just talked about 'Cheney on the MTA' without ever defining Cheney or the MTA.

<comment><AUTHOR> _right_. Brace yourself, you're in for a long ride.

If you want to get in-depth on Cheney on the MTA, I'd reccomend Peter Bex's article on the Chicken GC ([http://www.more-magic.net/posts/internals- gc.html](http://www.more-magic.net/posts/internals-gc.html)), and the original paper, "CONS should not CONS its arguments, part II: Cheney on the MTA". But I'll do my best to sum it up here.

Cheney on the MTA is a really neat hack that allows for cheap continuations, realtively efficient C compilation of Scheme code, and an effective garbage collection scheme.

Effectively, with CMTA, you have a generational GC, but the first generation is _stack allocated_. When the stack allocations run out of space, all the data is copied out to the heap, into the second generation of GC. This is super effective because most data is only allocated for a short time, so it never goes out to heap, and your accesses are closer together, and also on the stack, so there's less chance of a cache miss. But it gets better: In Scheme, a program's continuation (think basically its instruction pointer and stack state) can be reified as an actual data structure. However, since you're GCing the stack already, this doesn't causr any overheard, or at least not nearly as much as it does in, say, Guile, which has to copy the stack every single time a continuation is created.

The reason it's called Cheney on the MTA is because it uses Cheney's algorithm for GC, and because it's using the stack to hold data, popping the stack would invalidate program state, so it _never returns_.

What never returning has to do with the MTA is a cultural alusion that would take too long to explain here. But that's never stopped me before.

It's a reference to a song called "M.T.A", originally created for Walter O' Brian's campaign in 1949 (Boston's subway was known as the MTA at the time). It became a hit when recorded by The Kingston Trio in 1959. Looking up the song is left an excercise to the reader.

Unofficially, the song is known as "Charlie on the MTA," hence the title of the paper. And yes, this is where the CharlieCard gets its name.

The song is fairly entrenched in the area: I grew up in Connecticut, and know the lyrics from memory. And on one of several trips to Boston, I've seen at least one person expect to have to pay on their way out of the subway system because of the song :-).

<comment><USER6> Thanks for this. I've seen the "CONS should not CONS" paper somewhere, but skimming over it never really got me anywhere even close to this explanation. I always thought it was some in-jokey reference to US politics, but I couldn't connect the MTA concept.

<comment><AUTHOR>
      Oh let me tell you a story about a function named *recursive* on a tragic and faithful time,
      It was called with 3 long ints, popped the stack and set a jumpbuf, called itself on the SGI.

      But did it ever return? No, it never returned, and its value is still unknown,
      It may run forever on the SGI mainframe, it's the function that never returned.

      Well that function ran a check to see when the stack would overflow, it ran almost past they say,
      But when it got there the function called a longjump on the jumpbuf,
      It just wasn't returning that day.

      But did it ever return? No it never returned, and its value is still unlearned
      It may run forever on the SGI mainframe, it's the function that never returned.

Man, GLS makes this look so easy. It's actually kind of hard.

</comment></comment></comment></comment></comment><comment><USER7> Chicken Scheme is a great Scheme implementation. For a beginner, however, there is a lack of IDE e.g. a good guide how to get EMACS running for Chicken Scheme. I used Sublime Text at the beginning, but I showed performance problems when using the REPL.

<comment><USER8> > e.g. a good guide how to get EMACS running for Chicken Scheme

Did you see this? [http://wiki.call-cc.org/emacs](http://wiki.call- cc.org/emacs)

Generally, for Schemes the standard is to use Geiser mode (not that you would know that as a beginner)

<comment><AUTHOR> Geiser+scheme-mode+paredit, and maybe scheme-complete and flycheck, are the way to go for all schemes. And geiser is great. It can just about give SLIME a run for its money, which isn't something you can say about most modes.

</comment></comment></comment><comment><USER9> Does this compile to a binary? I'd love to see some sort of similar live- compiler like [https://gcc.godbolt.org/](https://gcc.godbolt.org/) for this language.

I've wanted to port my operating system attempts to some LISP-Like system but I've not found a good Scheme implementation that generated nice and clean assembly code.

<comment><AUTHOR> It actually generates C, which can then be pushed through the $CC of your choice. Usually GCC. You can examine the generated C by passing a flag to the compiler, telling it not to compile it beyond that stage. However, reading the generated code isn't a task for the feint of heart: It generates CPS code, and it uses Cheney on the MTA (a really bizarre hack thought up by Henry Baker, and describe in his paper "CONS should not CONS its arguments, Part II: Cheney on the MTA," which is essentially required reading if you want to even have a hope of understanding what's going on.)

However, it makes heavy use of ELF and dynamic linking by default (although you _can_ link statically), and libchicken, the runtime system, depends upon libc by default.

So yes, you probably could make use of it for OS work, but it's not ideal for that context.

</comment></comment><comment><USER10> I used chicken when doing SICP and Little Schemer. Loved it!

<comment><AUTHOR> Really? I'd use mit+edwin for that myself: it was the intended environment, so everything works, and edwin is quite nice.

<comment><USER10> I'm not sure why I went for Chicken over the intended environment honestly, I just did. It worked out well.

<comment><AUTHOR> It's R5RS, so it ought to work. I mean, you can use whatever scheme you want: I was just surprised.</comment></comment></comment></comment>


West Virginia allows painkiller addicts to sue prescribing doctors - <AUTHOR> http://www.cbsnews.com/news/west-virginia-allows-painkiller-addicts-to-sue-doctors-who-got-them-hooked/ <comment><USER2> Well I hope nobody in West Virginia has serious pain in need of treatment. It is a good thing that doctors can always accurately diagnose how much pain someone is in and then prescribe the correct treatment because otherwise laws like this will just lead to desperate patients not getting help.</comment>


Could spam email help me win big at the Casino? - <AUTHOR> http://everythingbehind.com/post/164836782/could-spam-email-help-me-win-big-at-the-casino

<comment><USER2> From the comments there: <http://en.wikipedia.org/wiki/Martingale_(betting_system)>

<comment><USER3> I'm honestly surprised that more people don't know about the Martingale.

<comment><USER4> Then you would also be surprised at the number of people who independently "discover" the system, and invariably lose their shirts when playing it. Such stories used to crop up in the old rec.gambling newsgroup many years ago.

Any hackers also trade futures? The trading system known as "scaling" (buy dips, sell rallies based on N-point moves) behaves a lot like the Martingale system ... risk a lot to win a little. It's not as foolproof at its proponents would have you believe.

<comment><USER3> No, I guess not. Makes sense.

I've traded futures, but only for hedging.</comment></comment></comment></comment>


Twitter Applications can now use Tipjoy API with Twitter OAuth credentials - <AUTHOR> http://tipjoys2cents.blogspot.com/2009/04/twitter-applications-can-now-use-tipjoy.html

<comment><USER2> Funny, I read the headline and thought "ohh someone picked up the story!" then thought "ohh, that's my blog". Heh

In case people don't know, Tipjoy is throwing an API contest for our Twitter Payments API: <http://tipjoy.com/APIcontest>

Win a MacBook Air, or just make some money from your paid twitter app.

This recent update is cool because you can authenticate with Twitter OAuth.

This type of credential exchange between two OAuth consumers if a first as far as I know.

<comment><USER3> Thanks for implementing this!

What's the deadline for your API contest, btw? (didn't see one on the announcement)

<comment><USER2> Friday, May 15.

It's highlighted if you scroll down.

<comment><USER3> Actually it says that's when you'll announce winners, which why I wasn't clear on the deadline. Thanks for the info.</comment></comment></comment></comment>


Netflix Sues Yahoo CIO Mike Kail for Alleged Fraud - <AUTHOR> http://recode.net/2014/11/25/netflix-sues-a-former-exec-now-yahoos-cio-for-allegedly-collecting-kickbacks/ <comment><USER2> It's sad if the allegations are proven to be true that he collected kickbacks by having a portion of the contract fees sent to his private LLC[1]. One of the weird thing about having a VP title on LinkedIn is that I seem to get random InMails from people who propose deals like this pretty regularly. It makes me wonder if it is rampant or there are just a lot of hopeful growth hackers out there who are promising kickbacks in order to get more business.

[1] Anyone know how you would report that on your taxes? Kickbacks from line 1 or something?

<comment><USER3> it happens all the time. multiple (larger) companies i've worked for have had these scandals come to light.

the shady LLC or sometimes offshore corporation just recognizes it as normal revenue.

<comment><USER4> worse yet, a lot of times the fleeced company sweeps it under the rug. the $X00,000-$X,000,000 that they they were screwed out of isn't worth the hit the stock price takes as the market judges the existing leadership for not catching it sooner. I personally know of a case where a VP did this with contractors to the tune of ~$1.5M at a mega-bank. Just got fired, no pressed charges, no civil suit. Too embarassing.

</comment></comment></comment><comment><USER5> A better headline would probably be "Netflix Sues a Former Exec For Allegedly Collecting Kickbacks". His current job is not relevant to the suit.

<comment><USER6> I agree with wmf.

I was pondering what he could have done? Resell Netflix or redistributed captured video from Netflix?

Nope... Nope...

Its about suing form employee, who is also the now cio of yahoo, defrauded netflix and took money from Netflix by taking cuts of deals aka "kickbacks" from vendors where netlfix paid to vedors $X but the guy took 15% of $x for himself through a IT firm he has/had(?) On the side.

It is pertinent to note he is CIO of yahoo as there would probably be repercussions to yahoo if he gets convicted, but leaving out he is a former employee and these fraudulent actions took place while he was employed by Netflix, not yahoo, at the time

<comment><USER7> > It is pertinent to note he is CIO of yahoo as there would probably be > repercussions to yahoo if he gets convicted

They may even drop him before/even-if-not convicted. It's bad PR for Yahoo to say the least. (and it's unlikely that such a bold/public claim will end up being completely meritless)

</comment></comment></comment><comment><USER8> Looks like the original article's title has been changed: now it says "sues former exec", which is a critical part of the story.

Mods, can you change the title accordingly?

</comment><comment><USER9> I don't know exactly how much Netflix pays this guy, but if it was at least as much as Glassdoor claims we pay our directors, I really can't understand why he would risk that for an extra $300k.

<comment><USER10> Because if you have no ethics, this is risk-free money. Make no mistake, the news here isn't that an exec (allegedly) defrauded his company, the real news is that _the company is seeking legal action_.

<comment><USER11> It's not risk-free, though -- this thing could end his career. It's a terrible, stupid, error in judgment involving taking a huge risk for frankly- not-a-lot-of-reward.

</comment></comment></comment><comment><USER12> I wonder how Netflix discovered this. Was the new IT director going to end those contracts before receiving the same offer that his predecessor got from the vendor? If so, the smart thing for Netflix to do would be to try the same with all their vendors before going public with a lawsuit.

<comment><USER11> [http://blogs.wsj.com/cio/2014/10/03/cloud-makes-netflixs- vp-...](http://blogs.wsj.com/cio/2014/10/03/cloud-makes-netflixs-vp-of-it- position-redundant/)

Netflix wasn't planning to replace Kail, and there was no "new IT director."

<comment><USER12> Whatever they call the person who handles the IT contracts then.

</comment></comment></comment><comment><USER13> I wonder how common this kind of thing is. It was definitely going on at a previous place I worked at.

</comment><comment><USER14> So, at one point when I worked at Yahoo, there was an organization called, "SDS." Near as I ever could tell, there were consultants were were at Yahoo and also employees (double dipping in similar fashion) but that could have been my misinterpretation of things. There were a few people who were contractors, then employees of the company, and who's former company still had contractors working at Yahoo at the time. It's interesting to see this happen now, so many years since I've worked there.

</comment><comment><USER15> tl;dr

       The Netflix suit says Kail, who joined the company in 2011, arranged Netflix
       contracts with IT service companies Vistara and NetEnrich, and then pocketed
       commissions of 12 percent to 15 percent of the monthly fees Netflix paid
       each company.

       Netflix says it paid the two companies a total of $3.7 million from 2012
       until Kail's departure, which would mean he could have collected between
       $450,000 and $560,000. The suit says he funneled the payments to "Unix
       Mercenary," a consulting company he controls. Netflix said Kail approved all
       payments made to vendors.

if true, that's pretty damn shady. And stupid, frankly -- was $0.5m worth fucking your life up? I bet that's about his annual salary. I have to be honest: risking destroying my career, or jail time, for my annual salary isn't even a tiny temptation. You have to get up in the low millions before I need to think about it before saying no...</comment>


Introducing Playlyfe (Alpha): A Platform for Building Gamified Apps - <AUTHOR> http://playlyfe.com

<comment><USER2> Playlyfe is a new platform with a vision of turning Gamification into something practical and accessible for developers as well as regular users to help make the world a better place. We're still in Alpha and are on the lookout for developers, game designers and problem solvers who to help define the future of gamification! :D</comment>


The Cult of Genius - <AUTHOR> http://blogs.discovermagazine.com/cosmicvariance/2007/02/25/the-cult-of-genius/

<comment><USER3> My favorite quote from Paul Graham:

"People who've done great things tend to seem as if they were a race apart. And most biographies only exaggerate this illusion, partly due to the worshipful attitude biographers inevitably sink into, and partly because, knowing how the story ends, they can't help streamlining the plot till it seems like the subject's life was a matter of destiny, the mere unfolding of some innate genius. In fact I suspect if you had the sixteen year old Shakespeare or Einstein in school with you, they'd seem impressive, but not totally unlike your other friends.

Which is an uncomfortable thought. If they were just like us, then they had to work very hard to do what they did. And that's one reason we like to believe in genius. It gives us an excuse for being lazy. If these guys were able to do what they did only because of some magic Shakespeareness or Einsteinness, then it's not our fault if we can't do something as good.

I'm not saying there's no such thing as genius. But if you're trying to choose between two theories and one gives you an excuse for being lazy, the other one is probably right."

<http://www.paulgraham.com/hs.html>

<comment><USER4> I was in calculus and physics classes many years ago with a future physics Nobel laureate, and I was better in both than he was :-). Of course, he kept at it and I dropped out.

<comment><USER5> What do you mean by being better? Having better grades than him or being a better problem solver. Because most of the time, these kind of people follow their own agenda and don't really bother to be at the top of the class.

<comment><USER6> " Because most of the time, these kind of people follow their own agenda and don't really bother to be at the top of the class."

That was always my explanation for _my_ grades. :)

</comment></comment></comment></comment><comment><USER7> What bothers me the most when I read this kind of stuff, is that there is no clear reason why the success of Feynman & co. should be attributed to some innate talent rather than to hard work, and yet most people firmly believe in the former explanation. A very plausible reason for the 'genius' of all these physicists is that when faced with challenging problems, they didn't despair like most people, and instead tried experimenting with various approaches, or temporarily switched to different problems. In fact, in many interviews, Feynman himself claimed that 'intelligence' had nothing to do with his success.

It's also interesting to observe how different the comments are on Cosmic Variance and on Hacker News. Maybe the fact that so many physicists share the views expressed in that post has something to do with there being so few Feynmans, Hawkings and Einsteins.

</comment><comment><USER8> I don't think that many of the people who appreciate Feynman, Einstein or Hawking think they are as smart. If they did, why would they idolize someone who is on the same level as them.

Having people to look up to in your field is inspiring. It forces you to work harder and aspire to be greater in your field.

What if you worked in a field that had no one? Who does an accountant look up to? What inspires them to get up every morning and go to work? Money? That just isn't enough for some people, which is why you have such 'cults' (such as the supposed Paul Graham cult!).

<comment><AUTHOR> I think you missed the point. A grad student who idolizes Feynman, Einstein or Hawking does not think he's as smart as them (not even close). Instead, he hopes he can make contributions at the same level of Feynman, Einstein or Hawking. Maybe if he works really hard and is lucky, then maybe he can make one important contribution.

People who think they are smart and have no track record of achievements are just self-deluded, egomaniac, sick fools.

<comment><USER8> Again, what is wrong with that? I would take someone who is motivated, willing to work hard and is innovative over someone is simply comfortable with the likelihood that they will never contribute anything that will change the world.

<comment><AUTHOR> We're talking Physics here. Let's not forget that.

A hard-working, motivated person does not need to be Einstein-smart to change the world. There are many ways of changing the world, but coming up with a new theory that dethrones the old established theory is probably the hardest and riskiest way of all.

If I wanted to recruit someone, I would want someone who is motivated and willing to work hard, over someone who is bitter for not being Feynman-smart that is for sure.

The point I am trying to make is that people should set small, realistic goals and accomplish them. Instead of one big goal, divide it into small ones and conquer them one by one. Do not engage in ego-masturbation until you've accomplished something truly Earth-shattering. Just keep working to accomplish more.

<comment><USER9> One way I tend to look at it now is to put myself in perspective. I generally go under the assumption I am pretty smart - whether it is true or not - <USER2> that can often be a bad thing. It's often good to sit and consider the effect such awesome minds (and I think it is hard to argue their contributions aren't above and beyond what most "very clever" people will achieve) had on the world just to put my own achievements in perspective.

The crucial thing of course is to understand that it is still possible to achieve great things without reaching those heady heights :) (for example Von Braun is little remembered in pop-physics but his [and his team's] achievements changed the world substantially)

</comment></comment></comment></comment></comment><comment><USER10> Let's imagine that God's Book contains not only proofs but also the other good Ideas of the Universe (QED, Enlightenment, Mozart's Requiem, etc..) For one of these Ideas to become known to us, a human's brain must at some point "think" it - by entering some physical/biological state (firing pattern?) which encodes that idea.

Then the human search for these Ideas is really a search over an enormous state space of all possible brain states. Some factors that can affect one's odds of being first to exhibit an Idea:

\- Wiring: some brains are born prone to Idea states. Through plasticity, brains can increase their propensity to represent Idea states. Also, some brains are wired to acquire new states and evaluate them more quickly.

\- Hard work: entering & evaluating more states than other people, usually in a small area, through disciplined investigation.

\- Inputs: the right knowledge at the right moment (Ideas are similar to each other - cf. beauty as a correctness heuristic)

\- Blind luck

Some apparent characteristics of Idea states:

\- It is hard work to represent an Idea state (presumably, the easy ones are those we are born to, and appear trivial to us)

\- Idea states appear to occur in clusters (cf. beauty as a truth heuristic in physical theories)

\- It is difficult to define a distance metric between Idea states

\- Corollary: it is difficult to tell how far away any given state is from the nearest Idea state

As far as I can tell, the author of this article is arguing that it is unreasonable to stop searching simply because one's brain is not as Idea- compatible as F-E-H's appear to be. This seems to be sensible advice - but one must appreciate that it does diminish the odds.

</comment><comment><USER11> "Godlike genius.. Godlike nothing! Sticking to it is the genius! I've failed my way to success." --Thomas Edison</comment>


Ars on failure of Palm Pre - <AUTHOR> http://arstechnica.com/gadgets/news/2010/03/rip-palm-its-over-and-heres-why.ars

<comment><USER2> Business is a lot like politics. Things are never as bad as they seem, and they're never as good as they seem either.

Palm's down a lot from $17 because they should have never been at $17. (I bought in around $6 so am a little underwater, but hanging in).

I really think it's their marketing. Palm's never been very good at this, and now they're competing with Apple, a company whose ads have been case studies in college programs for over a quarter century. And the Motorolas and Nokias, who have much more clout with carriers, which still counts for a lot because most people still get a phone (even a smart one) by deciding what carrier they like then going to the store and seeing what looks good.

They seem to have had a fire lit under their ass. I don't know if they'll make something work, but I do know they've got hands-down the best OS on the phone market. Unfortunately as a shareholder I'm a lot more confident in their ability to produce great phones than their ability to sell them lately. Their turbulent period before WebOS pretty much ceded what little control they had of the

"One thousand apps is peanuts compared to the iPhone, which has well over 100,000 apps on offer, or Android's 10,000+ apps."

How many fart apps do you really need? 100x the apps is not 100x as good. In fact, it's probably not even 2x as good. The main thing I do on my Pre is listen to a podcast app that will not be allowed to exist on an iPhone. I'd rather have that one app than 100,000 others. I'm a special case, certainly, but the point is that it's not just a numbers game, and even if it were it would not scale linearly.

<comment><USER3> The article makes the "long tail" case that the number of fart apps within a phone's application catalog signals to potential buyers of the phone that they will likely find the fart app that is just right for them.

<comment><USER2> It's certainly better from a marketing perspective to say "We have 100,000 apps" than 1,000. I'd be curious to know what a prospective first-time smartphone buyer thinks, perhaps their conception might be that it's 100x better.

They won't think that when buying their second smartphone though.

<comment><USER4> There are nearly 1,800 apps available for download on my Pre. It is not 100,000 but it is not small either. From what I have seen the vast majority of the 100,000 iPhone apps are spam apps (useless or glorified rss readers), but even if only 5% of the apps not spam, 5,000 quality apps is a good thing to have. Palm's 1,800 is more than Windows Mobile Marketplace.

<comment><USER2> Well to be fair a lot of Pre apps are spam too. I see 5 a day that are just some public domain book.

<comment><USER4> For sure a lot are spam apps. If people just submitted 5,000 public domain books and 20,000 feed readers it wouldn't make their app store any better. Throwing around large app numbers is meaningless, people should be talking about the apps that they think are quality and aren't available elsewhere.

</comment></comment></comment></comment></comment></comment><comment><USER5> It's really weird.

They made a bet-the-company phone for "busy people" that mostly works only in the US and that is locked to a single carrier.

This is incredibly stupid.

Had they decided to sell unlocked GSM phones since day one, I bet they would have a a lot more of them in the hands of their users.

<comment><USER6> Even Google + Nexus One hasn't sold more than about 100K phones with the "unlocked, GSM" strategy. So, whatever Palm's mistakes, it doesn't look like this was one of them.

<comment><USER5> > So, whatever Palm's mistakes, it doesn't look like this was one of them.

Having a GSM phone would, if not help selling them abroad, at least not prevent them from doing so.

As for the Nexus One, why would Google want to pose a threat to its licensees? The Nexus One is not meant to compete with Motorola's or HTC's offerings: it's there to show what a pure Android phone is. It's a showcase.

<comment><USER7> Palm sells GSM phones outside of the US, and just announced that they'll be coming to AT&T later this year.

<comment><USER5> They do now. The save-the-company Pre was CDMA-only until about last week.

</comment></comment></comment></comment></comment><comment><USER8> Palm did very well with the OS, but they screwed up everything else. The hardware is crappy, the performance is sluggish and unresponsive, too many bugs, their marketing sucked, etc.

I think the only solution for Palm is for Google to buy them. Then Google can incorporate some WebOS stuff into Android.

<comment><USER9> You can't just bolt code from one platform onto another. Google shouldn't buy them; they offer nothing that Google needs. However, if there are any struggling phone manufacturers, buying Palm for WebOS to distinguish themselves from the competition might be a good idea.

</comment></comment><comment><USER10> Any idea why Palm doesn't take its (arguably) strongest asset, the webOS, and license it out to other phone makers? Apple wouldn't mess with Palm/the phone makers because Palm still holds a considerable chunk of patents, and that'd get _some_ cash flowing into Palm again.

<comment><USER11> What's the upside of paying money to a shaky company to license a struggling webOS, as compared to paying nothing to a huge stable company for healthy Android or paying money to a huge stable company for interesting-if-unproven Phone7?

As the article states: the market has largely spoken on webOS. Customers aren't choosing it based on its strengths. And when they choose its competitors, they do so for reasons that correlate strongly with webOS's weaknesses.

<comment><USER12> I'd say WebOS's weaknesses are 100% hardware. App store, sure, but that's because no one has a Pre or Pixi because they are cheap pieces of plastic crap. Put WebOS on the HTC Supersonic and just try to keep that thing in stock.

<comment><USER11> You don't think the media experience pales in comparison to the iPhone?

Or the customisability/flexibility pales in comparison to Android?

<comment><USER4> The default music playing app is much better on the iPhone. Other than that you can get videos from Youtube and break.com. You can play music in the background with Pandora, Grooveshark, Slacker Radio, or Radio Time. You can upload photos and video to Youtube, Facebook, Flickr.

As for a flexibility, look at the WebOS hacking community. WebOS is running on a Linux that isn't very far away from stock (closer than Android for sure). Just last week they got the QT framework running on it.

</comment></comment></comment></comment></comment><comment><USER13> I was super impressed when I saw their demonstration video of WebOS from an event, but as of present I've never sought out or even seen a Pre in real life. iPhone is evidently 'good enough' for me.

<comment><USER14> I've got a buddy with one, and I've seen at least two out in the wild around Milwaukee, not including my own Pre, and my wife's Pixi (both of us love our phones and for different reasons).

I find this whole "Palm doing poorly" thing to be rather odd. I really hoped Palm would return to it's rightful place, and I'm disappointed to see Palm on the way out again.

I sincerely hope WebOS survives. I think it's a great OS.

</comment></comment><comment><USER15> For what it's worth, my wife really liked those Pre ads.

Anyway, I used to work in the cell phone industry and the suits at Palm have been disconnected with reality for years. Their VP of Marketing was once bragging to me of their growing dominance in the PDA market, long after it was clear that smartphones were about to destroy the unconnected PDA market. What's that joke about buggy whips?

<comment><USER7> The suits at Palm have changed in the past 2 years.

<comment><USER15> Fair point.

</comment></comment></comment><comment><USER16> I definitely prefer WebOS over Android.

<comment><USER17> Why? I have to get a new phone soon and really don't know which one to get.

<comment><USER12> Don't get a WebOS phone because the hardware blows. Plastic screens and tiny hardware keyboards are no fun at all. However, I agree that WebOS is hands down the best mobile OS out there. In terms of ease of use, multitasking interface, notifications system, and even development, it's not even close.

<comment><USER2> I wouldn't say the hardware blows. It's not perfect by any means, but I think it's comparable to the competition. The screen is nice, but I apply a Skinomi plastic skin to any phone so it's all the same to me. The keyboard's not bad, better by far than a virtual one, but it's not really good like a Treo or Blackberry either. The battery/usb compartment door is hilariously shoddy. No idea how that one got in the finished product.

There are some great things about it too though, like the slider up top to mute the phone (standard Palm feature). And whatever flaws it may have with hardware are made up for tenfold by the Touchstone. As far as user experience goes, that simple item makes phone ownership so much better than you'd intuitively think. Before I got it I thought "do I really need to spend money on something that makes me not have to plug my phone in once a day? How hard is that really?" Now I think I'd gag if I ever had to plug a phone in again.

But really, the joy of using that OS is worth almost anything. I can't really explain it other than to compare it to owning a Lexus. It's a total experience that's greater than the sum of its parts.

</comment></comment></comment></comment><comment><USER18> Asus should buy Palm. There is room for a non-iPad tablet and webOS has the capability to corner that market over Android. Asus is an aggressive and smart company. They could do very low-priced tablets and have another big win, as they have with netbooks. I also wonder how blazing fast webOS would be on a Tegra2 CPU.

</comment><comment><USER19> I was an unhappy owner of a Pre for a few months. The software they shipped on the Pre could generously be called beta quality. After 6 months of slow speeds, lack of features, and almost no third party apps I gave up and got something else. I think Palm in retrospect should have tried to hold off releasing WebOS until it was ready. I realize there may have been some business realities that made that impossible but it looks like they're going to suffer either the consequences either way. Early Pre hardware and software destroyed Palm's reputation among a lot of loyalists.

</comment><comment><USER20> seems like only yesterday that the tech world was giddy with excitement over the possibility that palm could come back from the dead, apple-style. now i've read a couple of articles that say they are as good as gone.

i personally wouldn't have ever used a pre, but increased competition is always good, so i'm sorry to see them go.

</comment><comment><USER21> Sad.

The lack of apps is what really killed the Pre. I think that everything else listed here except maybe the faulty (as in defective) hardware is a relatively minor point. If the Pre had cool, unique applications, or even just a reasonably-sized selection of average applications, the awkwardness of the clamshell, the mirror on the back, the cramped keyboard, etc., all could have been fixed in a new hardware revision.

A more aggressive, general-purpose ad campaign could have helped too. Targeting women is fine, but kind of silly since in my experience women already have a high attraction to Apple's designs, and should not have been the only focus of their marketing.

If they'd taken more of a Google approach and licensed webOS to other hardware makers, that would have helped a lot too, but in the end the Pre was killed by its lack of developer support and that's the long and short of it.

There's a much larger selection of competent HTML/JavaScript/CSS developers than there are Objective C developers, and the fact that one didn't need a Mac to develop applications would have drawn a lot more devs in that way, I think. It was a good idea.

Word is that the process for Pre development was contrived and horrible. jwz wrote about it a bit. This is mysterious because Palm really made overtures like they "got it", but the actual implementation of the app submittal and review process was basically unusable even for the contingent that wanted to provide apps.

</comment><comment><USER22> The Ides of March were brutal - I saw elsewhere echoes of one analyst setting Palm's stock price target at zero ...</comment>


What was the first venture you tried? Tell your story. - <AUTHOR>

<comment><USER2> When I was six I wanted a remote controlled truck. It was bright blue and in the Sears catalog. I wanted it real bad but my parents told me they wouldn't buy it for me. I had to buy it myself. It was a hundred dollars. That much money to me seemed insane.

My parents both made crafts and went to craft shows to sell their wares. I asked if I could sell stuff too and they were overjoyed. I made little fluffy things out of Fun Fur: little snake with googly eyes that rose up when you petted it and tufts glued to the end of pencils to look like those little troll dolls. Each one was priced at a dollar and my mom subsidized my venture by buying all the materials. I had to sell a hundred of them to buy my truck. I was an ADD kid so I couldn't even count that high without getting distracted.

Time rolled on and slowly over the course of a dozen or so craft sales my pile of cash grew and grew until I had enough. Just for me my parents made the three hour long (round trip)journey into the city. I was so excited. I had worked so hard and now I was getting what I wanted.

Life rarely works out as planned unfortunately. The truck also required one of those fancy batteries that wasn't included. The kind that cost another $40. My parents didn't come to my rescue. They just told me I'd have to work harder to afford the new cost. On the way back I was in tears, my heart broken. My mother then told me that I shouldn't be sad, and to remember the smiles of the people I sold my stuff to. Money was just a way to say thank you, but the real reward was in making other people happy.

</comment><comment><USER3> I sneaked into our HS principle's office after school was over one day and printed out a fake school ID saying I was a senior on the school's own printer. This allowed me to take my car off campus during lunch. I'd then come back with several bags of Chinese takeout and sell it for a good profit. :-)

<comment><AUTHOR> LMAO!

Reminded me of middle school where this one admin kept track of how many times you didn't have your school ID around your neck. The admin was my science teacher and saved everything in an Access db on a computer everyone used in his class. It was very enticing to just ... the db.

</comment></comment><comment><USER4> I saved up and bought a CD burner ($800) when they first came out(grade 7) and started making mix CDs. At the time it was an untapped market because people only had mixed tapes, not CDs!! I had prepackaged Hip Hop, Rock, Alternative, etc. CDs and believe it or not, I charged $20 per CD. It turned into a pretty successful business just at school but then about 1-2 years later when prices came down on burners, the market became comodotized and I had to get out!

I'm now 21 and run a successful web-based start up based in Calgary. Curve Dental, check me out at curvedental.com or <http://www.curvedental.com/docs/resources/april07_matt_calgaryinc-2.pdf>

</comment><comment><USER5> When I was 8year old, I collected empty glass bottles in public trashes and earned some money when bringing them back to sellers. The trick is to find a good spot to find these bottles. I guess this could work today with pieces of furniture one can restore. Sorry to be out of topic, it's not IT ;)

When I was older I couldn't afford to buy a computer. So I built one my self. A friend who was EE made the plans and I also follow his directoves. It never went into a venture because the video output was not good and stable enough, but some worked well. It was a nice experience though.

Later got an Oric atmos. I wrote a disassembler and disassembled the whole OS, disk controler and basic interpreter. I then wrote a symbolic assembler that could call functions of the OS I digged out. This all done with peek&poke.; Then came the Mac+, the PC, Linux, etc.

</comment><comment><USER6> I started selling collectibles from my desk in 4th grade during recess and other down periods.

Continued it until 6th grade, when the school principal shut it down.

My first "adult" business was a web design consultancy I started freshman year of college.

My first "startup" was a company that ran a network of drop-shipping sites hosted on their own virtual domains with unique templates, etc. We never really got it fully off the ground before founder issues blew it apart.

Currently have tagsrc.com running, though the first widget is still buggy. Trying to find time around work to do more.

</comment><comment><USER7> In 2nd grade ... attempting to outdo the local brownie troop by selling girl scout cookie knockoffs. Damn thin mints! You ruined my business!!

</comment><comment><AUTHOR> I had this idea in 8th grade to build something similar to what Yahoo Answers! is today.

I developed much of the site in ASP and partnered with a designer to do the logo design(I sucked at designing back then). Once high school started and I discovered freelancing I lost focus and never really went live.

The site was called HelpersSeekers.com. This was in 2001.

</comment><comment><USER8> Counterfeiting checks and legal tender. On newsprint. In pencil. I figured I'd bootstap into enough cash to buy proper pens and paper.

</comment><comment><USER9> Kaleidoscopes. About 3rd. grade. Sold a couple :D

</comment><comment><USER10> Lemonade stand. 3rd or 4th grade. Not many people walk by in my neighbourhood so it was a loooooong wait before we sold anything :(

</comment><comment><USER11> A friend at work and I pooled our resources and borrowed $6K from a bank to purchase a PC AT in 1982. It had a 30 MB hard drive and amber screen. We created the first PC based finite element analysis program. We had to write it in FORTH because that was the only language that could address a full megabyte of memory.

</comment><comment><USER12> I got my state vendor's license in high school, and bought Magic:The Gathering cards at wholesale prices. I resold them at school at just under retail prices. I setup monthly tournaments in my parents' basement to sell more cards. I would routinely have 30+ people attend.

</comment><comment><USER13> I paid my caffeine bills in high school by doing computer-repair housecalls. I got a decent amount of business at $20/hr.</comment>


We're All Nerds Now - <AUTHOR> http://www.nytimes.com/2014/09/14/sunday-review/were-all-nerds-now.html <comment><USER2> No, we're not, at last not in the original meaning. Nerd used to mean someone obsessed and therefore knowledgeable about something (book nerd, comic nerd, or... The War Nerd[1]). Later geek took over that meaning and nerd moved towards someone socially awkward but smart.

Owning a smartwatch, reading a best seller novel, or watching a blockbuster doesn't make anyone a nerd. Not any more than wearing aviator sunglasses makes me a pilot. Which is actually what nerd tends to mean now, a style, a fashion fad inspired by the original.

Ironically, yet also completely predictably when you think of it, the original demographic is starting to look down on the nerd interests of yesteryear. You can read very dismissive (and downright insulting but that's a given) comments about anime and computer gaming on 4chan of all places.

[1] [http://exiledonline.com/cat/war-nerd/](http://exiledonline.com/cat/war- nerd/)

<comment><USER3> Maddox said it best in "You're not a nerd, geeks aren't sexy and you don't "fucking love" science."[1]

 _People love science in the same way they love classical music or art. Science and "geeky" subjects are perceived as being hip, cool and intellectual. So people take a passing interest just long enough to glom onto these labels and call themselves "geeks" or "nerds" every chance they get. I feel a sharp pang in my head every time some moron on Twitter or Facebook says something like "i'm doing my homework i'm such a nerd LOL!!!" Wrong, fuck belch. You're not a nerd for doing your assigned homework; you're doing it because you have to, not because you want to. That'd be like saying, "I'm eating food, I'm such a foodie, LOL!!!" Since when did it become cool to label yourself a "nerd" anyway?_ (...)

 _If you have to tell people you 're a nerd, chances are you're not. Nerds don't have to advertise their status. We know. Being a nerd is a byproduct of losing yourself in what you do, often at the expense of friends, family and hygiene. Until or unless you've paid your dues, you haven't earned the right—or reason—to call yourself a nerd. Being a nerd isn't graceful or glorious. It's a life born out of obsessive dedication to a craft, discipline or collecting some stupid shit that only you care about._

[1]: [http://thebestpageintheuniverse.net/c.cgi?u=youre_not_a_nerd](http://thebestpageintheuniverse.net/c.cgi?u=youre_not_a_nerd)

</comment></comment><comment><USER4> Heh, I recently posted this on Facebook:

As I spent a sunny Sunday working through Project Euler problems in Haskell, I got a little sad that the word "nerd" has been re-appropriated to people who like video games ($100billion industry) or Star Wars (3rd highest grossing film of all time) or people who like phone apps (everyone in SF).

Is there a new word that's been invented to take its place?

</comment><comment><USER5> Being perceived as an intellectual of any type (nerd or otherwise) still mostly excludes one from public office above a certain level (in the USA, at least). Until that changes, it's difficult to take the idea seriously.

<comment><USER6> You don't think constitutional law professors are perceived as intellectuals?

<comment><USER5> Obama was elected despite being an intellectual. And I did think of Obama and carefully phrase my statement to account for him. The point stands that _intellectual_ is a dirty word in politics, just like _nerd_ , which wouldn't be the case if we were all becoming nerds.

</comment></comment></comment><comment><USER7> "...the maker of Minecraft and one of the last independent gaming companies..." \- LOL, what?

"...right now I have three devices — my phone, my Kindle, my iPod..." \- worlds most consumer-friendly devices. So nerdy.

Reminds me of a South Park classic: [http://www.urbandictionary.com/define.php?term=flippity- flop...](http://www.urbandictionary.com/define.php?term=flippity-floppity- floo)

<comment><USER8> > one of the last independent gaming companies

I wish I could say it's astonishing that journalists writing for a major paper would just casually make shit up for no reason (because it sounds good, I guess?), but that's the generally rotten state of journalism for you.

</comment></comment><comment><USER9> I think there needs to be a distinction (when using the term Nerd) between people who use technology, and those who create it. Users of technology are more commonly called "Customers". Or "Consumers" in the new parlance. Whereas traditional Nerds are far more deeply involved with the technology, and grok it in it's fullness as they combine it into things never before seen.

<comment><USER10> I think "lusers" was the word used sometime ago for the people who use technology without understanding it :)

<comment><USER11> Well that's not elitist or anything.

<comment><USER10> well, elitism _was_ part of the thing.

Please note I am merely reporting what I remember was the most common way to refer to non tech savvy people.

This is the same culture that gave us LART, PEBKAC, cluebat, and of course the BOFH.

Interestingly enough, in italian we used "utonto" as a blend of "utente" (user) and "tonto" (dummy, simpleton), showing the feeling was shared across language barries within similar groups.

</comment></comment></comment></comment><comment><USER12> IMHO, I must respectfully disagree. It is easy for non-nerds to try defining nerds in their own image.

This is true especially for journalists. They have a conflict of interest in the matter.

Their interest is to sell content online or in the newspapers. To appeal to people's self-aggrandizement is a very powerful motivation in this case.

Is that what Mr Cohen is doing? At a glance that's not certain. However with regard to this opinion piece, reviewing definition of terms and how they are used, looking for logical fallacies, reviewing the background of people being interviewed and some healthy skepticism is warranted.

Journalists talking about science and scientists is not equivalent to a thorough understanding of it.

</comment><comment><USER13> sorry, but everybody * is not * a nerd until they're reading articles on beam- forming with wifi antennas with rapt attention.

</comment><comment><USER14> I've read a couple of history books, does that make me a historian now then?

What utter bullshit.

</comment><comment><USER15> >An engineering degree is also no longer a requisite to using technology, as seemingly anyone today can install a printer or upload a video.

Yikes - does that mean that we all needed engineering degrees to drive cars?

</comment><comment> vezzy-fnord I'm not really convinced.

The article's arguments for "geek culture" (might I add there is no such thing as a homogenous geek culture, but hey) proliferating are:

a) The recent popularity of sci-fi and superhero films.

b) The mass spread of consumer electronics and social media.

c) Computer technology becoming more accessible.

d) The information age enabling us to find trivia at a much faster rate than ever before.

e) Recent tech company acquisitions. (Twitch, Mojang, Oculus)

\</comment><comment></comment><comment></comment><comment></comment><comment>-

a) is not indicative of any long-term acceptance and popularity of "geekdom". Sci-fi, superhero and fantasy films have fluctuated in popularity on and off over the past 40 years. We're simply at another point where they've picked up again. In fact, the article does mention this quite neatly: "In the past, there have been plenty of pop culture phenomena nerds could get behind — the frenzies surrounding the "Star Wars" and "Lord of the Rings" movie franchises are two potent examples."

This is out, then.

b) is a technological inevitability. It has nothing to do with a spike in "geekdom". It's just progress, and in fact, one might make an argument that it is, to some extent, a regression. This is due to the locked down and obscurantist nature of consumer electronics, which discourage hacking and where everything is buried under a smoke screen. Social media? The Web is becoming ever more ubiquitous, so of course social media will as well. Social media has become more practical due to advances in web technology.

c) is closely related to b). As I stated, it may actually well serve as an argument against proliferation of "geekdom".

d) This means little, again. People have always been passionate about fiction they're invested in, so it's only normal that they'll memorize factoids and trivia. Honestly, if people think the best thing that came out of the Information Age is being able to look up factoids about television shows, what a miserable failure it is then.

e) is just tech giants being tech giants. Hurray?

\</comment><comment></comment><comment></comment><comment>-----

Finally, I'd like to state that _The Big Bang Theory_ has a rather... mixed reception, to put it euphemistically. In addition, installing a printer isn't always so simple. CUPS is nowhere near as bad as it used to be, but I still find myself having to reset the printer driver for the UI quite frequently, as it just arbitrarily blocks. I don't know.

And of course, the irony of taking a jab at that "homogenous, sexist geek culture" while writing about how a very watered down variant of it might be becoming popular.

</comment><comment><USER16> Just like we are all _hackers_ now too. Just a societal fad in today's participation ribbon receiving culture. Overall it's a good thing though, helping to push/pull people forward.

</comment><comment><USER17> i beg to differ. never has the gap between producer and consumer been so wide. what the consumer is seeing is getting more and more dumbed down, while the tech that runs behind the interface is getting more and more complicated.

its like (this is really vague, sorry)..once upon a time you interacted with your pc via cli..now you get a in-browser webgl game..

or..this certainly is not universal..but those people that have 3 devices often don't even know how to add a mail account(whats pop3/imap/tls?)..

</comment><comment><USER18> People (outside IT) are not interested in _knowing_ more about tech. For them technology is nothing more than magic, and they have no problem with that, nor at work or at home.

Having an iPhone in your hand does not make you a "nerd". It makes you stupid in my eyes, when I discover you use it only for messaging and calls.

<comment><USER19> > It makes you stupid in my eyes, when I discover you use it only for > messaging and calls.

I understand what you're trying to say, but I think there are better ways to say it.

<comment><USER7> Well, people with Androids and WPs know enough to either not call themselves "nerds" or actually be nerds. But of course he forgot that they would also play Candy Crush Saga installed by one of the Apple Geniuses.</comment></comment></comment>


Ask HN: Any tools to easily cluster ideas/notes by similarity? - <AUTHOR> Would like to pass in my Evernote note and output something grouped by similar ideas/notes.<p>Does this exist? <comment><USER2> If it can be interfered from words alone, try Latent Dirichlet Allocation (e.g. with [http://radimrehurek.com/gensim/](http://radimrehurek.com/gensim/)) to generate tags. Some sources:

* [http://blog.echen.me/2011/08/22/introduction-to-latent-diric...](http://blog.echen.me/2011/08/22/introduction-to-latent-dirichlet-allocation/)

* [http://alexperrier.github.io/jekyll/update/2015/09/04/topic-...](http://alexperrier.github.io/jekyll/update/2015/09/04/topic-modeling-of-twitter-followers.html)

* [http://engineering.flipboard.com/2017/02/storyclustering](http://engineering.flipboard.com/2017/02/storyclustering)

Alternatively, if you know tags, just want to see which are similar to each other, methods like word2vec should help, vide:

* [http://p.migdal.pl/2017/01/06/king-man-woman-queen-why.html](http://p.migdal.pl/2017/01/06/king-man-woman-queen-why.html)

<comment><USER3> I think the OP might have been looking for code that already exists, not just techniques for how to build it. But I have some opinions on these techniques.

LDA is not very controllable. It gives you a set number of clusters. Run it again and you get different clusters.

It can't give you documents that are similar to a particular document that you asked for, except to say that all the documents that happen to be in a cluster at the time are similar.

There are indeed up-to-date things you can do with word vectors -- though I'm sad that the tutorials always point to word2vec or GloVe, as if it's 2014. That's ancient in machine learning terms, and we now know of flaws in their outputs, such as [1].

If you want downloadable, pre-computed word vectors, ConceptNet Numberbatch [2] (part of the ConceptNet project that I develop) is the best in class right now, and you can download it in the same format as these older systems. And if you don't believe me tooting my own horn, at least use something else that's been updated in the last year, such as NASARI, or maybe fastText's precomputed English vectors.

Or you can just compare "bags of words", which is still good enough for many applications and readily available out of the box. I believe this is what you get with a "More Like This" plugin for a search engine such as Lucene, for example.

[1] [https://arxiv.org/abs/1607.06520](https://arxiv.org/abs/1607.06520)

[2] [https://github.com/commonsense/conceptnet- numberbatch](https://github.com/commonsense/conceptnet-numberbatch)

<comment><USER2> It's true that the number of topics is a free parameter of LDA. Yet, maybe unavoidable if we want to tweak between just looking at similar words vs at very coarse patterns.

For document similariaty tools typically does not be that subtle as for analogy tasks. Thank you for pointing to your research/tools anyway. :) And well, word2vec/GloVe are by no means the end of story - just a simple baseline.

</comment></comment></comment><comment><USER4> DevonThink has a "See Also and Classify" feature [1] that will suggest other notes related to a note, or suggest a category for to a note.

[1]: see screenshot here [http://blog.devontechnologies.com/2016/11/a-users- journey-in...](http://blog.devontechnologies.com/2016/11/a-users-journey-into- devonthink-student-academic-workflow/)

</comment><comment> le-mark Long ago, before link counting (googles page rank algorithm) there was quite a lot of research around finding similarity among a group of documents. "Scatter gather"[1] was a method I've often wished I could use on top of a set of search engine results.

[1] [https://pdfs.semanticscholar.org/1134/3448f8a817fa391e3a7897...](https://pdfs.semanticscholar.org/1134/3448f8a817fa391e3a7897a95f975ad2873a.pdf)

</comment><comment><USER5> If you know some python and are so inclined, you could use scikit-learn's k-means clustering implementation [1]. I used it to find similar movies based on their plot summaries for a school project.

[1]: [http://scikit- learn.org/stable/auto_examples/text/document_c...](http://scikit- learn.org/stable/auto_examples/text/document_clustering.html)

</comment><comment><USER6> DevonThink is very good at figuring out related notes. It's Mac only, unfortunately. You'd have to export from Evernote and then into DevonThink, which is an Evernote competitor.

[http://www.devontechnologies.com/products/devonthink/overvie...](http://www.devontechnologies.com/products/devonthink/overview.html)

</comment><comment><USER7> I'm currently working on a graph-based approach to this problem. I wrote about it here: [https://hackernoon.com/building-a-open-source-personal- knowl...](https://hackernoon.com/building-a-open-source-personal-knowledge- base-45c25f5a4324)

</comment><comment><USER8> You may be able to craft something like this in org-mode, by writing a little bit of elisp.

org-mode already provides all infrastructure to organise your ideas and tag them. You would just need to do the clustering part.

</comment><comment><USER9> [https://radimrehurek.com/gensim/](https://radimrehurek.com/gensim/) makes topic modeling really easy in python

</comment><comment><USER10> Different tool but for anyone doing a bunch of academic research and wanting to group what they are learning using an open source tool; check out docear.org

They could really do with more developer support also. Had difficulties finding someone to build a LibreOffice plugin and a (Mac)Word Plugin.

</comment><comment><USER11> I assume you mean something that does it automatically, but you should also know that you can tag notes, which would be a manual way of achieve this.

(For developers: just take the most frequent words that are not "a, the, if, but" etc and convert them to tags)

</comment><comment><USER12> [https://piggydb.net](https://piggydb.net) I dont use this myself but it's been on my list of things to investigate for a very long time as it seems like a fresh approch to note taking.

</comment><comment><USER13> There is an option/plugin for Jekyll for finding similar blog posts. [https://jekyllrb.com/docs/configuration/](https://jekyllrb.com/docs/configuration/)

</comment><comment><USER14> I am working on something related - unfortunately it's on the far left back burner at the moment. Haven't found anything similar though

</comment><comment><USER15> I wanted to build something like for Zotero. Never got around to doing it, unfortunately.

</comment><comment><USER16> Emacs org-mode. Plain text for everything, for the rest of your life.</comment>


Show HN: Placeboard – App to remember and share places built with coreobject.org - <AUTHOR> http://placeboardapp.com <comment><AUTHOR> Hi, I'm Quentin the guy behind Placeboard and one of the developer behind CoreObject: [http://coreobject.org](http://coreobject.org)

The app is also featured today in Product Hunt: [https://www.producthunt.com/tech/placeboard](https://www.producthunt.com/tech/placeboard)

I'm looking forward to your feedback!</comment>


Skyscraper Could Ruin New York's Skyline - <AUTHOR> https://www.architecturaldigest.com/story/big-bend-skyscraper <comment><USER2> Ruin? I think its gorgeous. And it appears to be right next to Christian Portzamparc's "pixelated" tower, the prettiest building in NYC.</comment>


Chatbots: Moving past the hype - <AUTHOR> http://venturebeat.com/2016/09/08/are-developers-finally-figuring-out-whats-wrong-with-chatbots/ <comment><USER2> It will be a long while but I feel we will experience a breakthrough in ai.</comment>


Scaling Static Analyses at Facebook - <AUTHOR> https://cacm.acm.org/magazines/2019/8/238344-scaling-static-analyses-at-facebook/fulltext <comment><USER2> The article cites awesome stats about the effectiveness of showing the results of static analysis at "diff time" (in code review) vs. outside the dev workflow.

> For classes of bugs intended for all or a wide variety of engineers on a > given platform, we have gravitated toward a "diff time" deployment, where > analyzers participate as bots in code review, making automatic comments when > an engineer submits a code modification. Later, we recount a striking > situation where the diff time deployment saw a 70% fix rate, where a more > traditional "offline" or "batch" deployment (where bug lists are presented > to engineers, outside their workflow) saw a 0% fix rate.

> ...

> The response was stunning: we were greeted by near silence. We assigned > 20-30 issues to developers, and almost none of them were acted on. We had > worked hard to get the false positive rate down to what we thought was less > than 20%, and yet the fix rate—the proportion of reported issues that > developers resolved—was near zero.

> Next, we switched Infer on at diff time. The response of engineers was just > as stunning: the fix rate rocketed to over 70%. The same program analysis, > with same false positive rate, had much greater impact when deployed at diff > time.

I am the Sourcegraph CEO, and we've long been aware of tools like this at Facebook, and Google's similar tool (described in another ACM article, [https://cacm.acm.org/magazines/2016/7/204032-why-google- stor...](https://cacm.acm.org/magazines/2016/7/204032-why-google-stores- billions-of-lines-of-code-in-a-single-repository/fulltext)). We are working on bringing static analysis into the dev workflow, and letting you run campaigns to apply static analysis fixes across your entire codebase. Check out [https://about.sourcegraph.com/product/automation/](https://about.sourcegraph.com/product/automation/) for info and screencasts to see what this looks like.

<comment><USER3> I've read something very similar before (also facebook) and one thing disturbed me, and it's given in your quote, the difference in bugfix uptakes by devs depending on how it's presented. I have to say that shocked me as it appears so unprofessional (yes, I read the reasons but still).

The root of that shock was the human factor. Us devs aren't machine parts, but our essential job is to do stuff and fix the inevitable bugs. The fact that presentation of bug reports could change things so radically was an eye opener, and one I'll generalise and remember.

Then again I've never worked on huge codebases, and I assume the devs there were top engineers so I'm not attributing this to laziness or indifference - but still, amazing and not in a positive way! I'd just assumed static analysis = bugs found = bugs fixed = better code; end of story.

<comment><USER4> human factor but also incentives.

if someone comes to you with a bazillion issues that you cannot possibly fix in the X hours you have during the day what are you going to do? you're going to prioritize and you're going to fix the most important bugs, right?

if you're developing a new feature and things are pointed out during the code review (bots or no bots) what are you going to do? fix it, right? you want to ship whatever you're doing with high quality.

so the problem outlined below is a false one. you can never fix all the possible bugs if the codebase if nothing but trivial.

<comment><USER3> > you're going to prioritize and you're going to fix the most important bugs, > right?

That doesn't make sense. Presented one way, the bugs were fixed to a 70% rate. Presented another way, 0%.

Presumably the bugs in each case were about equivalent in their severity (else the conclusion is meaningless) so severity was not the driving factor in what got fixed.

> you can never fix all the possible bugs if the codebase if nothing but > trivial.

That's a non-sequitur. No-one suggested they could fix all, or should try. It was about known bugs presented to them.

<comment><USER5> It makes perfect sense. If you file a bug assigned to me that doesn't seem to actually affect users or isn't aligned with the work I am already committed too, it goes in the backlog and I may or may not ever get to it. If it's a bot that generated the bug, it comes after user reports, and I may never get to all of those.

If it's a comment on a code review for code I am already working on, then of course I want my new or changed code to be up to date with standards and avoid error prone patterns, etc.

<comment><USER3> @mirceal, @wffurr, I see what you're saying and you're both right.

However that does leave a major question for me; if devs are triaging their own bugs to this extent (70% vs 0% fix), is this safe, because those bugs will relate ultimately to business requirements related to uptime and correctness.

<comment><USER6> For the most part at Facebook, ongoing maintenance and business outcomes are the responsibility of the team that originally wrote and deployed the feature. The idea is to give the team (and ideally the individual developer) as much agency as possible as they are the closest to the actual problems.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> > The response was stunning: we were greeted by near silence. We assigned > 20-30 issues to developers, and almost none of them were acted on. We had > worked hard to get the false positive rate down to what we thought was less > than 20%, and yet the fix rate—the proportion of reported issues that > developers resolved—was near zero.

Duh? If I am assigned a low priority bug, I will put it on the bottom of my todo list. My manager has the ability to reprioritize items on my todo list, but that doesn't seem like that was done in this case. If you want people to fix your low priority bugs, just filing them and praying isn't going to work.

</comment><comment><USER8> I'm not familiar with Infer or Zoncolan, but I wonder what percentage of issues these tools detect is already covered by IntelliJ IDEA "inspections". Inspections consist of a configurable series of static analyzers each targeting a specific case. IJ runs inspections concurrently in the editor, flagging problems as they occur. What's more, many inspections provide "quick fixes" \-- they can fix the issue at hand for you with a simple keystroke. Inspections can also run in batch and can bulk-apply quick fixes.

The obvious advantage inspections have over diff-time tooling is that detectable issues are often fixed immediately when a developer is most familiar with the code in context (edit-time), which translates to improved productivity. Additionally since most inspections provide quick fixes, they not only save time, but also provide code consistency regarding how issues are resolved.

I realize FB uses languages other than Java, so I wonder if their static analysis investments would be better served focused more on building/buying better IDE tooling?

<comment><AUTHOR> I highly doubt FB is trying to save money on their IDE budget. Zoncolan and Infer can detect many more bugs and security issues outside the capabilities of the IDE. Also, even if one dev is using Intellij, the global configuration of the system in the article can enforce consistent standards across the organization.

<comment><USER8> You misunderstand. It's not about the cost of the IDE but rather the cost of maintaining software and preventing defects over time. The takeaway from my comment: Toward a general policy if static analysis were built into the editor, as it is with IntelliJ, it would significantly improve productivity and guarantee a higher rate of defect prevention.

</comment></comment></comment><comment><USER9> Here's the one that's been in use at Google for many years: [https://static.googleusercontent.com/media/research.google.c...](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43322.pdf)</comment>


One of Russia's Neighbors Has Security Lessons for the Rest of Us - <AUTHOR> https://www.bloomberg.com/news/articles/2019-02-11/a-russian-neighbor-has-cybersecurity-lessons-for-the-rest-of-us <comment><USER2> So basically the same as "US patriots" on HN, Reddit, Wikipedia, etc.?</comment>