0.999...= 1 - <AUTHOR> https://en.wikipedia.org/wiki/0.999... <comment><USER2> There is no proof that will ever satisfy a person dead-set against this. Ever since I brought this home from school as a child, my whole family ribbed me mercilessly for it.

If you tell a person that 3/6 = 1/2, they'll believe you - because they have been taught from an early age that fractions can have multiple "representations" for the same underlying amount.

People mistakenly believe that decimal numbers don't have multiple representations - which, in a way is correct. The bar or dot or ... are there to plug a gap, allowing more values to be represented accurately than plain- old decimal numbers allow for. It has the side effect of introducing multiple representations - and even with this limitation, it doesn't cover everything - Pi can't be represented with an accurate number, for example.

But it also exposes a limitation in humans: We cannot imagine infinity. Some of us can abstract it away in useful ways, but for the rest of the world everything has an end.

I wonder if there's anything I can do with my children to prevent them from being bound by this mental limitation?

<comment><USER3> It's more fundamental: People seem to have the intuition that the decimal representation of a number _is a number_. I don't know if it's because decimals resemble the ntural numbers or what, but decimals seem to have a primacy for people that fractions do not. The idea that there's a gap between the _symbol_ for a thing and the _thing itself_ is the stumbling block.

<comment><USER4> I think this is a very insightful remark. People think that numerals _are_ numbers, and it's hard to explain why this is not the case, because we have no way to talk about specific numbers _except_ by using numerals. But many frequently-asked questions are based in a confusion between numbers and numerals. For example, many beginner questions on Math SE about irrational numbers are based in the mistaken belief that an irrational number is one whose decimal representation doesn't repeat. I've met many people who were just boggled by the idea that "10" might mean ●●, or ●●●● ●●●● ●●●● ●●●●, rather than ●●●●● ●●●●●. A particularly interesting example I remember is the guy who asked what were the digits that made up the number ∞. It's a number, so it must have digits, right? ([https://math.stackexchange.com/q/709657/25554](https://math.stackexchange.com/q/709657/25554))

Computer programmers (and historians!) have a similar problem with dates, and in particular with issues like daylight saving time and time zones. I think a lot of the problem is that again there's no way to talk about a particular instant of time without adopting some necessarily arbitrary and relative nomenclature like "January 17, 1706 at 09:37 local time in Boston". But when was this _really_? Unfortunately there is no "really". ("Oh, you mean Ramadan 1117 AH, now I understand.")

<comment><USER5> >the mistaken belief that an irrational number is one whose decimal representation doesn't repeat

...which is true for any base-n representation where n is a natural (even rational) number. And that's kind of implied most of the time, so it seems like a useful definition. Where would this lead to problems?

<comment> tom-thistime Yeah, can we have an example of an irrational number whose decimal representation repeats or terminates?

Or a rational number whose decimal representation doesn't repeat?

<comment><USER6> I expect mjd is thinking of irrational bases. The number might still be written as 10, in digits that look decimal.

<comment><USER7> Thank you! This thread is full of people insisting on something wrong because they were taught incorrectly; an irrational number is defined in terms of integer ratios for a reason.

It's not like those people haven't worked with an irrational base before, either! Radians have an irrational base. When we talk about 2π radians, or 1/4π radians, that's exactly what we're doing.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Personally I've always thought "proofs" using "arithmetic" are right, but kind of stated backwards.

The point is that in elementary school arithmetic, you define addition, multiplication, subtraction, division, decimals, and equality, but you _never_ define "...". Until you've defined "...", it's just a meaningless sequence of marks on paper. You can't prove anything about it using arithmetic, or otherwise.

What the "arithmetic proofs" are really showing that if we want "..." to have certain extremely reasonable properties, then we must choose to define it in such a way that 0.999... = 1. Other definitions would be possible (for example, a stupid definition would be 0.999... = 42), just not useful.

What probably causes the flame wars over "..." is that most people never see how "..." _is_ defined (which properly would require constructing the reals). They only see these indirect arguments about how "..." _should_ be defined, which look unsatisfying. Or they grow so accustomed to writing down "..." in school that they think they already know how it's defined, when it never has been!

<comment><USER9> > Personally I've always thought "proofs" using "arithmetic" are right, but > kind of stated backwards.

I've never considered them right at all. By saying something like

0.9... x 10 = 9.9...

and then saying that

9.9... - 0.9... = 9

you're basically just a priori defining 0.9... to be 1. In other words you're basically just defining 0.9... as a symbol to be some number x which has the property that 10x - x = 9. So you're basically just defining it to be 1.

I've never seen a proof of 0.9... = 1 using Peano arithmetic which made any sense to me. I doubt one actually exists in any true logical meaning. Unless you're making use of limits, completeness, or something equivalent I don't see how a proof could possibly make any sense.

<comment><USER10> You only need to define 0.9… as 9/10 + 9/100 + 9/1000 + …. Without knowing how that series converges you can then use the two expressions mentioned to conclude that it has to be equivalent to 1.

<comment><USER9> > You only need to define 0.9… as 9/10 + 9/100 + 9/1000 + …. Without knowing > how that series converges you can then use the two expressions mentioned to > conclude that it has to be equivalent to 1.

Sure you can provide a hand-wavy argument and try to give some intuition if you'd like. That doesn't make it any sort of logical proof though. I guess it depends on what you're after.

<comment><USER11> The GP's definition is the fundamental definition of the decimal notation. It's exactly what the "0.9..." symbol means.

You can redefine the "0.9..." symbol to mean something else as much as you want, you can have it meaning pi if you like, but then you are just changing the subject on the most unhelpful way.

<comment><USER9> > The GP's definition is the fundamental definition of the decimal notation. > It's exactly what the "0.9..." symbol means.

> You can redefine the "0.9..." symbol to mean something else as much as you > want, you can have it meaning pi if you like, but then you are just changing > the subject on the most unhelpful way.

I _know_ that.

I think I maybe should just bow out of this conversation. I'm apparently incapable of explaining myself in a way that is understandable to people here. I'll consider this my fault.

I'll just summarize: I don't think any "proof" that 0.9... = 1 that is only expressed in terms of arithmetic operations and does not make use of limits is legitimate. In other words I claim that a proof like "0.9... = x" means "9.9... = 10x" means "9 = 9x" is illegitimate. Instead of taking "0.9... = 1" on faith it takes "10 x 0.9... = 9.9..." and "9.9... - 0.9... = 1.0... = 1" on faith. There's no proof here. It's just shifting around symbols. Of course there are logical proofs, but they make use of limits/completeness/properties of real numbers explicitly.

Feel free to disagree...

<comment><USER11> Oh, ok. If I understand correctly, you mean that there isn't any standard algorithm for handling a sum with infinite terms if you don't include limits.

Well, I do disagree, not with the above statement, but the meaning of "0.9..." itself requires limits, so the discussion can never go anywhere if your assumptions do not include limits.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> A formally rigorous proof of this (in Metamath) is here:

[http://us.metamath.org/mpeuni/0.999....html](http://us.metamath.org/mpeuni/0.999....html)

Unlike typical math proofs, which hint at the underlying steps, every step in this proof _only_ uses precisely an axiom or previously-proven theorem, and you can click on the step to see it. The same is true for all the other theorems. In the end it only depends on predicate logic and ZFC set theory. All the proofs have been verified by 5 different verifiers, written by 5 different people in 5 different programming languages.

You can't make people believe, but you can provide very strong evidence.

<comment><USER13> It depends on more than just ZFC, also on the definitions of the real/complex numbers. The crux of the proof is that 0.99999... is being constructed within the real/complex numbers, and in that system it is equal to 1.

And at the point where students see this, the whole concept of real numbers and infinity is usually ill-defined. I actually understand the scepsis for this theorem and where it comes from. The proof relies on the existence of a supremum, which is non-trivial.

<comment><USER14> I think this is spot on, at least for me personally.

I am not very good at mathematics, so I never questioned my professors when they said that "You cannot treat infinites as regular numbers".

Perhaps due to that statement, I did not really pursue these kinds of equations. For instance, I do not really see how the algebraic argument on the Wiki is any different from:

      2 * inf = inf
      inf + inf = inf   (subtract inf from both sides)
      inf = 0

<comment><USER15> There is this phrase, often used when describing the decimal expansion of pi - "keeps going infinitely". This phrase is not exactly incorrect, but I wonder if it misleads people into thinking that an "infinite decimal" is "a kind of infinity", which it really isn't in any meaningful way.

<comment><USER16> I think it absolutely gets confused.

Infinity, the number, is routinely confused with creating an onto function mapping digits of pi to a set with a cardinality of the natural numbers. But sadly most people don't have the mathematical maturity to understand the difference when they encounter their first irrational number (normally pi).

</comment></comment></comment></comment></comment><comment><USER17> The proof relies on the assertion that the supremum of an increasing sequence is equal to the limit. This is mathematical dogma, and should be introduced as such. Once that is accepted, it becomes obvious.

This is illustrative of what I see as a fundamental problem in mathematics education: nobody ever teaches the rules. In this case, the rules of simple arithmetic hit a dead end for mathematicians, so they invented a new rule that allowed them to go further without breaking any old rules. This is generally acceptable in proofs, although it can have significant implications, such as two mutually exclusive but otherwise acceptable rules causing a divergence in fields of study.

When I was taught this, it was like, "Look how smart I am for applying this obtusely-stated limit rule that you were never told about." This is how you keep people out of math. The point of teaching it is to make it easy, not hard.

<comment><USER18> What? 0.999... = 1 is not dogma. Please don't spread misinformation. And at least read the link before commenting on something.

<comment><USER19> Did you read what @jl2718 posted? Namely:

> the supremum of an increasing sequence is equal to the limit

\-- this is not misinformation (and to anyone familiar with some introductory analysis, correct[1]). Of course, calling it "dogma" is a bit inflammatory, but not technically wrong. It's kind of of a made-up rule to help us work with infinities (particularly in ℝ -- but it happens all the time in set theory, as well).

But to agree with GP, touting it as "intuitive" or "mind-blowing" is indeed silly.

[1] [http://www.math.toronto.edu/ilia/Teaching/MAT378.2010/Limits...](http://www.math.toronto.edu/ilia/Teaching/MAT378.2010/Limits%20and%20real%20numbers.pdf)

<comment><USER20> I do think it is technically wrong to call it dogma - the decimal is a geometric series with a limit, right? And limits have an unambiguous definition, it's the smallest value that the series approaches but never exceeds as it tends to infinity. I think the part that is admittedly weird is that the notation "0.999..." refers to the limit as the series tends to infinity, and it kind of hides that fact from you. Even just writing the geometric series down and plopping "infinity" as the value for x would be wrong, as it's the limit that is equal to 1 as x tends to infinity. So there's arguably more hidden notation than the ellipses implies, but nothing is pulled out of a hat here or defined for definitions sake.

<comment><USER19> > the decimal is a geometric series with a limit, right..

Right, but that's not really the crux of the matter. Hint: look at how the supremum is _defined_ [1]. The _definition_ of the supremum is how we end up with 0.999... = 1.

[1] [https://math.stackexchange.com/questions/1977204/limit-of- mo...](https://math.stackexchange.com/questions/1977204/limit-of-monotone- increasing-sequence-is-supremum)

<comment><USER17> I suppose my point is that you could turn the repeating decimal into an infinite series, and a student might accept that, and you could define the suprememum and they might agree that it is 1, but then you ask them if the series is equal to the supremum, so they don't know what to do with the series, so they turn it into a sequence. Now they ask whether the last item in the sequence is equal to the supremum. Of course not! This is by definition.

And now you realize that you and the student have been operating by different rules. Their rules of equality are based on symbolic equality, so you actually have to relax the rules a bit to make limit equality work. And then, more importantly, you have to show that all the other rules are still intact. Actually, in this case, they aren't. Symbolic equality involving infinity is now horribly broken, and you have to express all equality in terms of limits to maintain consistency. Explore this further and you keep finding more inconsistencies that have to be settled by new rules that define new areas of mathematics.

So who is right? The natural world appears to be much more permissive than limit equality, preferring epsilon-equality. Symbolic equality is the only purely self-consistent system, but you can't do much with it. It's also possible that the natural world works with symbolic rules (quantum) but the complexity is great enough to resemble epsilon equality (continuum).

So, .999... == 1 by tautology. It's not some brilliant mathematical insight. The interesting part is the consequence of defining it as so.

</comment></comment></comment></comment></comment></comment><comment><USER21> I remember being doubtful when being presented with this in middle school, but after being shown this as fractions makes it obvious:

          1/3 =     0.333..
      3 * 1/3 = 3 * 0.333..
          3/3 =     0.999..
            1 =     0.999..

<comment><USER22> I don't mean to troll you, but if you were doubtful that 0.999... = 1, then you should also be doubtful that 0.333.. = 1/3\. Any argument that 0.999... is not quite 1 can also be used to argue that 0.333... is not quite 1/3.

I think it's mostly a matter of definition, since mathematicians consider sums of infinite series equal to their limit (if it's finite), i guess for many practical reasons. If you accept this, then 0.999... = 1. If you don't, then 0.999... can't be assigned a value (but converges to 1), which may be the intuitive understanding of infinite series for some.

<comment><USER23> > if you were doubtful that 0.999... = 1, then you should also be doubtful > that 0.333.. = 1/3

I disagree. Any middle school student can calculate 1/3 to be 0.33333... using long division, but there's no immediately obvious way to go from 1 (or 1/1) to 0.9999...

<comment><USER24> > Any middle school student can calculate 1/3 to be 0.33333... using long > division, ...

...the same way That Chuck Norris can count to infinity... twice!

<comment><USER25> I smart middle-schooler is absolutely capable of understanding that dividing 1/3 results in an infinitely repeating sequence of 0.33333... Even without understanding the concept of infinity, they will quickly realize that there's no reason to believe the problem will stop adding a 3 to the end of the result with each iteration.

<comment><USER24> > I smart middle-schooler is absolutely capable of understanding that dividing > 1/3 results in an infinitely repeating sequence of 0.33333..

And how will I smart middle-schooler know that the result of running the long division algorithm is exactly 1/3, rather than some approximation.

</comment></comment></comment></comment></comment></comment><comment><USER26> My 5 year old stumped me with this, and I had to look it up. He asked me why 1/3 + 1/3 + 1/3 = 1, since it's equal to 0.333... + 0.333... + 0.333... which is 0.999... How can that possibly equal 1.000...? And is 0.66... equal to 0.67000...?

I didn't have a good enough answer for him, so I had to look it up and found this page. I tried to explain it to him but since I'm a terrible teacher and he's only 5, it was hard for me to convince him. Luckily he has many years before it matters!

<comment><USER27> > He asked me why 1/3 + 1/3 + 1/3 = 1, since it's equal to 0.333... + 0.333... > + 0.333... which is 0.999... How can that possibly equal 1.000...? And is > 0.66... equal to 0.67000...?

This would make me very proud.

<comment><USER28> Yes, it's quite clever. An equivalent proof is dividing 0.999... by 9 using long division, which comes out to 0.111... which is equal to 1/9\. Now use fraction notation and it simplifies to 9/9 = 1. Not quite as robust as the limit-based proofs but it's a quick answer and gets to the heart of the issue of repeating notation not capturing the whole picture.

</comment></comment></comment><comment><USER29> An interesting consequence of this in proofs.

You'll see various proofs involving real numbers that must account for the fact that 0.999…=1.0. There are, of course, many different ways to construct real numbers, and often it's very convenient to construct them as infinite sequences of digits after the decimal. For example, this construction makes the diagonalization argument easier. However, you must take care in your diagonalization argument not to construct a different decimal representation of a number already in your list!

<comment><USER30> I never understood the fixation on diagonalization. Why can't ever exist another way for mapping any set to countables?

<comment><USER31> Diagnolization is a pretty deep argument about fixpoints, Godels incompleteness argument is essentially a diagnolization. So why wouldn't there be fascination?

</comment></comment></comment><comment><USER32> Flame wars over this used to be common on the internet. People intuitively have the notion that the left side approaches 1, but never actually equals it. They see it as a process instead of a fixed value. Maybe the notation is to blame.

<comment><USER33> The intuition that there is something in between isn't really wrong, it make sense and they work, otherwise physicists wouldn't be able to work with them. So that intuition is correct, it is mathematicians who just don't understand it fully yet. Maybe fully formalizing this is what unlocks the final piece keeping us from creating a unified theory in physics?

<comment><USER34> Nonstandard analysis is a rigorous framework for working with infinitesimals (and infinitely large numbers).

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

</comment></comment></comment><comment><USER35> I remember WarCraft 3 official forums being torn apart by this, with probably thousands of comments in the thread. Blizzard even had to post their official stance on the issue, but that didn't calm those who insisted 0.999... was 1 minus epsilon and not exactly 1.

<comment><USER36> I'm glad someone else remembers this. To this day, whenever I see 0.999... = 1, I think of the Battle.net forums inexplicably flooded with threads about it for what felt like ages.

</comment></comment><comment><USER34> Maybe the major source of confusion is that our decimal representation for whole numbers is supposed to be unique. Then when we extend it to rationals and reals this property fails at rationals in the form of a/10^n.

Arguably the sign symbol ruins it for whole numbers as well, as +0 and -0 could be equally valid representations of the number 0. We just conventionally don't allow -0 as a representation. There are other number representations that don't have this problem.

<comment><USER37> Right - I also find it easier to say that really, "1" is just a different/shorthand notation for 0.(9) It's not "two different, but equal numbers" \- it's two different notations for the same number. Like how you can write same number in different ways in different bases - this is just writing the same number, in the "infinite number of decimals" vs "natural" way.

<comment><USER34> Arguably 1 is just as an infinite number of decimals as 0.(9) . 1 is just short for 1.(0) .

</comment></comment></comment><comment><USER38> 0.9999 = 1 is a consequence of the way we define rational and real numbers and limits. There are alternative definitions of numbers where this equality does not hold: Non Standard Analysis [https://en.wikipedia.org/wiki/Nonstandard_analysis](https://en.wikipedia.org/wiki/Nonstandard_analysis) being the most famous one.

But for the sake of argument, let's just define numbers as sequences of digits with a mixed in period somewhere:

        MyNumber := {
          a = (a_1, a_2, ...) -- list of digits a_i = 0 .. 9; a_1 != 0.
          e -- exponent (integer)
          s -- sign (+/- 1)
        }

Each such sequence corresponds to the (classical) real number: s * \sum_i a_i * 10^{i + e}.

We can go on and define addition, subtraction, multiplication and division in the familiar way.

Problems arise only when we try to establish desireable properties, e.g.

(1/3) * 3 = 1

Does _NOT_ hold here, since 0.9999... is a difference sequence than 1.000....

So yes, you can define these number systems, and you will have 0.999... != 1. But working with them will be pretty awkward, since a lot of familiar arithmetic breaks down.

<comment><USER39> 1 = 0.9... is the consequence of purposely ambiguous and questionable notation. That's an old teachers' trick to make students talk and listen about mathematics.

<comment><USER38> This has nothing to do with notation. It's perfectly possible to define infinite sequences without using dots. In particular if they are constant. In the above case:

        a_i = 9 for i \in \IZ and i < 0
        a_i = 0 for i \in \IZ and i >= 0

Where \IZ are the integers.

</comment></comment></comment><comment><USER40> This is 'more intuitive' if you think about it this way:

If any two real numbers are not equal, then you can take the average and get a third number that is half way between them. Conversely, if the average of two numbers is equal to either of the numbers, then the two numbers are equal. (this isn't a proof, just a way to convince yourself of this)

What's the average of .9999... and 1?

<comment><USER41> 0.999…5 obviously.

<comment><USER42> But at which position that "5" is? Tell the number please.

<comment><USER41> Position 999…, duh.

</comment></comment></comment></comment><comment><USER43> There is a nice characterization of decimal expansions in terms of paths on a graph:

Let C be the countable product of the set with ten elements, i.e. {0, 1, 2, ..., 9}. The space C naturally has the topology of a Cantor set (compact, totally disconnected, etc). Furthermore, for example, in this space the tuples (1, 9, 9, 9, ...) and (2, 0, 0, 0, ...) are distinct elements.

The space C can also be described in terms of a directed graph, where there is a single root with ten outward directed edges, and each child node then has ten outward directed edges, etc. C can be thought of as the space of infinite paths on this graph.

A continuous and surjective map from C to the unit interval [0, 1] can be constructed from a measure on these paths. For any suitable measure, this map is finite-to-one, meaning at most finitely many elements of C are mapped to a single element in the interval. For example there is a map which sends (1, 9, 9, ...) and (2, 0, 0,....) to the element "0.2".

The point is that all decimal expansions of elements of [0, 1] can be described like this, and we can instead think of the unit interval not as being composed of numbers _instrinsically_, but more like some kind of mathematical object that _admits_ decimal expansions. The unit interval itself can be described in other ways mathematically, and is not necessarily tied to being represented as real numbers. Hope this helps someone!

</comment><comment><USER44> Ultimately this is more the definition of R than that it is a theorem. One can also work with sets of numbers in which the completeness axiom does not hold. E.g., sets of numbers in which one also has infinitesimals.

</comment><comment><USER45> And this is why I prefer hyperreals.

0.999... = 1 - 1/∞

We talk about infinity all the time in mathematics, teachers use the concept to introduce calculus in a way that people can more easily understand, but using infinity directly is almost universally banned within classrooms.

Nonstandard analysis is a much more intuitive way of understanding calculus, it's the whole "infinite number of infinitely small pieces" concept, but you're allowed to write it down too.

<comment><USER46> I think what's important here is that if you're making that claim,

0.333... = 1/3 - 1/∞

Which implies 3/∞ = 1/∞

<comment><USER45> Apologies, I should have explained it differently.

0.999... implies a number infinitesimally smaller than 1. You wouldn't use 0.999... in a hyperreal system because you can represent it directly.

I shouldn't have mixed different systems and claimed they're mathematically equivalent, you've proven that doesn't work.

<comment><USER46> Agreed, I think the main lesson from this topic is that decimal numbers are a pain. Stick to integers & symbolic operations. You can spit out a decimal approximation at the end

Computers agree: never trust precision to floats

</comment></comment></comment></comment><comment><USER47> I'll just chime in with my completely ignorant theory that 1 - 0.999... = the infinitely smallest number, but is still, in my mind, regardless of any logic, reason, or educated calculations, greater than 0.

I understand and accept this is wrong. However, somewhere in my brain I still believe it. Sort of like +0 and -0, which are also different in my head.

<comment><USER48> Philosophically you are right.

Mathematically you are wrong.

It is indeed true that if there was an entity that could reason beyond infinity 1-0.999... would be greater than 0.

<comment><USER49> >It is indeed true that if there was an entity that could reason beyond infinity 1-0.999... would be greater than 0.

This seems like a common thread in the comments on this article, and I don't quite understand it.

Humans can reason about infinity just fine. We have a hard time picturing it, but it's overall a pretty simple concept: It never ends.

So there's no such thing as being able to reason "beyond infinity", because beyond infinity doesn't exist. Its very existence is precluded by the definition of infinity.

</comment></comment></comment><comment><USER50> Usually the concept of a limit, which assigns a meaning to 0.999..., isn't studied until calculus.

There are approaches to mathematics that avoid infinite constructions, and a "strict finitist" would not assign 0.999... a meaning.

The stunning success of limit based mathematics makes finitism a fringe philosophy.

Remember, class, for every epsilon there is a delta.

</comment><comment><USER51> Professor N.J. Wildberger is probably among the most well known "ultrafinitist" on YouTube.

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

I mention him because I would think he sympathizes with those who have concern over the meaning of this kind of notation.

<comment><USER52> Wildberger is great. His lectures that he teaches at UNSW (i think) are interesting, and he usually keeps a clear dividing line between std math and his own predilections. It threads the line between being a kook and legitimate published mathematician very finely.

I actually have some sympathies with his contention that real numbers (limit points of infinite series) are somehow a different animal than rational numbers. But it might be easier for me to go there because practically all numbers on computers that we work with are rational, floating point values. On the other hand, it seems like a philosophical distinction in the end because you can fully order them both on a number line.

<comment><USER53> If I give you two representatives of real numbers, say turing machines that write out on their tape the binary digits of those real numbers, in general you will not be able to order them.

<comment><USER52> Certainly not non-computable ones, but presumably they lie somewhere regardless of my inability to do it on a TM. Which presumably gives rise to all the weirdness uncountable infinities give you.

I guess I shouldn't phrase it as "you can fully order it". :D Zermelo's theorem at that point right?

<comment><USER53> Even computable reals do not have computable ordering.

> but presumably they lie somewhere regardless of my inability to do it on a > TM.

Why?

> Zermelo's theorem at that point right?

It is declared by fiat in standard set theory that infinite sets can be well ordered. This is no real mathematical justification. The real justification is social: that it is convenient for mathematicians to not care about the ontology of these nasty infinite objects so long as results are mostly reasonable for objects that mathematicians actually care about. You don't get into too much trouble pretending the reals are nice so long as you don't look too hard.

<comment><USER52> I mean that's Wildberger's whole point isn't it?

<comment><USER53> Yes, I'm just trying to emphasize that there is real serious mathematics behind his point, it's not just a matter of philosophical taste.

</comment></comment></comment></comment></comment></comment></comment><comment><USER54> 0.999...=1 is true in the mathematical sense, period.

However as a representation of physical world, there is a caveat. What we understand is physical world _appears_ and _behaves_ discretely, because at planck scale (approx. 10^-35) the distances seem to behave discretely.

Although common people don't know/ understand planck scale, they do grasp this concept intuitively. What they are really saying is that in physical world there's some small interval (more precisely, about[1 - 10^-35, 1]) which can't be subdivided further, based on our current knowledge.

Same thing applies to planck time (approx. 5 * 10^-43) too.

So people are arguing two different things - the pure maths concept, or the real world interpretation.

</comment><comment><USER55> The thing that helps me "understand" it is that the universe has finite sizes of things like the Planck length for example being a theoretical thing at the smallest distance I would imagine. Now imagine it going smaller than the Planck length (finite) in terms of the difference of .9 repeating and 1 since infinitely small differences can do that. Essentially there is no way to tell the difference between .9 repeating and 1 then from a practical or theoretical perspective of measurement. So not imagining infinity lets us at least imagine smaller than the smallest measurable thing.

<comment><USER49> >The universe has finite sizes of things like the Planck length for example being a theoretical thing at the smallest distance I would imagine

The Planck length might or might not be a physical limit of the universe. We don't have any specific proof that it's the smallest, just that we will not be able to observe any of that size or smaller. To look at something, we need to use light, and we must use a wavelength smaller than the details we wish to resolve. For something of the Planck length or smaller, this ultimately results in a photon that would have more energy in that area than can exist without a black hole forming... so one does, which then prevents us from measuring it, much less anything smaller.

Space and time might very well be discrete and not continuous - certainly the Loop Quantum Gravity folks would agree there. But there are widely supported theories that take both sides.

(I tend to lean towards them being discrete, but I would hesitate to call myself even an amateur hobbyist when it comes to theoretical physics...)

</comment></comment><comment><USER56> I hate to say it but I still don't believe this, it just goes against all intuition that I have, but people much smarter than I have proven it so I take it on faith for doing things like calculus etc just my lizard brain won't let me accept something that looks like less than 1 being 1 the same way that the limit of 1/x as x goes to infinity is zero but it doesn't seem like ti should be. The number gets infinitesimally small but it's still some non-zero number -- I dunno this is probably proving my ignorance it's just what it is.

<comment><USER57> Don't feel too bad.

The notation "0.999..." looks non-threatening, which tricks people into believing that they understand what it means. We could make "0.999... = 1" look scarier by writing it as [n ↦ 1 - 10^(-n)] = [n ↦ 1], where [n ↦ a_n] denotes the equivalence class of a Cauchy sequence of rational numbers. These statements mean the same thing, but with the scarier notation much fewer people would mistakenly believe that they understand what it says.

I would expect mathematics majors to learn what 0.999... means during their undergraduate university courses. But then there's still the question of why mathematicians chose to define it that way. To really understand that, you need to be able to come up with alternative definitions and to investigate the consequences of those definitions. And for most undergraduates, it might still take a few years to build that level of mathematical maturity.

For anyone who is not a math major, I certainly don't want to discourage any curiosity about this subject. Just don't be discouraged if you feel you can't fully understand what's going on. Understanding what 0.999... means and why mathematicians chose to define it that way is quite subtle.

<comment><USER56> Thank you. I had totally expected to get dunked on and find your empathy refreshing.

I'll keep trying to understand it.

<comment><USER56> It has to do with infinities (infinite sums) which might explain why it's so interesting

</comment></comment></comment></comment><comment><USER58> I think if you're trying to "prove" this using axioms, you've already lost.

The problem isn't that you can't come up with axioms to convince people you have a proof - the problem is with people not understanding that 0.99999.... is not a number - it's _one_ representation of an abstract entity called a number.

The problem is, the maths required to actually define the concept of a number is fairly complicated, so it's hard to explain to someone _why_ all of these axioms make sense in the first place.

</comment><comment><USER59> Can someone help me out here with least upper bounds?

Generally the proofs of .9...=1 rely on the fact there is no number that exists that can be between .9.. and 1 and therefore .9... is equal to 1.

.9... is the least upper bounds of the set. My question is if .9... was removed from the set what would be the new least upper bounds. Another way of asking the question is if we define it in this context doesn't any set bounded by a real number have a least upper bounds and aren't all real numbers equal to each other?

Thanks!

</comment><comment><USER60> I think this is a notation and definition problem. To me, it behaves differently in `Y = 1 / X`, which distinguishes quite strongly between `X = 1 - 0.9999` and `X = 0.9999 - 1`! If 0.9999 ought be exactly equivalent to 1.0, there ought to be no difference between `1 / (1 - 0.9999)` and `1 / (0.9999 - 1)`.

To me, 0.9999 indicates a directional limit, which can't necessarily be evaluated and substituted separately from its context.

<comment><USER61> Luckily your taste doesn't factor into whether it's true or not :-)

</comment></comment><comment><USER62> I'm actually curious what impact it would have on various proofs if 0.999... wasn't accepted as 1.

What gets broken? What consequences do we hit?

<comment><USER41> Arithmetic breaks, as multiplication is no longer the inverse of division. (For example, 1/3 * 3 = 0.999… would no longer work.)

<comment><USER63> why?

1/3 * 3 could still be equal to one. but 1/3 != 0.33333... that is, 1/3 is not representable in base 10. Which makes way more sense.

I wonder if taking 0.9999.. != 1, that is 0.0000...1 exists would allow us to reslove, the fact that some possible events have probability 0?

<comment><USER64> The crux of the matter is that you have to define what things like "0.3333..." mean in the first place. Any reasonable definition of it as a representation of a real number is going to lead to it being equal to 1/3.

If you want to redefine it explicitly as _not_ a real number, you can do that, and maybe even get to some amusing math that way, but you're no longer talking the same language as the rest of the world.

<comment><USER63> >"but you're no longer talking the same language as the rest of the world"

yes, in the standard real numbers 1 = 0.999.., but people have dealt with numbers like "pi" and "sqrt(2)" before the standard real numbers were defined.

Hence the question, if we define such a system such as 0.333... != 1/3\. what are the consequences?

by 0.3333... I mean a countably infinite sequence of 3s.

<comment><USER64> I think an important distinction is that in those "old days", people were largely working in what we now know to be _subsets_ of real numbers, and the same conclusion applies there.

If you want to go to _supersets_ of real numbers, you may be interested in [https://en.wikipedia.org/wiki/Surreal_number](https://en.wikipedia.org/wiki/Surreal_number)

</comment></comment></comment></comment></comment></comment><comment> j-pb I'm not a mathematician, but I would guess that the Surreal numbers developed by John Conway, do contain values that start with an infinite sequence of 0.9_ but "end" with something that makes them != 1.

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

</comment><comment><USER65> What if you have 0.9̅4? Can we say 0.9̅5 > 0.9̅4 > 0.9̅3? More on what happens if you allow this: [https://mathwithbaddrawings.com/2013/08/13/the-kaufman- decim...](https://mathwithbaddrawings.com/2013/08/13/the-kaufman-decimals/)

<comment><USER49> >What if you have 0.9̅4?

Well, you fundamentally can't. If the 9s go on for forever then you never reach a point where you can add the 4. The definition of infinity precludes anything after infinity, because it never ends so you can never get there.

<comment><USER66> That is, until Cantor showed otherwise

<comment><USER49> Are you saying that Cantor showed you can have 0.9..4?

I'm not even remotely an expert here, so I might certainly be wrong, but I don't understand how Cantor's theorems show an ability to stick a finite number and stop on the end of an infinite number.

<comment><USER66> Yes, one thing Cantor showed is that it is somehow meaningful to define numbers like infinity+1, where there are an ordered infinity of elements followed by one more element. Sets like this are called ordinals

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

So you could, if you like, define 0.9...4 to be a bunch of digits indexed by the ordinal ω+1. However the thing you have now defined isn't really a representation of a real number any more, unless you just ignore all the bits after the ... I guess.

<comment><USER49> Huh, interesting. Looks like I've got some more reading to do.

Thank you!

</comment></comment></comment></comment></comment></comment><comment><USER67> A dumb consequence of the axiom of choice? The reals are like a membrane with no atomic pieces. You can move in either direction infinitely and you can zoom in infinitely without reaching any "Planck unit" so to speak. So what does it even mean to pick out a "real number"? To me anything built on this concept is nonsense.

</comment><comment><USER68> Sorry for my naivety, but why one couldn't prove by induction that adding 9s never close the gap, or let's say, that by definition the operation is such, that it never closes the gap. If you can always halve the pie, then you can continue eating forever. To me it would be much easier to accept that (1/3)*3 is not 1.

<comment><USER69> Other people have pointed out that induction never makes the jump from a finite number of 9s to an infinite number of 9s.

I feel the easiest "proof" is a proof by contradiction.

First hopefully we can agree that if we have two real numbers x and y that are not equal then we have a number z, such that x < z < y. The easiest example is z = (x + y)/2.

If 0.999...!= 1 then there must exist a number A, such that 0.999... < A < 1.

Now since 0 < A < 1 (as 0 < 0.999...) it should be easy to see that A's decimal expansion is of the form 0.abcdef... . Since, A != 0.999... one of the digits in the decimal expansion of A has to be something other than a 9.

For instance, we might have A = 0.99998999... .

However, this would mean A < 0.999... as all digits other than 9 are smaller than 9 [1], but this contradicts our initial assumption that 0.999... < A and since we're dealing with strict inequalities both can't be true at the same time! Thus no such A should exists and thus 0.999... = 1.

Now this isn't a rigorous proof, the thing that makes me most uncomfortable is the bit that I state A < 0.999..., but I'm uncomfortable because A might have multiple decimal expansions and I don't know how the algorithm in [1] interacts with that, however, if someone quibbles about that bit of the proof for that reason I feel they should have already accepted that 0.999... = 1 via another rigorous proof.

[1] If this is not clear think about how you would compare two decimal expansions to see if one is smaller than the other. You go through every digit until you find one that is different between the two numbers and then you compare those.

<comment><USER68> "If 0.999...!= 1 then there must exist a number A, such that 0.999... < A < 1."

Thanks for the reply, but I don't know how you can make the above claim, because to me the question of what we mean by 0.999... is intertwined with the claim itself. I mean to me it seems to be a matter of how you interpret the approach to infinity. I don't see why there has to be A in between, if you interpret 0.999... as the "biggest possible number below 1", as then there would be also a "difference of the smallest possible amount" between those numbers approaching 0, but not quite getting there. But then again, if it's by some fundamental definition (limit) that 0.999... = 1, then ok.

I'm slightly embarrassed I don't know more mathematics, but I'm trying to learn some more...

<comment><USER69> That statement is based on:

> First hopefully we can agree that if we have two real numbers x and y that > are not equal then we have a number z, such that x < z < y. The easiest > example is z = (x + y)/2.

It's one of the properties of the reals and rationals that if two numbers aren't equal, then there are infinitely many numbers between them. It doesn't work with the integers, 2 and 3 aren't equal, but there's no integer x, such that 2 < x < 3.

So if we say 0.999... != 1 then that means 0.999... < 1 and then that means (0.999... + 1) / 2 is a number different from 1 and different 0.999... but that lies between them.

But this is modern mathematics. In the past mathematicians dealt with "infinitesimals", especially in the early days of calculus, but I think they were discarded because they were confusing and also not necessary in favor of limits. This is where I think where some of your confusion is coming from. Infinitesimals don't exist in the real (and therefore rational) number space, but the concept exists for other "weirder" number systems.

According to the wikipedia page "This repeating decimal represents the smallest number no less than every decimal number in the sequence (0.9, 0.99, 0.999, ...)"

The clearest resolution to "if you interpret 0.999... as the "biggest possible number below 1"" is that in the reals and rational this concept doesn't exist. There's no biggest number smaller than x and ditto for smallest number bigger than y. (The distinction from the wikipedia definition is the difference between < and <=, <= exists, but < doesn't)

It's similar to saying you can't divide by 0. Sure in some cases you can define it, but doing so causes many issues and costs you so much that it's not worth it.[1] Another example is 1 not being prime, there's no reason for it not to be prime, but it's just much more convenient to say arbitrarily that it's not prime.[2]

The other thing that might confuse you is a proof by contradiction, I know it certainly confused me the first few times I saw it. I'm happy to help you if this is tripping you up too.

> I'm slightly embarrassed I don't know more mathematics, but I'm trying to > learn some more...

No problem, we all start knowing nothing :)

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

<comment><USER68> Thanks :). I think the resolution to my problem is moving away from infinitesimals. I did learn some calculus, linear algebra, number theory etc. in university, but I did it quite superficially, since it didn't feel that relevant to me at that time. Now I feel different.

</comment></comment></comment></comment></comment><comment><USER70> Is 1 a prime number? No, because we define it not to be. Why do we define it not to be a prime number? That's the real question.

Is 0.999... = 1? Yes, because we define decimal numbers to behave that way. Why do we define them to behave that way? That's the real question.

</comment><comment><USER71> The best way to think about it is that 1 - 0.999... = 0.000...

The result of 1 minus 0.999... is 0.000 with zeroes that go to infinity. And I think its easier to reason that 0.000 with repeating zeroes forever is in fact equal to zero.

</comment><comment><USER72> This can be solved by using base 12 rather than base 10 to do the calculation...

<comment><USER73> Firm believer that adopting base 12 would have had a ripple affect on society, preventing many trials tribulations and wars. Pity we only have base 10 and donald trump

<comment><USER52> base 12? Them are fighting words...I call WAR!

<comment><USER73> We haven't even started the Pi Tau argument yet

</comment></comment></comment></comment><comment><USER74> Yes it does but it seems like a less correct way of writing it. Like you could represent the number 10 as 10/1 (ten over one) but why would you? Why would you represent 1 as .9 repeated?

</comment><comment><USER75> Basically an infinite series of 9's just means they're all maxed so the .999... = 1 makes sense to me (kind of anyway).

</comment><comment><USER76> # on Python (3.7.4) 1 == 0.99999999999999994448884876874217297882 # but 1 != 0.99999999999999994448884876874217297881

<comment><USER77> Or any other language using IEEE 754 64 bit floats

<comment><USER76> I see... Nice!

</comment></comment></comment><comment><USER78> Perhaps the natural discomfort many face when confronted by this challenging formulation instead indicates that a limitation of the real number system has been perceived? I would encourage those who have this reaction to study hyperreal and other alternative systems as mentioned in the article. If this clicks for them they may help lead us in new direction mathematically and advance the state of the art.

<comment><USER79> This comes from the fact that most people don't learn limits. Once the definition of the decimal representation is understood to be in terms of a limiting process, the meaning becomes clear.

For most purposes hyperreals are too much machinery when learning and manipulating limits would be simpler.

</comment></comment><comment><USER80> Why do we accept .999... as a valid notation. Why not only allow 1 to denote this concept?

<comment><USER61> > Why do we accept .999... as a valid notation. Why not only allow 1 to denote > this concept?

That would be adding a special rule for purely cosmetic reasons. It's typically not done in mathematics, where concise rules are usually more cherished than special-casing things.

</comment></comment><comment><USER81> I'd have figured "approaches 1 from the left" would be more accurate.

</comment><comment><USER82> So is then '0.(0...)1 = 0'?

</comment><comment><USER83> So 99.999..% of the speed of light is just the speed of light?

<comment><USER49> Yes.

How much faster than 99.999..% the speed of light would you need to go to get as fast as the speed of light?

If your answer is 0.00..1% the speed of light, this answer is nonsensical because infinity never ends, and you never ever have the ability to add that 1 at the end. So, the only answer can be 0.00.., and 0.00.. = 0, so 99.99.. has to = 1.

<comment><USER83> Hmm, This reminds me a lot like Zenos paradox.

Also, I'd like to understand how if we can say 99.999... is = 100, wouldn't we also be able to say 99.9999888999... = 99.9999..., and therefore also just 100? And so on?

<comment><USER61> > Also, I'd like to understand how if we can say 99.999... is = 100, wouldn't > we also be able to say 99.9999888999... = 99.9999..., and therefore also > just 100? And so on?

You've just introduced a novel symbol into the discussion. What is the definition of 99.9999888999...? Before anyone can answer what it equals, you must _define_ it. Recall that if the digits repeat, we already have a definition, so that case is fine. Your case is not à priori well-defined.

</comment></comment></comment></comment><comment><USER84> Given infinity that doesn't make sense.

</comment><comment><USER85> What is the largest number smaller than 1?

<comment><USER86> 0, if we're talking natural numbers or integers. There isn't one if we're talking real numbers. Simple proof:

Assume x is the largest number smaller than 1.

(x + 1)/2 is a number larger than x but smaller than 1. Our assumption that x is the largest number smaller than 1 must be wrong. QED.

</comment></comment><comment><USER87> How about the expression:

        0.9999... < 1

And consider that if a < b then a != b.

<comment><USER88> Both are false. 0.99999... is not less than 1. It is the same as 1.

<comment><USER87> Yes, because someone defined it that way.

It is because the "limit" in

        0.999... = lim[eps->0] 1-eps

is implicit and defined as being applied before anything else. But you might as well define that implicit limit as applying over the entire expression.

UPDATE: So instead of interpreting the expression as:

        (lim[eps->0] 1-eps) < 1

which is indeed false, you can also interpret the expression as:

        lim[eps->0] ((1-eps) < 1)

which is true (assuming that -> denotes a limit from above). Note that here the "lim" has been taken out and acts over the entire expression.

<comment><USER61> > which is indeed false, you can also interpret the expression as: > > lim[eps->0] ((1-eps) < 1)

Assuming you don't mean some special notion of limit, I would guess that by `(1-eps) < 1` you mean the function from the reals to `Y = {false, true}` that is defined as sending `x` to `true` if `1-x` is strictly less than `1`, and `false` otherwise. Let's call this function `f`. I assume you're endowing `Y` with the discrete metric?

If so, `f` does indeed have a limit _from above_ that is `false` and a limit _from below_ that is `true`. Where do you wanna go from here?

 __Edit: __Corrected stupid wrong assertion about limit from below, d 'oh.

<comment><USER87> Have a look here:

[https://www.wolframalpha.com/input/?i=Limit%5BSign%5B1-x-1%5...](https://www.wolframalpha.com/input/?i=Limit%5BSign%5B1-x-1%5D%2C+x-%3E0%5D)

This shows that the limit does exist from both sides (but is different from both sides).

<comment><USER61> Oops, sorry, that was a stupid blunder. Thanks for the correction.

</comment></comment></comment></comment></comment></comment><comment><USER89> "In other words, "0.999..." and "1" represent the same number." \- Ok, I'm done with this world.

</comment><comment><USER90> I don't think that 0.999... = 1 is actually provable. I think this and all of calculus is actually axiomatic, which has the following axiom:

Given ε = 1/∞ then: ε = 0

Am I wrong in thinking this way? It seems as though there's no way to actually truly prove that an infinite series converging towards zero actually hits zero (from a constructivist pov)

<comment><USER91> That's not an axiom we take; the study of real numbers takes some algebraic and order axioms, and a completeness axiom:

Any non-empty set of real numbers with an upper bound has a least upper bound.

We can't prove your statement

 _Given ε = 1 /∞ then: ε = 0_

because it is not well-defined, but we can prove this:

If ε ≥ 0 and, for every natural number n, ε < 1/n, the n ε = 0.

For suppose there exists an ε which is a counter-example, i.e. ε > 0 and ε < 1/n for every natural number n. Then the set

S = { x : x a real number, x > 0 and x < 1/n for every natural n},

is non-empty, and has an upper bound (e.g. 1). So it has a least upper bound, say y. In particular, y is an upper bound, so 2y is not in S. It is > 0, so there must exist a natural number N for which 2y >= 1/N. But then y/2 > 1/4N, and 4N is also a natural number. So for any element x of S, x < 1/4N < y/2; thus y/2 is an upper bound which is less than y.

This is a contradiction, so the claim is proved.

<comment><USER90> Why is your proof for every natural number n and not infinity (ω)? also isn't the law of excluded middle axiomatic?

</comment></comment></comment><comment><USER92> Reminds me of the paradoxes of Zeno [1], especially the paradox of Achilles and the tortoise.

At least one can simply prove that 0.999... = 1 without much hard work. Maybe less controversial than the following:

        1 + 2 + 3 + ... [somehow] = -1/12 {{Riemann's zeta(-1)?}}
        1 + 2 + 4 + 8 + 16 + ... [somehow] = -1

As well as the weird prime product (Product of 1/(1-(p^-2)) for p prime) and the sum of x^-2 from x=1 to [ _sigh_ ] being equal to (pi^2)/6 are some example of infinite beauty of mathematics that I remember.

[1]: [https://en.wikipedia.org/wiki/Zeno's_paradoxes](https://en.wikipedia.org/wiki/Zeno's_paradoxes)

<comment><USER93> Your two examples can be debunked though.

See here: [https://www.youtube.com/watch?v=YuIIjLr6vUA](https://www.youtube.com/watch?v=YuIIjLr6vUA)

<comment><USER92> ah, Mathologer video.

Have seen that.

Another one by 3b1b on that topic: [https://youtube.com/watch?v=sD0NjbwqlYw](https://youtube.com/watch?v=sD0NjbwqlYw)

</comment></comment></comment><comment><USER94> > ...infinitely many 9s...

How about we prove that an infinite number of 9s is impossible?

Assume that we have a finite number of 9s. Add a 9. The result is not infinite. Add another 9. The result is still not infinite. We can repeat this process for an infinite amount of time and still not have an infinite number of nines.

Any process that can not be completed in a finite amount of time can not complete and can not have a valid result based on that completion. Any process that can not be completed in an infinite amount of time is also bogus, but is in a sense even more bogus.

Added: Note that this is different than the case where we are asked to contemplate infinity with respect to continuous functions. By defining the number of 9s as a discrete (integer) value it opens things up to a discrete argument. These pointless navel gazing exercises always end up as a war of what everyone things things are defined as.

<comment><USER95> I tried this route as a counter to Cantor's diagonal argument, and got chastised by my then professor. I hope you have better luck, as I was never able to convince myself otherwise.

<comment><USER94> By that point you were already working in a universe where infinity was in some sense real. The universe of mathematics is different than the universe we live in.</comment></comment></comment>


Never call a friend again having no clue it's his birthday - <AUTHOR> http://play.google.com/store/apps/details?id=com.outwalk.android.bytnotestrial

<comment><USER2> HTC Sense UI has this feature built into it.

<comment><AUTHOR> Does it notify you before making a call or receiving one ?

<comment><USER2> Yup</comment></comment></comment>


How Three Guys Rebuilt the Foundation of Facebook - <AUTHOR> http://www.wired.com/wiredenterprise/2013/06/facebook-hhvm-saga/all/ <comment><USER2> "Certainly, Facebook has stuck with PHP in large part because it would be an even bigger task to rewrite the entire site in another language. It's called The Legacy Problem. "Eventually, you get to a size where it's not feasible to rewrite it all," says Paroksi."

They're not going to rewrite all of the PHP code to some other language, but they've effectively got a shim in there in the form of the HHVM. They _could_ introduce new aspects to the language via their VM, giving new ways to solve problems with new code/extensions but without sacrificing backwards compatibility. I will not be surprised if this evolves from Facebook in the next few years. What they produce may never leave Facebook's internal users (beyond what the HHVM exposes in its open source incarnation) but it may end up being a necessary way forward.

</comment><comment><USER3> I always wondered why they don't do a more traditional web services-style rewrite. Break the site up into a smaller and smaller services first, then start rewriting individual services in Java or C++ or whatever. Pound away at it for a while, and eventually you'll have the whole site rewritten and refactored in a much more maintainable way.

<comment><USER4> "We do these things not because they are easy, but because they are hard" -John F. Kennedy</comment></comment>


Oumuamua - <AUTHOR> https://en.wikipedia.org/wiki/%CA%BBOumuamua <comment><USER2> One hundred years from religions will be started over this bugger.

</comment><comment><USER3> "Nothing further learned about object that has not been seen since long before last report."</comment>


Show HN: Generating scalable, styleable and lightweight web screenshots with SVG - <AUTHOR> https://www.checkbot.io/article/web-page-screenshots-with-svg/? <comment><USER2> Okay, so how can you automate this workflow?

How can we use it on the desktop, instead of PNGs?

<comment><AUTHOR> For web pages, you could use Puppeteer (headless Chrome) to save to PDF, then convert the PDF to SVG. You'd need to do some coding to set the screenshot up first so it's posed the way you want though e.g. hide elements you don't need to show and replace text/numbers with mock content.

The screenshot I'm using here for a landing page isn't going to be generated often enough that it's worth automating.</comment></comment>


The Best Thing That Can Happen to Electric Cars Is What Happened to 1990s PCs - <AUTHOR> http://jalopnik.com/the-best-thing-that-can-happen-to-electric-cars-is-what-1795506063 <comment><USER2> This is the worst of the technological glibness from "car guys."

Modern cars are incredibly sophisticated devices with many different computer systems running a lot of code. They all run real time OSes, which are quite distinct from an operating system like Windows. They have to do their functions correctly 100% of the time. Now cars are getting tons and tons of sensors. RADAR, LIDAR, visual cameras, etc., all running sophisticated algorithms.

There are massive safety reasons (not just to yourself, but to your fellow man) to not tinkering with these systems.

I know a lot of car guys lament that it's harder to work on a car today, but your average consumer is delighted by this. Cars are much more reliable today than they were before. Most people don't want the freedom to work on a car that constantly needs to be worked on because it is always breaking. They want something that is reliable and with minimal maintenance just works every single day.

Cars are also much safer, with much more robust safety technology. I'm a fan of Jalopnik, and I like to stay up on the latest in car technology, but my interest is from an average user standpoint.

Electric cars with self-driving technology is really exciting. I'm excited for this future. I'm going to support it. I don't need a car to tinker with for my everyday needs, nor do the vast majority of people. If I want a car to tinker with, I'll get a project car for track use.

<comment><USER3> _I know a lot of car guys lament that it 's harder to work on a car today, but your average consumer is delighted by this._

Right. I restore antique Teletype machines from the 1930s and 1940s as a hobby. Those are totally maintainable. Everything is attached with screws and locknuts, and you can remove and replace any part. There's a 200 page manual of adjustments. They require annual oiling with over 500 oiling points. Most take one drop of oil, but there are several oil fill points. In heavy use, there's an annual cleaning, which involves partial disassembly and a soak in a cleaning bath in a repair shop. I've restored five of these machines to full operation. Some are almost a century old.

(Plug: some of those machines will be at the Clockwork Alchemy Steampunk Convention, at the Doubletree Hotel in San Jose CA, tomorrow through Sunday.)

Imagine trying to sell a printer today that required regular oiling. That would not be acceptable, even if it increased the life of the printer by a factor of 5.

Teletype Corporation recognized this with the Teletype Model 33, the yellow plastic thing that powered 1970s minicomputers. Those were rated for one year of continuous operation un-oiled, three years if regularly oiled. Few people oiled them. They wore out much faster than the older heavy-duty machines. Today, it's easier to restore a Model 15 Teletype from 1930 than a Model 33 from 1970. The 33 will have worn out parts, some plastic. The Model 15 won't; it's all hardened steel and cast iron.

There are heavy trucks built that way, but cars? No.

<comment><USER4> As an aside--do you enjoy the oiling process? A little bit here or there could be a fun maintenance task. 500+? That just sounds tedious and not really fun for a hobby...

<comment><USER5> I'd recommend a read of The Practicing Mind to see how it might be different.

A tedious task can easily be therapeutic if you go in with a "beginner's mind". It's kind of meditative, being present in the moment through the whole task.

<comment><USER4> Thanks for the recommendation--this is actually something I've wanted to learn more about as I struggle to get past the early stages of learning guitar.

</comment></comment></comment></comment></comment><comment><USER6> From the article: "I want a future where someone can go to a junkyard and yank a motor from a Tesla Model H (you know, the one with the T-top) and plan to pop it into their Reatta EV knowing that the connections will fit. "

Good luck with that, and it has nothing to do with safety since even safety can be standardized: there are no chances one can stick a HP cartridge into an Epson printer; cars are no different. The tap based economics we live in is based exactly on the opposite: find a potential source of revenue, then once you have got/patented/bought it, close it behind a faucet and start asking money to open it. Openness would destroy that practice, and the legal system in every "western" country fights to enforce this exact behaviour. Also, being called a communist after decades of well crafted negative propaganda doesn't help.

<comment><USER3> _" I want a future where someone can go to a junkyard and yank a motor from a Tesla Model H (you know, the one with the T-top) and plan to pop it into their Reatta EV knowing that the connections will fit."_

There's no market for that capability in cars. Some heavy trucks do have it; you can buy some heavy trucks and put in a Cummins or Caterpillar Diesel engine. But for smaller cars, it's not worth the headaches.

Powertrain switches are not impossible. A routine student exercise in serious automotive schools is to put an engine and transmission from one car into another car, making the necessary parts. Stanford and Renovo put an electric powertrain into a DeLorean and made it capable of autonomous drifting.[1]

Even in PCs, there's no market for that. 80% of desktop PCs are never opened during their operating life, and the fraction for laptops is probably lower.

[1] [https://www.youtube.com/watch?v=WNIDcT0Zdj4](https://www.youtube.com/watch?v=WNIDcT0Zdj4)

</comment></comment><comment><USER7> The comments here seem pretty anti-build-your-own. I really hope people don't start legislating that you can't build your own car. I build personal electric vehicles now, and I have aspirations of building a car.

I hope legislators don't derail me.

</comment><comment><USER8> Safety, risk of losing lives, is a factor missing from the constraints imposed on PC manufacturers. Safety may play a larger role as an obstacle on this idea getting real traction.

<comment><USER9> I don't see how designing cars in such a way that, say, batteries are interchangeable would compromise safety.

<comment><USER10> The problem is that far too many people don't do product research beyond "Does it fit?".

I've seen a good amount of destroyed audio equipment resulting from the owner failing to do compatibility research beyond verifying that two components could be connected together. "What's an ohm? Do I need one of those?"

I've seen people get the most baffled faces from not being able to pass a high bandwidth signal through the hundreds of feet of hilariously thin uncertified HDMI cable that they just ran through their walls. "But the box said high speed!"

Interchangeable batteries in cars would mean that drivers are only one el cheapo Amazon third party generic out-of-spec "compatible" battery away from stopping at a red light next to a moving bomb.

<comment><USER9> I don't see how this is any different from now when any yahoo can buy car parts from wherever and try installing them.

<comment><USER10> I suppose it depends on how easy it is to change.

When I read "interchangeable batteries" I imagine a pretty simple procedure: open hatch, pop out old battery, put in new battery, close hatch.

When I read "install car parts" I imagine a procedure at least an order of magnitude more difficult requiring knowledge and experience working on automobiles.

Changing batteries is a task nearly all people have done at least once by the time they start driving. If changing the batteries in your car is as easy as changing the AAs in your Game Boy then I imagine many people would be willing to do it without thinking twice.

<comment><USER9> If it is truly that simple then I think the risk of screwing it up is also considerably less.

I mean, you know, it's not the same size and doesn't serve the same purpose, but today people's cars have batteries in them and you can walk into Sears and buy one. I assume the battery for an EV is huge and not conveniently located though.

</comment></comment></comment></comment></comment></comment><comment><USER11> Does anyone have any history on what motivated the industry to commoditize PC hardware? The current trend is in the opposite direction, with apple going back to proprietary components and the mobile phone/tablet market is moving further and further from user serviceable designs. Unless there's some economic driver (being able to source from more suppliers?) I don't see this happening.

<comment><USER12> I don't understand your question. The original IBM PC was built using as many commercial, off-the-shelf parts as possible in order to shorten time-to- market. The hardware was commoditized from day one, by design.

<comment><USER11> I'm asking how commoditized hardware come to be over earlier computers with non COTS parts.

If this is the first modular computer, why was all that hardware on the shelves in the first place?

<comment><USER13> It wasn't the first modular computer. The big thing with the IBM PC is that IBM didn't manage to have a single significant component that they licensed exclusively; the most obvious culprit for this was DOS, which they licensed from Microsoft. Other companies at the time had OSes they controlled the distribution of. But Microsoft was able and very willing to sell any company the rights to distribute DOS.

<comment><USER14> Well, there was the custom BIOS that they owned outright. This was enough until it was "clean room" cloned.

</comment></comment></comment></comment></comment><comment><USER15> I'm kinda-sorta excited by the author's idea, but there are (at least) three major differences facing a would-be do-it-yourselfer between an automobile and a 1990s-era PC that should temper his optimism:

1\. For many people, their automobile is their primary mode of transportation. Tinkering with it and potentially making it unavailable for use is not something many will risk.

2\. There is a clear difference in tooling requirements between popping in a shiny 14.4k model (90s era, after all) and swapping out a piece of drive train.

3\. Component cost

<comment><USER16> > 2\. There is a clear difference in tooling requirements between popping in a > shiny 14.4k model (90s era, after all) and swapping out a piece of drive > train.

You'd be surprised at how easy it is to swap out weird and wonderful drivetrain parts [0]. People put water-cooled drivetrains into vehicles that were originally air-cooled. People put GM V8s into foreign cars that only ever had small V6s or inline 6s.

There's a burgeoning industry in creating swap kits for putting EV drivetrains into cars as well [1]. It's mostly settling on standardized components.

[0] [http://www.engineswapdepot.com/](http://www.engineswapdepot.com/) [1] [http://www.evwest.com/catalog/index.php?cPath=40](http://www.evwest.com/catalog/index.php?cPath=40)

<comment><USER17> Putting a chevy V8 into a V12 Jaguar was a common way to "fix" it.

<comment><USER18> The company that pioneered the swap was named 'Jags That Run'.

</comment></comment></comment></comment><comment><USER19> At least the charging ports are standardized, somewhat.

Remember when car stereos used to be a standard size (DIN chassis), and you could easily swap in new hardware? That went away with the advent of nav systems.

Stuff is now too intertwined to be standardized.

<comment><USER20> At least around here, that went away because thieves wouldn't go after non- standard stereos, so people wanted the non-standard ones.

</comment></comment><comment><USER21> It's a nice dream but I'd probably look to what's been happening in the Cell Phone/Laptop space instead.

Weight and therefore efficiency is at a premium for EVs so deep vertical integration will probably be preferred method of assembly.

</comment><comment><USER4> This article seems to start with what may end up being a false assumption. Namely that we will own cars as individuals vs. renting them from a subscription service.

We see where Tesla is going with that, and I guarantee others are considering the same approach. And to a degree, it makes some sense. Of course "owning a car" is a concept that is deeply engrained in American culture and society. So those who grew up with that will likely lament or fight its loss. Even people like myself who understand the massive benefits to the environment, safety, traffic, economy etc. will still miss the feel of driving down a windy mountain road.

But those who will grow up in a world of self-driving cars? They largely won't care. That time will be freed up for being on their mobile devices, chatting with friends, sleeping, or doing whatever else it is they would do with that time back.

Depending on how our economy goes, it could also make less and less sense to own as has been the trend for a bit now. If you live in a dense urban area, there's a decent chance today that you already decided to forego owning a car in favor of public transit, car sharing services, or ride sharing like Uber/Lyft because of the costs.

So in a world where reliable, well-paying employment is harder to come by, and cost of living increases are outpacing wage increases, owning a car might just not be as much of a necessity.

That of course brings its own set of issues when everything becomes a subscription or on-demand services with regards to lock-in, privacy, monopolies, etc., but that's another debate.

<comment><USER9> A network of rental self-driving cars? Isn't this just a more wasteful version of buses?

<comment><USER22> No. Unless the bus in your town picks you up wherever you are and takes you directly where you want to go.

<comment><USER9> It seems like it would be way less wasteful for these cars to take you to a hub and then you ride a bus then just having them operate a car the whole way through. I mean, hell, put privacy booths in the bus if you want.

<comment><USER22> It would be even less wasteful if you walked.

<comment><USER9> But the idea of tying this vast new infrastructure to some sort of public transportation doesn't really decrease the efficiency of travel all that much.

</comment></comment></comment></comment></comment></comment><comment><USER23> There are parallels with what has happened with Kit Cars since The Fuel Crisis, at least. You could build one today with plans from a Popular Mechanics if inclined.

What we have today with tech advancents, build-out of infrastructure and acceptance of the technology seems to have little impact on that "kit" approach.

I think a better analogy might be the Pre-War Automobile Coach-builder. The body was made by a different company than the drive train. Economies of scale and the demand for cars changed that.

A new class of Automobile could arise if a company could farm styling out to a famous house; Ghia for example, build a body from that design, and have an opportunity to provide interior fitment and design to the degree of Bentley and Rolls Royce, or down-spectrum toward Kia and Suzuki.

In any case, we're likely to see eddies like Water-cooled, UV-reactive power converters and fiberglass monstrosities as seen at a 1970's Autorama.

</comment><comment><USER24> Nice concept, BUT, when cars fail, people are hurt and/or lose jobs because they can't reliably make it to work.

Cars are two orders of magnitude more expensive than PCs, and are not surfing Moore's law.

<comment><USER9> I'm not sure I see why interchangeable parts talking to each other using a standard interface means "unsafe."

</comment></comment><comment><USER25> People have in some ways been talking about this for quite some time. I think I remember reading something about having hot swappable batteries about a decade ago. This way you drive up to a station, it lifts your vehicle into the air, robots swap out your battery with another, fully charged one, and you're off again.

I can't image Tesla, GM or anyone else getting on board with the idea though. Much less extending it to include other parts.

<comment><USER26> The issue I think is that battery packs are designed as stressed members of the unibody to save space and weight, so they can't be made universal without compromising on capacity and weight. With frequent replacement you'd run into problems with fasteners and threads and liability issues in case of incorrect assembly.

<comment><USER9> > liability issues in case of incorrect assembly

How is this different from a car today? If you go to replace the brakes and you do it wrong it would be unsafe too.

<comment><USER26> Generally, you only do brake-jobs one every some 10s of thousands of miles, while battery replacements would be not only more often but also performed at "charging stations" that would probably employ less skilled persons ("It's only 20 bolts")

<comment><USER9> I don't know that battery replacements would be that frequent, nor do I think gas station mechanics are unheard of now.

</comment></comment></comment></comment></comment><comment><USER27> This isn't a bad idea. Beyond the concerns raised by other commenters, building a personal car from commodity components may not happen because we'll no longer own cars, but instead subscribe to a transportation service.

The cost of which might depend heavily upon the cost and serviceability of the service provider's fleet.

If your market doesn't mind riding around in automotive version of a no-name PC, the Lego approach might work very well.

</comment><comment><USER28> > it's already being realized that electric drivetrains are becoming something > of a commodity, and not the huge differentiator that drivetrains are in ICE > cars

There's a big difference between the drivetrain in a Tesla and a Leaf.

Even if there weren't, I don't agree with the premise. The basic ICE engine and drivetrain in a car is not a differentiator either, at least as far as normal "family" cars are concerned.

</comment><comment><USER29> I should also mention highway guardrails, where incompatiblity can harm people: [http://kdvr.com/2016/11/22/colorado-inspecting-every- guardra...](http://kdvr.com/2016/11/22/colorado-inspecting-every-guardrail- system-for-installation-errors/)

</comment><comment><USER9> It'd be cool but what's the incentive for any of the manufacturers to do this?

<comment><USER30> AFAICT, the car makers outsource most of their components to companies like Bosch, Denso, Magna & Delphi. Standardization would allow car makers to avoid single-supplier lock-in. Standardization would allow parts makers to expand their markets.

<comment><USER31> For what is' worth, I get a feeling part makers, the big ones, are content with the market as it is. They are horribly inefficiend and morally outdated and still make heaps and heaps of money.

<comment><USER32> I don't think any part of that last sentence is true...

<comment><USER9> I feel like _somebody_ is making money from crazy expensive OEM parts.

<comment><USER32> Making money? Yes. Making heaps and heaps of money? Probably not.

Expensive parts are usually expensive for a good reason. Typical reasons are: time consuming to build; tiny market, so costs are spread over a small number of orders; materials are expensive and cost of mistakes is high; overhead is high because of the loans on expensive machinery and supplies & power to keep them running; combinations of the above!

Having talked to people in the automotive supply industry, it's a low-margin, cutthroat way to make money. Not a whole lot of people getting rich making auto parts. At least not in the lower tiers.

<comment><USER31> Maybe it was an exaggeration from my part with the heaps of money. I don't do budgets, I write software, but I've seen the price the parts we're building come with and I have an ideea what it's worth. I just feel that the way they approach the problem is very inefficient, they could do things better cheaper, more reliable if they had a better approach, but thye don't and I feel, compared to other markets, the presults are very expensive relative to what they deliver.

</comment></comment></comment></comment></comment></comment></comment><comment><USER33> YMMV, but I don't want the average car owners to replace their hardware with whatever they found on Aliexpress, especially if those cars are supposed to drive autonomously at some point.

</comment><comment><USER34> 400 volts at 60 amps floating around in there though.

</comment><comment><USER35> Become cheap, widely adopted, and commodified?

Or become big heavy unwieldy pieces of plastic loaded with stickers and coming with a large tech spec sheet?</comment>


Rack: Open-Source PaaS on AWS - <AUTHOR> https://github.com/convox/rack?utm_campaign=explore-email&utm_medium=email&utm_source=newsletter&utm_term=weekly <comment><USER2> One of the maintainers of Convox/rack here...

A few important differences between Convox and other options in the space.

AWS only. We use lots of AWS services to piggy back on all the reliability AWS has baked in. For example we use DynamoDB to record all your builds because none of us want to manage a Postgres for record keeping.

Open source. The layer between you and your AWS account is open, transparent, and modifiable.

Simple. I want to remove as many moving parts as possible, not add a heavy middleware.

<comment><USER3> Hey there, thanks for putting this out as open source.

Curious: what's your business model? I am starting to write a book about open source business models and I would be interested in hearing your thoughts. Thanks!

<comment><USER4> I asked the same question in a thread about Convox a few months ago ([https://news.ycombinator.com/item?id=10796165](https://news.ycombinator.com/item?id=10796165)). Their reply from that thread might help:

nzoschke 134 days ago

> Thanks for your question. A much more thorough pricing page is in the works.

> The most straightforward model, and where we are already making some money, > is running a Convox as a managed service.

> In this setup you and your team get Convox API keys. Convox installs, runs > and updates everything for you in our accounts. You get a monthly bill > that's your AWS resource costs plus a percentage to Convox for management.

> We will be tweaking this model to sell packages so bills are really easy to > understand.

> Some other experiments we're doing...

> We sell support packages and professional services for app setup, migration > and custom feature development.

> We have a per-seat model for productivity features. Private GitHub repos and > Slack integrations are $19 / user / month. There are more closed SaaS tools > like this coming.

> Infra is trending to commodity prices industry wide.

> We'll be selling SLAs, support, productivity tools on top of that infra.

> You'll get a cutting edge private platform without hiring and managing your > own devops team to build and maintain it.

> Open source users will help grow the user base and make the platform better > without us running a freemium platform.

</comment></comment></comment><comment><USER5> Hi, Matt from Convox here.

I'm happy to answer any questions you have about Rack or any of Convox's other offerings.

To join a discussion with our user community please join our Slack! [https://invite.convox.com](https://invite.convox.com)

<comment><USER6> What's Convox's business/funding model? Not skeptical, just genuinely curious and can't tell from browsing the site. Also, what are your other offerings? If everything between AWS and my site is free, what else is there to offer?

<comment><USER5> We were in the Summer 2015 YC batch and we've taken some VC funding.

Our other main offering is a web console for managing your team's access to rack(s) and integrations with 3rd party services. [https://console.convox.com](https://console.convox.com) We charge a subscription fee for that and we also sell support and services packages.

</comment></comment></comment><comment><USER7> I'd be really interested to know more about how this compares and contrasts to Elastic Beanstalk (EBS)? particularly the docker flavours of EBS.

I've looked through a couple of the previous threads and didn't find much on this.

<comment><USER2> I'd say Elastic Beanstalk is the most direct "competition" because it his the same points:

* Simple

* Configures AWS resources uniformly run your app

* Uses Docker

Some advantages to using Convox instead of Elastic Beanstalk:

* More flexibility in the experience. Convox has a simpler API and CLI for end users.

* More flexibility in the infrastructure. We can pick and choose the best infrastructure components and constantly evolve.

* Less lock in. This is speculative but having a thin layer between you and AWS could help with portability.

<comment><USER2> The biggest difference is that Convox is Convox...

AWS is awesome but their values might not exactly align with your organization.

There are general advantages to letting the Convox team and community guide you through your cloud journey.

We value developer experience where AWS simply doesn't. Our plans include things AWS will never add to EBS like automating dashboards, monitoring and alerts.

We are moving a lot faster. Convox has swap and CloudWatch Logs integration where ECS doesn't.

</comment></comment></comment><comment><USER8> What will a newly created rack cost on AWS? Trying this out now, but want to get an idea of what it will cost me. Is there a list of all the AWS services this uses?

<comment><USER5> The base cost for a rack is about $85/mo. Convox is extremely cost effective for small businesses and up, but would be expensive for running a single, low- traffic hobby app.

<comment><USER8> Is that $85 for small instances or micro? I noticed it defaulted to small, which is why I ask.

<comment><USER9> That's for the default of t2.small

</comment></comment></comment></comment><comment><USER10> Previous discussions of Convox Rack: [https://hn.algolia.com/?query=convox&sort=byPopularity&prefi...](https://hn.algolia.com/?query=convox&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

</comment><comment><USER11> How do you feel Convox deals with the Hybrid approach? Of wanting to use a PaaS App container service, but keep the app dependencies like Cache, ElasticSearch DB hosted by AWS.

Does Convox continue to use hosted AWS services?

I like the idea of the App being containerised and that workflow, but I cannot convince myself that running DB/Cache in something like Convox is a good idea (vs Hosted in AWS).

Can you give your thoughts?

<comment><USER2> One of the core values of convox engineering is that services are better than software.

We do not run dbs as containers other than for dev or testing.

'convox services add postgres' and 'convox services add redis' provisions RDS and Elasticache respectively.

<comment><USER11> That is great. What about services which convox doesn't support (yet)?

For example SNS. Would convox ever support terraform/cloudformation for an App, or would you add SQS service in convox, then create SNS outside of convox, and then join them together somewhere else?

<comment><USER2> convox services add [sns|sqs|s3]

Is a thing.

Automatic provisioning services should be easy.

Your rack and all your apps and services are CloudFormation stacks. We favor CloudFormation over terraform for the same reason, it's a managed service.

The dream is fully automated provisioning of everything you want inside a single AWS account and VPC.

Then you can peer this VPC with another to keep linking things.

The framework is open source so it's pretty easy for us or anyone to add more services when requested. SES would be a good one next.

</comment></comment></comment></comment><comment><USER12> It seems naming things is still one of the hard things in Comp Sci: [http://rack.github.io](http://rack.github.io)

<comment><USER13> > It seems naming things is still one of the hard things in Comp Sci: > [http://rack.github.io](http://rack.github.io)

I think rack is a pretty good name for something that is meant to be the infrastructure for running services. Not sure of the etymology for this project, but to me it conveys images of a server rack in a datacenter.

<comment><USER14> It's not a bad name. The point is it's a name of a very well established, years old open source project used as the near-universal interface points between web servers and Ruby web frameworks.

<comment><USER15> Where do you draw the line? I find using the same term just barely acceptable right now. If ruby was as hot as it was three years ago, maybe I wouldn't. [http://www.indeed.com/jobtrends/q-rails-q- ruby.html?relative...](http://www.indeed.com/jobtrends/q-rails-q- ruby.html?relative=1)

<comment><USER16> Wow three whole years ago? Pack it up ladies and gentlemen we're heading to the Ruby funeral. Sorry for the snark, but tens of thousands of developers are using the real Rack every day. It's a mature component in widely used web frameworks.

Next up a JavaScript framework called Rake because who uses Ruby anymore.

<comment><USER9> We picked Rack because we like the conceptual analogy. The naming conflict is unfortunate but there are a limited set of good words available. We hope that context will make the meaning clear.

Thank you for commenting :)

</comment></comment></comment></comment></comment></comment><comment><USER17> Oy! The name 'rack' is already taken, referring to abstracted-out request- handling glue code that Rails et al are built on top of :/

<comment><USER18> Well that's not the first time two pieces of software have the same name.

<comment><USER17> I know, it's just painful to see two projects so close together sharing a name, esp. after a project is shown to the public

<comment><USER19> Not unchartered waters for the Convox folks:

[https://github.com/ddollar/foreman](https://github.com/ddollar/foreman) (Convox employee)

[http://theforeman.org/](http://theforeman.org/)</comment></comment></comment></comment>


Getting a programming job without a degree? - <AUTHOR>

I'm going through school right now, and I HATE it. It's pretty obvious that I've never been a school-type person. I'm not dumb or anything. I've aced all of my programming classes, but barely passed my physics and math classes. It's going to take me a total of four years to finally transfer to a university, only to encounter more tedious schoolwork.
I've been told often that my college degree is important, so I suppose I'll push through. However, I am looking for a job so I can get income to start paying for my own rent. I have worked with retail-level customers before as a computer repair technician and I absolutely hated it. I honestly thought I was going to lose my mind and bite a customer's ear off.
I have fairly solid knowledge in C (great language, IMO) and have taken a class in Python. I've also messed around with Django at an internship (which didn't turn out very well for several reasons).
What I've been told was to start contributing to open source projects. I'm going to start looking for the ones that I'm interested in as soon as I'm done typing this message. From what I've heard, being active in the open source community is a great way to gain experience points, earn reputation, and provides material for my future resumes.
I'm a bit overwhelmed at the thought of contributing code to open source projects. I feel that my skills are still lacking even though I haven't even started looking at the source code (which I will shortly).
So my main questions are: -What project should I start contributing towards? (preferably a project with people who are tolerant to newbies trying to contribute their code) -What other languages should I learn for contribution? -Some say that a degree is important, but others say that it's not that important in regards to skill/experience. What are your guys' take on this?
Thanks for your time. <comment><USER2> I'll speak from the perspective of a "former developer turned entrepreneur who now hires developers."

A degree may help getting your foot in the door of large corporations and on the desk of recruiting agencies, but startups are going to look at your demonstrated experience first. So while a degree will give you an edge in some cases, it's not necessary for getting a job. Demonstrable experience is.

Now how do you demonstrate this experience without a degree? Open source projects is one great way. Building some of your own apps and publishing them online is another. Having a blog and talking about programming topics is another, though that may invite more scrutiny than you want at this stage in your career.

As for which open source projects with which to contribute - I think others here may be better able to answer that. My input would be:

Which open source projects excite you? If you're going to contribute to an open source project, pick one that personally excites you. Otherwise, your interest will fizzle out in time. Someone who's made substantial contributions over a meaningful duration of time because he/she really cares about the project is more impressive than someone who's contributing to multiple projects just for the sake of contributing (not that there's anything wrong with that).

As for languages, that could depend on what you like. I'm partial to LAMP and C/C++. I see a lot of chatter about Python and Ruby. Some love J2EE. Some love ASP.NET (though it doesn't have as much support in the Silicon Valley area as in the rest of the US). If you like C and Python, continue with those first - get better at them - then graduate yourself to C++ and other languages.

I hope this helps. Good luck.

</comment><comment><USER3> I've hired plenty of people but no developers, so take my comments re college with a grain of salt.

I never, ever look at a person's degree. If someone left one off their resume I might ask out of curiosity, but I doubt I would think about it beyond that.

I used to run a PR agency. In that kind of work, a person's 'presence' is the most important thing, so I would just talk to them until I got a feel for them. If I were to hire a developer, I would ask what projects they had finished and I would try to establish if 'they code even when they don't have to'. I really think you need to be addicted to something as complicated as programming if you're going to be effective.

If I could do it all over again, I would take 1/5 of the money I (and my parents) spent on a largely worthless 'private school' education and start a business. Even if you fail, repeatedly, the lessons you learn would be invaluable.

I actually encourage you to drop out of school. Not so that you can follow some completely unstructured path down a beery slope or anything, but so that you truly take your future into your own hands and spend all of your time becoming what you want to become.

Good luck!

</comment><comment><AUTHOR> Thanks for your responses so far folks. I've decided to scrap my progress with the iPhone SDK and contribute to the open source community. I'm just a bit stumped as I'm completely new to this idea. More accurately, I'm still deciding on which project to work on.

As far as math is concerned, I'm just uninterested in it I suppose. I can definitely pass my math classes if I put more time in them. Math is just very bland and boring.

</comment><comment><USER4> You certainly don't need a degree if you can show you have good skills. One thing to be careful of though - you say you've struggled with maths, and maths is _very_ important for a lot of programming. It definitely depends what you're doing, and for some cases it's less important, but I definitely wouldn't neglect maths totally in favour of programming.

<comment><USER5> Don't need maths for no PHP stuff innit.</comment></comment>