The Upside to the Market Crash - <AUTHOR> http://www.npr.org/templates/story/story.php?storyId=97429370

<comment><USER2> You should restore the original title, which includes Lewis' name. I went from idle curiosity to going, "Oh! I have to listen to that later tonight!" when I saw what it was really about.

</comment><comment><USER3> _A few months ago, Lewis visited Princeton University, his alma mater, "to find out what the kids who were going to be investment bankers were now going to do with their lives." He says he was "so frustrated with how unimaginative young people had become in choosing their path in life that I thought that someone should establish a kind of 'Scared Straight' program for Ivy League students." He'd require them to spend a week with a hedge fund manager in Greenwich, Conn., "just to see how miserable" they'd be after 20 years._

That won't work. Wannabe bankers suffer from the same bias as young grad students. They expect to be exceptions. Everyone knows that the academic job market has been a toilet for the past 25 years, but people still pile into that industry expecting to be that 1 in 10 who gets a decent tenure-track job. People who are used to beating the odds, and winning constantly with little effort, generally haven't fully realized yet that failure also happens to people exactly like them.</comment>


Polystyrene - <AUTHOR>

What happen in the atmosfere when polystyrene burn ? <comment><USER2> "The main groups of vaporized compounds generated were monoalkyl-substituted aromatic hydrocarbons and their oxidized products, of which styrene monomer and benzaldehyde were the most abundant."

<http://www.ncbi.nlm.nih.gov/pubmed/734408></comment>


Declaration of process - <AUTHOR> http://process.germanforblack.com/

<comment><USER2> Just a bunch of quotes. Amass enough quotes and you'll have one for every situation. Well, no, you'll have at least two for every situation. Then you'll realize that when it comes down to

 _If something feels wrong, it probably is_

versus

 _1) Be humble

2) Shut the fuck up_

the quotes don't help you figure out the difference. They don't help you figure out whether the people around you are assholes or you're just depressed. They don't help you figure out whether the customer doesn't appreciate your work or you don't appreciate that their emphasis on speed at the expense of quality actually makes business sense for them.

But once you make up your mind, you can pick a quote that makes you feel cocky about whichever way you decided to interpret the situation. So there's that.

<comment><AUTHOR> DKarl, did I advertise it as anything else? I identify with them for one reason or another, they made my list.

One of the disclaimers on the about page is that from time to time I remove them, or edit my own, because I don't feel that way any longer. Convenient, hey? :-)

Hope you found it interesting all the same. Just sharing for the sake of it. I enjoyed them.

<comment><USER2> "Declaration of process" might not be the best title for it, then. I don't know if you're the one who submitted it to HN under that headline, but it advertises pretty much the opposite of what was delivered.

Not that I think there's much that can be usefully said about process, but a headline like "Declaration of process" is pretty ballsy in a time when people are (like me) generally disenchanted with talk about process, so I was prepared to be challenged and surprised, not treated to a list of unobjectionable-without-context quotes.

<comment><AUTHOR> dkarl, Good response. The headline on hacker news is the headline of the site, transparent as that… but you're totally right about it being unobjectionable—its a _personal_ list.

Food for (my) thought.

Thanks!</comment></comment></comment></comment>


Ask HN: What are some professional bodies I can be member of - <AUTHOR> What are some professional associations, or societies that I can join online and contribute as a developer? <comment><USER2> [https://join.osmfoundation.org/](https://join.osmfoundation.org/) Some of the [https://wiki.openstreetmap.org/wiki/Google_Summer_of_Code/20...](https://wiki.openstreetmap.org/wiki/Google_Summer_of_Code/2018/Project_Ideas) haven't been finished, 2019 planning started. There's also [https://wiki.openstreetmap.org/wiki/Top_Ten_Tasks](https://wiki.openstreetmap.org/wiki/Top_Ten_Tasks) and the more generic [https://wiki.openstreetmap.org/wiki/Develop](https://wiki.openstreetmap.org/wiki/Develop)

<comment><AUTHOR> Ohh man, that is so helpful. Thanks a lot.

</comment></comment><comment><USER3> ACM, IEEE

<comment><AUTHOR> Thanks

<comment><USER4> Not a fan of the acm. Expensive membership for little more than a magazine and access to papers that should be open access.

But then again, I just had the student membership.

<comment><USER5> Sounds like you likely have your mind made up, but you also get access to Safari Books Online.

</comment></comment></comment></comment><comment><USER6> Github. Stack overflow.</comment>


Reflections on lessons from randomized trials of newborn infants, 1951-1967 - <AUTHOR> http://www.jameslindlibrary.org/essays/cautionary/silverman.html

<comment><USER2> I think just about every parent has performed some sort of experiment on his/her baby, although we don't often label it as such (and fortunately, we don't often have to perform the sort of life-or-death experiments that Dr. Silverman was involved in).

My experiences experimenting on my own kids led me to write "Experimenting With Babies: 50 Amazing Science Projects You Can Perform on Your Kid" (available wherever books are sold). It's a collection of completely safe science experiments that parents can perform on their own babies, with no special equipment needed. All of the projects are adapted from published academic research in various fields of child development, but don't worry -- there's nothing ethically troubling or harmful, and the projects aren't meant to see if your kid "measures up." They're just to help you better understand how your baby is developing in the first two years.

If you'd like a little preview, check out the December issue of Parents magazine, where (to the best of my knowledge) there will be an excerpt featuring five experiments from the book.

<comment><USER3> I just happened to buy this book the other day after having my first child two weeks ago. What a coincidence to come across this comment.

I have to say I'm really enjoying reading through it! I've only tried the triangular-face-image test so far, with mixed results (the baby pooped which derailed the experiment a bit). But I'm looking forward to doing more as he grows up.

I appreciate that it's actually full of real science about child development, and written with some rigor. Amazon seems to group it together with novelty joke books like "Quantum mechanics for babies" or whatever, so I wasn't entirely sure what to expect when I ordered it. I have been pleasantly surprised. So thank you for producing an enjoyable book!</comment></comment>


Does 64-bit A7 provide any actual performance boost? The answer is no - <AUTHOR> https://medium.com/tech-talk/fb96c0d7fd4e

<comment><USER3> A generic desktop CPU maps a fairly standard set of generic abstracted peripherals to it's address space, but if you're really focused on your specific embedded system needs (as Apple has plenty of capability to address), you could use that extra space to map specific system peripherals. More than 4G worth of space? I'm not sure. In general though, the 64bit address space would make for fewer constraints as you consider mapping in peripherals. Maybe you assign different sections of address space even if you manufacture a SoC with different mixes of those peripherals actually present on the die - <USER2> you won't have rearchitecting the chip as much when you go between mixes.

The other thought I have is you might want the option of pushing iPad memory out past 4G within the lifetime of the A7 (or soon after in a follow on A8 and Apple wants to spread the technical pain of the transition a bit).

</comment><comment><USER4> More registers in ARMv8 should give some performance.</comment>


Algorithms and Data Structures: Trie (Prefix tree) - <AUTHOR> https://medium.com/algorithms/trie-prefix-tree-algorithm-ee7ab3fe3413#.ydm9bvqbh <comment><USER2> If I understand the task correctly, it is to map a word into another word that belongs to the set of words that have the same letter frequency distribution.

So a possible solution is to define a representation for a letter frequency distribution, and use an associative data type for the mapping.

Since the problem does not concern itself with prefixes, there is no need for a prefix tree - in Python, a simple dict would do.

A few words about style: when you write code, you have to come up with names for variables, functions, and other things. In this case, it seems you just went ahead and wrote down the first thing that came to mind, which is sometimes verbose because you're still in problem exploration mode and things are not clear. It's OK to do that, but please consider re-naming later on, so that instead of a first-thing-I-thought-of name, you'll have a name that gives the reader a sense of clarity. The process of doing that usually leads to better understanding of the problem and perhaps better code. With experience, you'll find that the need to re-name is reduced.

As a rule of thumb, the length of the name should correlate with the its scope. Names with indefinite scope tend to be long, while names with limited scopes tend to be shorter.

Finally, I encourage you to write more posts, and hope my critique is helpful.

<comment><USER3> >So a possible solution is to define a representation for a letter frequency distribution, and use an associative data type for the mapping.

out of curiosity, could one such representation just be all of the letters in the word, sorted? I wonder how the time-complexities would compare. I assume a trie would still be faster.

<comment><USER2> Yes. Another simple representation if you assume a maximum number of occurrences per letter:

      (defvar *alphabet* "abcdefghijklmnopqrstuvwxyz")

      (defconstant capacity-in-bits 3)

      (defun key (word)
        (loop with key = 0
              with max-occurrences = (1- (ash 1 capacity-in-bits))
              for letter across *alphabet*
              for i upfrom 0
              for occurrences = (count letter word)
              do (if (> occurrences max-occurrences)
                     (error "too many occurrences")
                     (setf (ldb (byte capacity-in-bits (* i capacity-in-bits)) key)
                           occurrences))
              finally (return key)))

</comment></comment></comment><comment><USER4> " that means 235,887 operations for each string that I want to verify as a real word."

/usr/share/dict/words is sorted. A binary search would be much more suitable than iterating over each word, at least for a first run.

And depending on the constraints of the actual problem you are trying to solve a binary search is likely going to be the best well rounded case.

(This mostly depends if memory and disk space constraints are in place).

But I would imagine most spell checkers store their dictionary much differently than that of dict/words

(off to take a look at the aspell source)

<comment><USER5> Ok, so I did my bachelor thesis on Tries (suffix tries to be exact). So imma run wild

If you get to preproccess, the trie is best. Building the trie takes time and memory that is O(size of dict = k). After that, lookups are O(length of words = n). Meanwhile, binary search is O(n log k) (that factor n their is kinda contentious as generally you will find a mismatch early in the word).

So if the dictonary is really large, or you're doing a shitton of lookups, the trie is better than binary search. Sadly, in practice tries don't work very well with caches. However, there is a very interesting intermediary form based on something called LCP.

LCP stands for longest common prefix. The idea is to prevent rechecking the first part of the word by keeping track how well we matched at the left and right boundaries of our search interval.

There is another magic trick we can use to get this technique up to the level of a trie. This depends on the Range Minimal Querry. A range minimal querry asks, given a range (i, j) and an array A, what is the index of the minimum of A between A[i] and A[j]. It turns out that, with linear preprocessing, we can answer this in _constant time_. Now, we build an array that, for any 2 adjacent words stores their LCP. Any time we have an interval in our search, we don't go to the middle, but to the RMQ-index of that interval. This way we split our search space more efficiently. In fact each interval in this search method corresponds to a branching node in the trie.

<comment><USER4> I agree that binary search might not be the best (depending on constraints), my initial complaint was there were faster ways to solve problem stated than searching every word every time.

I personally like the binary tree method for systems that don't or can't load a dictionary in memory. I particularly like it because you can implement a search that requires little memory and does not require you to read the entire file. But I imagine that there are better ways to lay out the data that potentially could get you the best of both worlds.

I can see how a trie would be useful for doing things more than just checking if the word is spelled correctly viz finding list of words that start with a prefix. The question asked was mostly about looking up a word. I posted something on this below before I found your reply. In my post below I am concerned with only checking if the word exist. Are my concerns with regards to the trie valid? Would you agree that hash table would faster than a trie (any kind) for checking if the word exist? Or have I overlooked something?

<comment><USER5> Comparing a hash-table to a trie is difficult in practice.

Theoretically, they are equally fast. Both take O(length of word) time. You could give an advantage to the trie because it allows for early failure detection, whilst the hash table requires processing the full word.

In practice though, for short words (e.g. < block size of the hash) the hash might effectively be constant time. Finally, cache behavior is going to really matter tries require a pointer dereference for each character (you can mitigate this someone by storing non-branching paths along the trie better). Such dereferences tend to really wreck a cache.

So in the end, it's better cache behaviour for the hash table vs early stopping for the trie. Cache misses are so expensive, I'd guess the hash table wins in most situations, but that is really a guess.

<comment><USER4> I see your point about early detection. While a trie will have precise early failure detection a hash will have 2 ways to fail early.

One would be the hash is simply not found. But at that point you had to at least look at the entire input word, compute the hash and check for the hash. I have not done any actual analysis on this but just for thought let us look at the hypothetical case that words would fail near halfway through the testing process. In a hash we would have needed to at least read the full word while in a trie comparison of at least half the word with half the letters in the trie path would have needed to be processed. So conceptually (at least in my head) both the hash and trie would need to have done _something_ with about the same number of letters. The question there is is computing and checking the hash more efficient than traversing the trie.

The second way the hash would fail early is when we have a hash match and comparing the resulting words the hash entry held. Now if the collision rate was low then we might only have to check one word, if it is high then many words. So I would hope the hash was tuned for a low collision rate. But when comparing two words there is also early detection (this is the point I was getting at). The entire word does not need to be compared, it would likely be compared word at a time (word as in 4 or 8 bytes at a time).

If I have time this weekend I think I want to implement both of these to benchmark.

All that being said, the more I think about it I think a trie would be the _best_ for a spell checker in general. Simply checking if this is a word or not is nice, but what is nicer is the ability to suggest alternatives to the misspelled word and a trie would be mucher nicer to work with with building that list.

<comment><USER5> I missed the point (as others have said) that a Trie will take less memory as it stores common prefixes only once.

As for early mismatch detection, the statistics of that elude me at the moment. Certainly, early detection decreases as you get more words. However, as you get more words, you probably get longer words (lest you run out of space) so that makes early detection more valuable.

</comment></comment></comment></comment></comment></comment><comment><USER6> Not everyday I get to share this! I wrote some code in Go that uses a trie to quickly find anagrams. My trick is that I load the trie with a dictionary, but before I insert each word, I sort it alphabetically (ex: sort -> orst). Before I lookup a word I sort it alphabetically, so when I locate it in the trie, I also get all the other words that share the same characters. Because of the nature of the data structure, I can also quickly find all the smaller anagrams which will be handy when I get around to turning this into a full fledged scrabble playing AI: [https://github.com/RyanEdwardHall/anagrambler](https://github.com/RyanEdwardHall/anagrambler)

</comment><comment><USER7> It is refreshing to see a data structure "explained" without a drawing of some boxes and arrows. +1 there for the creativity -- I'd be even more pleased to see a data structure _explained_ with words without relying on images at all.

Also:

      ...to check if a word exists in the text file, it takes
      at most, as many operations as the length of the word
      itself. Much better than the 235,887 operations it
      was going to take before.

But your source for the words (/usr/share/dict/words) is probably already sorted! I don't think that's a fair upper bound to quote.

<comment><USER5> Still, trie lookup time is independent from your dictionary size. Sadly, in practice they are hurt by the many pointer dereferences of traversing the tree.

If you have a sorted list of strings, you can speed up the search by tracking how many starting characters on the left and right boundary of your interval already match the given word. In practice, this turns out to be almost as good as tries as most steps eliminate quite a few characters to check.

If you like theory, you can add on Range Minimal Query to get the same theoretical performance as tries. In practice though, this isn't necessary.

</comment></comment><comment><USER8> John Resig wrote up a nice analysis of tries using Javascript five years ago. It is well worth the read: [http://ejohn.org/blog/javascript-trie-performance- analysis/](http://ejohn.org/blog/javascript-trie-performance-analysis/)

</comment><comment><USER9> I've implemented a trie exactly once in my 15 years of professional programming, and I'm so happy I knew about tries when the time finally came :)

Edit: swapped _used_ with _implemented_

</comment><comment><USER10> The coolest use of Tries I've ever seen is the Apriori algorithm. It exploits the trie properties and the structure of the query sequence in a really clever way. It's beautiful.

</comment><comment><USER11> One might note that properly implemented hash tables also have O(k) lookup times. And in fact, much of the time well-tuned hash tables outperform well- tuned tries.

Tries still have some advantages though:

1) The naive implementation of a trie of using an alphabet-sized vector for the child nodes is much closer to the ideal performance than the naive implementation of a hash table. If I had to implement a dictionary on short notice, I would use a trie.

2) Tries preserve ordering, while still allowing O(1) [in the number of items in the dictionary] insert, removal and lookup. If you need to get the key that is lexicographically next or previous, to another key, or you need to find the two keys that bound a particular value, it's a great structure to use. Comparison based trees can also do this but not with constant time insert and remove.

For a really space-efficient trie-like structure, see crit-bit trees[1] which are basically a space-efficient radix tree with on a binary alphabet (so each internal node has a fanout of exactly 2).

1: [https://cr.yp.to/critbit.html](https://cr.yp.to/critbit.html)

</comment><comment><USER12> "I wrote the simplest version of a trie, using nested dictionaries." (⊙_◎)

<comment><USER13> What's wrong with this? What would be the alternative? A preallocated array of 26 (or more if you account for special chars) for each node?

<comment><USER14> I recently wrote a basic trie in Nim for fun, I started with a preallocated array and then rewrote parts to hashtables, it's simpler since you don't need to care about the dictionary size and it can have space savings depending on how the table grows. It wouldn't surprise me if there was a fancy bitmapping approach though, or if you could be more efficient if you had n-gram statistics. (And as mentioned elsewhere for the purposes of storing/searching a dictionary you could just have a flat hashtable indexed by the words, or a bloom filter if you only care about certainly not existing...)

</comment></comment></comment><comment><USER15> I'm not familiar with Python, but would a C extension be the best way to implement a data structure like this, that requires high performance? Or is it possible to write efficient enough code in Python?

<comment><USER16> When algorithms matter, you do get a lot of performance out of a better algorithm. But I actually recently wrote an admittedly not production ready trie extension in C and it was about five lines of SWIG to use it from python.

</comment></comment><comment><USER17> I wonder if the op compared the performance of this vs "word in set(words)"; tries are very interesting data structures mind.

<comment><USER18> The problem with anagrams is you'd have to test all permutations of a word, which is n! hash lookups. Alternately you could store all prefixes in the set and prune the permutations that way. Slightly more interesting than word in set(words).

</comment></comment><comment><USER19> I wish medium was more developer friendly. Articles about programming on that platform are unreadable for me.</comment>


Bootstrap 3 - <AUTHOR> http://getbootstrap.com <comment><USER2> Is it just me or do flat styles actually have worse usability? There's absolutely no visual cue for what's clickable and what's not.

<comment><USER3> Yeah, I agree. A good case-in-point is the new button groups.

Here is 2.3.2: [http://getbootstrap.com/2.3.2/components.html#buttonGroups](http://getbootstrap.com/2.3.2/components.html#buttonGroups)

And here are groups in 3: [http://getbootstrap.com/components/#btn- groups](http://getbootstrap.com/components/#btn-groups)

There _is_ a rollover state, but it doesn't really convey it is a button anymore.

<comment><USER4> And rollover doesn't work if you are mobile-first.

</comment></comment></comment><comment><USER5> If anyone's interested, I wrote up a little guide on how to prepare yourself for B3 - [http://blog.jetstrap.com/2013/07/bootstrap-3-how-to- prepare-...](http://blog.jetstrap.com/2013/07/bootstrap-3-how-to-prepare- yourself/)

</comment><comment><USER6> The actual reason that all the styles are "flat" right now? One of the main project authors removed them temporarily while he focuses on fixing other issues in the current pull request for Bootstrap 3.

        mdo commented: Gradients and other embellishments have
        temporarily been removed while I focus on other things.
        It has nothing to do with skeuomorphism or anything
        like that.

Stop reading the tea leaves, people. Source: [https://github.com/twbs/bootstrap/pull/6342#issuecomment-123...](https://github.com/twbs/bootstrap/pull/6342#issuecomment-12332378)

<comment><USER7> It would be pretty neat if all the "gloss" was an additional, optional "module" that you could add in at your discretion.

People who want something they can work with straight away can then add that in and get their gradients, drop shadows etc. People who want something more basic that they can augment with their own styles can then choose to not include this "module", and save themselves having to jump through hoops to undo the default styles (which is a pain, as anyone who has had to do this knows)

</comment></comment><comment><USER8> > Bootstrap 3

It's a release candidate. The first of at least two.

If you want discussion, check out [https://news.ycombinator.com/item?id=6112141](https://news.ycombinator.com/item?id=6112141) (disclaimer: my submission).

@mdo jumped in for a bit of commentary, too.

</comment><comment><USER9> Man, I feel weird. I used BS2 temporarily, but then stripped it out for a straight reset and grid system. Old habits die hard, I guess, and what I Want from a UI doesn't always match Bootstraps ideas... I'll give this another shot for my startup prototype, but I have a feeling the same will happen.

Is anyone else like that, or am I now old-school at the ripe age of 22?

<comment><USER10> Maybe Foundation would suit you better. I heard it's a bit more lightweight than BS.

<comment><USER11> I checked it out for that reason. Then I found a number of social images and began wondering why a lightweight CSS framework needed images for facebook, twitter, etc...

<comment><USER12> You mean the Social Icons in the _Add-ons_ section? You don't need to include those, in fact, I believe they are opt-in, not opt-out.

<comment><USER11> Just checked and you are correct.

<comment><USER13> If you want something lightweight, I wouldn't go for Foundation either. Even after stripping out the unnecessary stuff, I found it overly obnoxious to style.

I ended up with the Skeleton framework after struggling with both Bootstrap and Foundation for a few days. It was a much better decision. I've also been eyeing Bourbon Neat lately as well.

</comment></comment></comment></comment></comment></comment><comment><USER14> Dude, [https://www.hnsearch.com/search#request/all&q=Bootstrap+3](https://www.hnsearch.com/search#request/all&q=Bootstrap+3)

<comment><USER15> So what. Now all the people that haven't seen it will notice. heh

<comment><USER16> It's still on the second page of HN, was on the frontpage for a while.

<comment><USER17> I guess it goes to show front end design is one of the most controversial topics on HN. On GitHub, Bootstrap has maintained an almost permanent position in the daily top ranked repos.

</comment></comment></comment></comment><comment><USER18> I don't think I get the new grid system.

.col-12 .col-lg-8

What's going on here? If I were to guess, I'm assuming it's going to be 12 columns if its a mobile, 8 if a tablet or a desktop.

In what situation would that be useful? It looks like you'd end up with some pretty complicated mark-up quickly like that.

<comment><USER19> In order to reduce complexity like this, you should avoid using Bootstrap classes in your HTML directly.

Instead, use semantic class names for your app and use the new &:extend() directive in LESS 1.4 or @extend in SASS (if you're using bootstrap-sass). You'll end up with much more readable HTML and CSS, and will insulate yourself from future changes in Bootstrap.

I do stuff like this in SASS

        %flash {
          @extend .container;
          @extend .alert;
          margin: 15px auto;
          border-radius: 0;

          .close { top: 0; }
        }

        .flash-success {
          @extend %flash;
          @extend .alert-success;

          .close {
            color: $successText;
            opacity: 1;
          }
        }

        .flash-error {
          @extend %flash;
          @extend .alert-error;

          .close {
            color: $errorText;
            opacity: 1;
          }
        }

<comment><USER7> I'll politely (and completely) disagree with this. I much prefer the HTML convey semantics (to the dev, not to the user) than having magic happening behind the scenes with CSS.

By having the classes in the HTML, you know at a glance what is going to happen. Whereas using extend there's an extra layer of indirection, you end up having to look at the HTML, see there's a class called something like "sidebar". Then you have to look at the SASS, find the sidebar class to see there's an extend directive, then and work out what's going on in there. That's an extra step i'd rather avoid.

People usually follow this approach to get "clean" or "semantic" markup, but there's some falsehoods in that thinking. The "markup looks ugly", or is "non- semantic" are misguided: no user agents infer semantics from classes, and the ugliness you describe is purely aesthetic, _the real beauty is in the semantics the developer can infer from having clear and obvious classes in the HTML_. Another classic argument is it makes the markup bloated. This may be true on the surface, but when you factor in GZIP, it is completely negated as more repetition == better compression.

A great read on the topic is Nicholas Gallagher's article "About HTML semantics and front-end architecture"[1]. Reading that article for the first time was one of those moments of clarity, where your previous perceptions are completely shattered. Hopefully you guys will feel the same :)

[1][http://nicolasgallagher.com/about-html-semantics-front- end-a...](http://nicolasgallagher.com/about-html-semantics-front-end- architecture/)

<comment><USER19> I'm not sure I follow. You're basically arguing for including style attributes throughout your HTML. CSS classes are always a layer of indirection, regardless of whether they are semantic or functional. As such, you shouldn't be forcing style and layout directives into the structure of the document.

The main benefit of what I'm describing isn't actually semantics. It's allowing CSS to do what it does best: cascade.

Say I've got an application where I've got several pages with unique layouts and the designer has come up with a new form style that has all the labels inline instead of on top of each input and has a new dynamic tour system that needs some area on the right of each form.

If you were using Bootstrap classes directly, you'd have to go to _all_ of your forms and add .form-inline and change the column size classes. You wouldn't want to redefine what those classes are because that may have effects on other areas of the application. This may also break some of your Javascript, as it was dependent on those class names.

If you were using semantically-named classes, you'd simply change the width and add @extend .form-inline to your main form placeholder (which is in turn @extend'ed by any specific form class). Your HTML would stay the same, meaning any Javascript dependent on those classes wouldn't break.

<comment><USER7> No I'm not arguing for style attributes, that's a maintenance nightmare waiting to happen (with very little waiting needed!). They are a layer of indirection indeed, but which of these do you think conveys more information/semantics to the developer (these aren't bootstrap specific classes, just illustrative):

The second one is _way_ more verbose, but at a glance you know exactly what is happening (assuming my class names are obvious enough). The classes convey information that an amalgamated class you get from @extend simply cannot.

First let me say that a lot of what I'm talking about is optimal for building large-scale web sites with lots of page variants. Your mileage may vary for smaller sites, the principles can still be applied, but you might not need adhere to them as strictly.

There's been a movement in recent years, Object Oriented CSS (OOCSS). This ethos urges the developer to write CSS as they would other code, using the hard lessons that have been learnt in other language. We should be thinking in abstractions, utilising the single responsibility principle, favouring composition over inheritance, loose coupling, and self-documenting code. I'll go through these one at a time, because the benefits of each flow throughout one another.

Abstractions - using a single class like "sidebar" to contain all your styling for the sidebar is not thinking in abstractions. The sidebar may need specific styling (say a different BG colour) but it also has a lot in common with other parts of the page. For instance, it's nothing more than a grid column, so why bundle all styles into one class instead of using the grid abstraction to "decorate" the sidebar with this? This is equivalent to breaking a system into reusable classes. See Nicole Sullivan's article on the Media Object [1] and Harry Roberts on the open/closed principle in CSS [2]

Single-responsibility principle - Do one thing and do it well. A class should have a single-responsibility so that it can be composed into larger "blocks" of styling. A class that does everything is monolithic and difficult to work with as soon as a design needs to change. Overly broad selectors in CSS can also break the single responsibility principle - suddenly your styling is relying on the coincidental placement of elements inside one another. Harry Roberts cover this [3]

Loose-coupling: Can parts of your code base change without affecting others? By @extending grid classes you're tightly coupling yourself to the implementation details of the grid system. Now you can of course override styles in your sidebar class, but overriding styles from previous classes is a code smell. If you're "undoing" what another class has done, you've applied a style too early. You suggest changing the CSS and leaving the HTML the same when a change is required. I always prefer changing the HTML because it has a far more limited scope for far reaching changes. If you change one segment of HTML you know it's not going to affect other parts of the site beyond itself (and possibly it's children), but if you change some tightly-coupled CSS its effects could ripple throughout the whole site. The previously mentioned article on the open/closed principle [2] touches on tight coupling in classes.

Favour composition over inheritance - In OO languages we've learnt that we should favour composition of granular, single-purpose classes over deep inheritance hierarchies. Why? Inheritance is a fundamental tenet of OO, just as the cascade is in CSS, but we still frequently eschew it. The reason for this is because we can compose infinitely more flexible pieces of functionality from granular building blocks than we can from inheriting traits from "super classes". And now that we're thinking in abstractions (as outlined above) using the single-responsibility principle, we can put multiple classes on an HTML element to compose them as you wish into large blocks. Harry Roberts (CSS Wizardry) covers this nicely [4] and also when talking about grid systems [5]

Self-documenting code - From the HTML I ideally want to know exactly where each bit of style is coming from. With one monolithic class all I know is that it's a sidebar, which doesn't really tell me much that I can't work out visually. Multiple classes tell me exactly how it will behave at a glance. This means your classes should be as descriptive as possible. Classes should not describe the content of the markup they are applied to (sidebar is definitely content-centric) but rather their intent. And small, abstract, single-responsibility classes convey more information than a monolith can, and they ease understanding of the system. Someone familiar with bootstrap could quickly get to grips a site using the plain bootstrap classes, whereas @extending all over the place necessitates digging into the CSS to gain an understanding of the system. This is covered in great depth in the original article I linked to.

Finally, you should never use as a JS hook a class whose purpose is visual styling, then the whole mess you outlined is avoidable. Either use data-* attributes (as most bootstrap widgets do) or a class which conveys intent and a single responsibility e.g. "js-date-picker".

Now my incoherent ramblings are probably lacking in a number of points, I had to leave out a lot so this didn't balloon even further (e.g. I didn't talk about specificity or BEM methodology). I urge you to read all the articles I've linked to, as hopefully you've already read the original one. You might also want to read this article which kinda covers everything in one post: [http://engineering.appfolio.com/2012/11/16/css- architecture/](http://engineering.appfolio.com/2012/11/16/css-architecture/) Most of the principles I've outlined here are actually used in bootstrap.

PS. if you want to continue the conversation, hit me up on twitter (@WickyNilliams) or something, I always forget to check back on HN comments for replies.

[1] [http://www.stubbornella.org/content/2010/06/25/the-media- obj...](http://www.stubbornella.org/content/2010/06/25/the-media-object-saves- hundreds-of-lines-of-code/) [2] [http://csswizardry.com/2012/06/the-open- closed-principle-app...](http://csswizardry.com/2012/06/the-open-closed- principle-applied-to-css/) [3] [http://csswizardry.com/2012/04/the-single- responsibility-pri...](http://csswizardry.com/2012/04/the-single- responsibility-principle-applied-to-css/) [4] [http://csswizardry.com/2012/10/a-classless-class-on-using- mo...](http://csswizardry.com/2012/10/a-classless-class-on-using-more-classes- in-your-html/) [5] [http://csswizardry.com/2013/02/responsive-grid-systems-a- sol...](http://csswizardry.com/2013/02/responsive-grid-systems-a-solution/)

</comment></comment></comment></comment></comment><comment><USER20> Meh, at some point they should start to realise that you can't change everything every release and expect everyone to keep up. It feels like it's becoming more of a chore than the real initial win it was able to deliver on first release.

<comment><USER21> You don't _need_ to stay up to date with this kind of frameworks. It isn't like every update has security fixes.

The company I work for uses several versions of Bootstrap 2 and we have no issue dealing with it. Newer projects will use BS3, but we don't need nor feel the need to update every project.

<comment><USER22> There is an image gallery plugin that I use that secretly downloads its own latest version of bootstrap, which can conflict with the one you have loaded, breaking everything :(

<comment><USER11> It must be a very good library to be chosen in spite of that behaviour.

<comment><USER22> As you might tell by my :(, I wasn't aware that it did this until quite recently. When it broke my site.

</comment></comment></comment></comment></comment><comment><USER7> Is there actually a changelog somewhere or will that be written up with the full official release? I can't see anything detailing what's changed

Also, it's a damn shame they're still using pixels for everything (from a cursory glance). Fluid grids (i.e. %-based) and ems (for font-size and media queries) are much better. They are infinitely more flexible and much more easily adaptable to any layout.

<comment><USER6> The Bootstrap 3 pull request has a lot of details about what is changing: [https://github.com/twbs/bootstrap/pull/6342](https://github.com/twbs/bootstrap/pull/6342)

<comment><USER7> Thanks, that's really comprehensive (perhaps too low-level for the end- consumer to care about).

Reading through that PR it seems they are actually using percentage-based grids now, but the grid containers are fixed width (and probably defined in px). That's definitely better than completely fixed width grids, though I'd much prefer having max-width on my containers instead of an absolute value, and relative values used throughout

</comment></comment></comment><comment><USER23> This looks like the changelog: [https://github.com/twbs/bootstrap/pull/6342](https://github.com/twbs/bootstrap/pull/6342)

</comment><comment><USER24> While simple, I believe Panel and Listgroup are new components; nice to have those nicely implemented and styled in the framework. Will be handy for me. In many ways I think Bootstrap helps the most with the little things like this. I am very appreciative of this terrific framework being made available for us to use.

</comment><comment><USER25> Why is everything _flat_ :-C

<comment><USER26> I think it's flat because it's easier to add CSS and build up widgets as opposed to having a stylized widget, then trying to override the CSS to re- customize each widget. Foundation, the original front-end framework which Bootstrap emulates, works the same way.

<comment><USER12> Foundation doesn't isn't completely flat though. Buttons, for example, hint at being intractable by giving a tiny bit of depth using the line at the top of the object.

</comment></comment></comment><comment><USER27> A big improvement: the media queries are ordered properly, mobile-first. Great decision.

</comment><comment><USER28> It's interesting to see that the references to twitter are basically gone now, presumably this means we'll see more things from `Bootstrap` in future, perhaps a company since it already has a lot of mind-share.

</comment><comment><USER29> The nav bar that automatically collapses for mobile is an excellent addition. This is one of the main things lacking in quickly made prototypes.

<comment><USER30> This exists in Bootstrap 2 too: [http://twitter.github.io/bootstrap/2.3.2/examples/fluid.html](http://twitter.github.io/bootstrap/2.3.2/examples/fluid.html)

</comment></comment><comment><USER31> Bug report:

      - open on iPad in landscape
      - navigate to a long doc page
      - scroll halfway down
      - rotate to portrait

Expected: content scaled to fit

Actual: content zooms way in, document scrolls several pages

      - rotate back to landscape

Expected: content returns to previous view

Actual: content zooms even further

<comment><USER32> It's probably best if you submit bugs to their issue tracker: [https://github.com/twbs/bootstrap/issues](https://github.com/twbs/bootstrap/issues)

</comment></comment><comment> db-dzine wtf is wrong with the button ... srsly. [http://s14.directupload.net/images/130729/kassm787.png](http://s14.directupload.net/images/130729/kassm787.png)

<comment><USER33> I'm on Firefox 22, and the same thing happens here. Mouse over download button, click it, download pop-up appears, click cancel on the download, button disappears. It re-appears upon giving focus back to the page.

<comment><USER34> Still happens in FF 25 nightly as well.

</comment></comment></comment><comment><USER35> Personally, I think the "Download Bootstrap" button is too ambiguous. Why is the default color the same as the background color, it is just confusing and ugly

<comment><USER36> I love that button, think it looks awesome.

</comment></comment><comment><USER37> I'm assuming this was design by committee. The first versions of Bootstrap seem a whole lot better visually.

</comment><comment><USER38> It's really unfortunate to see all the haterade being spilled over the comments. The efforts to take Bootstrap to version 3 were pretty significant, at the minimum they deserve a pat on the back for that alone.

Here are some important concepts I think a good portion of people are missing.

 _Upgrading_ \- Don't upgrade for the sake of upgrading. If you have a fully functional site right now which uses or extends a previous version of Bootstrap your incentive to upgrade at this point is probably minimal.

At some point you had conceded that version X of Bootstrap was the right front end framework for your project. If that has changed you need now concede you have some work ahead of you.

Identify and evaluate the features introduced in Bootstrap 3 that are lacking from your current project. Scope out the markup and stylesheet refactoring required for any of the "must haves" and setup a schedule to integrate. Realize that this doesn't necessarily mean you are bringing Bootstrap 3 into your project, more so you may just be adapting your existing front end assets to model Bootstrap 3 features/patterns.

This is really no different than an existing site that doesn't use Bootstrap now wanting to bring the framework into their project. If you've identified that you need Bootstrap 3 for your project, you would expect there is work to be put in.

 _Usage_ \- I see a number of comments critiquing design and usability. Is Bootstrap really intended to solve those problems for you?

In my opinion this is a framework intended to bootstrap your front end assets and development efforts. It prescribes conventions for common component markup and their respective selector naming conventions.

Think about that for a moment how valuable that is to your project (especially those with a large number of contributing developers). How many projects previous to one using Bootstrap did you have such well documented markup, style and naming conventions?

Bootstrap standardizes and documents front end patterns for rapid adoption and implementation into your project. That's pretty damn special. If what they promote doesn't align with your needs or development practices, well, don't use it.

 _Style_ \- Bootstrap wasn't designed for your site, your users or even to keep up with the latest design trends. The styling, while in the view of many is decent, seems to have been intentionally minimalistic and not overly opinionated.

It provides basic structure and basic styling. It's your starting point. You can get to your destination now a bit quicker without needing to reset their style rules.

Having such minimalistic styles probably serves to be good motivation to get creative. If you want custom and don't have the design ability to get there, rest assured there will be a companion stylesheets to extend bootstrap coming soon to at a market place near you.

 _Inspire_ \- If the Bootstrap shoe fits, wear it. If Foundation, Pure or any other front end framework fits the need, use it.

To me the great benefit of all these popular frameworks is they bring to light many well thought out development approaches to the front end. Not everyone will agree with them. They aren't always bullet proof. Though at the end of they day though they invoke developers to take a look at their individual assets and recognize areas of improvement.

Find the framework or approach that best aligns with your needs and personal preference and customize the hell out of it.

</comment><comment><USER39> This is awesome work, well done to the Bootstrap team.

</comment><comment><USER40> Other than the grid, it looks like all the classes and markup are the same.

I wish the examples used more semantically meaningful html5 elements where appropriate, but that's not too big of a deal.

<comment><USER41> I noticed last night that the forms have been cleaned up a bit and outfitted with new class names

<comment><USER40> Oh, I missed the forms. I haven't had much call to use them in my current project, so I missed those.

</comment></comment></comment><comment><USER42> The CSS/JS on the website is broken.</comment>


Mobile app idea #85: Farsighted Mirror - <AUTHOR> https://www.xamotoolkit.com/post/mobile-app-idea-85-farsighted-mirror <comment><USER2> Excuse me, optics just won't work that way with unmodified display. Some lens will be necessary.</comment>


BrevityOS - <AUTHOR> http://www.brevityos.org/ <comment><USER2> As with almost all projects like this, I really really want to see the UI. Are there mockups somewhere?</comment>


Facebook connect site requires email, posting permissions to verify age. - <AUTHOR> http://www.lolturtle.com/v/1623378563

<comment><AUTHOR> OP here: I thought this "verification" process was a particularly scummy/duplicitous use of getting people to use one's app and deserving of a bit of sunlight.</comment>


Windows Phone 7 in-depth preview - <AUTHOR> http://www.engadget.com/2010/07/19/windows-phone-7-in-depth-preview/ <comment><USER2> I'm looking forward to seeing how these devices play in real world usage. The two things that jump out at me immediately.

1\. Most important: On a device with a small screen pixels should be precious. It worries me that many of the built in apps use a significant and unchanging amount of the screen to tell you what app you are in. I don't know if it will really impact usability, maybe there is enough screen real estate to go around, but it seems wasteful. Perhaps the fact that many of the different app's UIs (especially the list UI and the list of tiles UI) look very very similar makes it necessary for you to have a 1/5 screen reminder that you are in the photos app and not the marketplace?

2\. The multiple message selection is the best example of this, but there are others: many of the possible interactions with on screen elements are completely hidden and non-obvious. It would be difficult to discover that you can manage multiple messages by tapping on the far left hand side of a message. Contrast this with the iPhone, where you tap edit or whatever, and the message management UI comes on screen. It reminds me a little of the Anti- Mac interface (<http://www.useit.com/papers/anti-mac.html>) in that it is actually faster (you don't have to go and hit a button that takes up space on the screen in order to start moving messages around) but at the price of discoverability. Are there other examples of Windows Phone 7 being designed for expert/informed users?

<comment><USER3> > Are there other examples of Windows Phone 7 being designed for > expert/informed users?

To use Windows Mobile, you had to deal with ActiveSync. To use ActiveSync, you have to be fairly tolerant and technically proficient. For example, when upgrading the OS, you have the responsibility(1) of manually backing up all your contacts, data, apps.

Contrast this with iTunes (yes, iTunes isn't elegant) - when iOS 4 came out - it downloaded it and asked if you wanted to upgrade your phone and did so without losing settings, data, apps. Now, Android supposedly can do OTA updates. The point here is if WinMo7 requires ActiveSync - it is severely behind the times.

I'm hoping WinMo7 won't require a user to use ActiveSync and it is all stored securely in the Windows Live cloud. I usually used lots of colorful adjectives when dealing with ActiveSync. I had a boss who was convinced to get a WinMo device by a co-worker; she lasted only about a month (ActiveSync).

(1) [http://www.htc.com/www/supportdownload.aspx?p_id=59&cat=...](http://www.htc.com/www/supportdownload.aspx?p_id=59&cat=2&dl_id=113)

<comment><USER4> There is no ActiveSync component to WinPhone7 .. The data (photos, contacts, documents, settings, etc) is all synced up to cloud via a live.com account (which even includes the newly announced feature of tracking the phone in case of loss or theft ala mobileme)

The data can also be synced via the Zune software on a desktop much like iTunes (but Zune Software is a far better experience in my opinion when it comes to music and video).

<comment><USER3> Looks like the Zune was a good investment into consumer friendly software

</comment></comment></comment></comment><comment><USER5> I don't know...

Unless MSFT starts paying phone manufacturers or developing their own hardware, I don't see this catching up as much as Android or IOS.

There is nothing intuitive about the OS and honestly very underwhelming, I doubt a consumer who is aware of IOS and Android and have the option of choosing either one of the three will end up with Windows7.

<comment><USER6> >There is nothing intuitive about the OS

Could you elaborate on this?

<comment><USER5> Sure.

The UI doesn't follow a conventional way how people use UI in any form of mobile devices. There are differences in IOS, Android, Blackberry and PalmOS but those differences aren't huge. If you use either of those devices/OS who should be able to pickup any of the other devices relatively easily. At least this has been my personal experience with Android, IOS and WebOS. What Windows Mobile 7 is doing is a fundamentally different way of how you use a mobile device. You could argue that when IOS was first introduced it was also a different way of how people uses mobile phones. But it was different in the sense that it was not confusing, it was very intuitive.

In contrast Widows7 mobile UI is a confusing mess and very bland to be honest. There no "Wow" factor. Who thought big blocks of animated tiles taking up huge screen real-state to be a good idea? I think this is also a good example of different design philosophy with MSFT and Apple. IOS with its new update introduced folder with the goal of giving you more screen real-state so that if you have a lot of apps you don't have to keep sliding and MSFT adds huge block of tiles (and animated!) that will require you to slide around to find what you need.

It would have made an interesting showcase for concept design that car manufacturers always make, but I don't see this being much practical at all.

<comment><USER6> >In contrast Widows7 mobile UI is a confusing mess and very bland to be honest. There no "Wow" factor.

Is this just your personal preference speaking? I actually was impressed when I first saw the UI, and the article describes it as useful and functional.

<comment><USER5> Of course its my personal opinion. I don't claim to speak for everyone nor did I run any public poll. Everything I said in my comment is my own opinion from my own experience (with other mobile OS), unless otherwise stated.

<comment><USER6> Well, your tone and language were authoritative. Typically, if you aren't stating a fact you should qualify it with something like "I think".

<comment><USER5> Regardless of my tone. How can this be anything other than my opinion? Isn't it obvious that it is my opinion?

<comment><USER6> No, that's why I asked. You were stating something in direct contradiction with the article, and (going purely on prior) you probably haven't actually _used_ a WP7 phone, so the implication was that you had more than opinion behind your comment.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> There's some unfinished, but clear documentation on this page:

<http://developer.windowsphone.com/windows-phone-7/>

In particular, this PDF gives a great flavor of designing for Windows Phone 7:

<http://go.microsoft.com/?linkid=9713252>

Overall, I'm quite impressed. They've aimed at a similar target as Apple did with the original iPhone. Make it fast, clean and strip away as many features as you dare.

<comment><USER8> That would all be impressive if this was 2006, unfortunately, they are largely copying the iPhone with just a different graphic design theme. It is symptomatic of bigger problems in Microsoft's innovation lag.

<comment><USER9> Both the IPhone and Android are far from perfect devices. If MS can pull off an OS as responsive as IOS, be intuitive and simple, I could see many preferring it or at least considering it over other devices, despite less functionality. I'm not hugely familiar with the UI, but I do believe there are significant differences in the UI other than a different overlay. Also, the fact that they haven't already packed a billion features into the phone is a BIG plus in my opinion (as long as they have the essentials).

Simplicity and ease-of-use have become key in today's world.

</comment></comment></comment><comment><USER10> Interesting - I wonder why the difference exists; Engadget seems to like Win7 (though they are not ecstatic), whereas other sources seem to despise it. I wonder where the difference lies.

I do hope MS the best - the more competition we have in this sphere the better, and if the responsiveness/performance of the OS is as good as Engadget says, there will finally be some hard competition for the iPhone (Android is great, but I've yet to use one where the UI isn't sluggish, and it really detracts from the experience).

<comment><USER11> I've seen mostly favorable opinions. Gizmodo's preview was about the same as Engadget.

</comment></comment><comment><USER12> Does the color scheme (of things like the SMS app and menus) remind anyone else of CGA? [http://en.wikipedia.org/wiki/Color_Graphics_Adapter#Standard...](http://en.wikipedia.org/wiki/Color_Graphics_Adapter#Standard_graphics_modes)

<comment><USER13> Yes. And coincidentally it's the same colors as the engadget color scheme.

</comment></comment><comment><USER11> I wonder how the apps are going to play out. XNA is used for the games and there are plenty of shops out there creating for xbox. It looks like porting existing XNA games to the phone will be fairly straightforward. I'm expecting Windows Phone 7 to be a big player in handheld gaming because of XNA/Xbox.

I'm primarily a .Net/Silverlight dev myself so I'm biased but the core development experience is better than Apple/Google IMHO. They do need to get off their asses and release more controls (like the pivot) or they aren't going to have standardized UI across apps.

<comment><USER14> This is where MS can get the upper hand. If they are open enough with their app store, they can get developers there as the developer experience is going to be very good.

Its a chicken and egg thing though, most serious developers won't code for it until there is a market. Though they will get a fair few .NET developers who haven't done any Android or Objective-C iPhone stuff.

<comment><USER15> _This is where MS can get the upper hand._

Yes and no. I have to admit I hoped for the ability to install any app you like (like in former versions of WinMo). Sadly that is no longer the case.

Silverlight/XNA development is fully OK for me, but it seems a tad restricted. Especially without the ability to run Silverlight in the browser, something which really, really surprised me when I heard it (at least that's what I got told on the Windows Phone 7 developer session).

</comment></comment></comment><comment><USER16> I actually rather like that flat, fluid look. Well done Microsoft.

<comment><USER17> I get the impression it will look and feel even better in person, rather than on video.

</comment></comment><comment><USER8> Is it a surprise to anyone there is nothing awesome or especially compelling about the Win7 phone?

</comment><comment> clark-kent The 2D UI is a big risk considering the competition. iPhone 1.0 had a nice 3D feel to it. The WP7 OS seems very responsive and snappy. But the lack of wow factor might be because of the 2D UI and monochrome color scheme. It lacks depth and looks plain.

<comment><USER18> 3d is a little overrated. The most recent Ubuntu has gone with a very plain 2d look for icons and it looks very clean and polished.

<comment><USER19> And with "do this for me now" use cases, quite common for phones (such as "did someone just tell me something relevant in that message I just got" or "what was that building number again?" while walking down a street thinking about some larger goal), I find visual clarity all the more appealing. So "plain" might be just what the use cases call for. Several icons or buttons all made to be 3-d and pretty with candy-round edges and bright colors, each wanting to impress me with slickness or compete to stick in my memory better are just more distraction from that one shape or word my visual cortex is primed by the task to find.

</comment></comment></comment><comment><USER20> I have to actually play with the phone to get a clear understanding of how it works, but now it seems difficult to tell buttons from regular text

</comment><comment><USER21> I'm kinda enamored of the UI design and all that. The question is: how does one get one hands on a developer phone?

<comment><USER22> Go to the Windows Phone developer blog([http://windowsteamblog.com/windows_phone/b/wpdev/archive/201...](http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/12/windows- phone-developer-tools-beta-released.aspx)) and read all about it. They are releasing a LOT of information on this stuff.

</comment></comment><comment> saint-loup Oh god the turquoise-ish hue of the tiles is so ugly. Overall the UI experience seems neat but this color...

<comment><USER23> What makes you think the color can't be changed? There are some other pictures of it being pink -- which makes me think the color is customizeable by the user.

<comment><USER4> there are various color options for fonts/tiles/etc (green, orange, cyan, pink, red i believe and maybe 1 more) but the background is either black or white.

</comment></comment></comment><comment><USER24> I don't object to minimalism, but I think that in some places this UI is straying into 8-bit retro brutalism, for want of a better phrase.

But maybe an ultra-stripped-down UI is a good choice for the first iteration, when you have a lot of stuff to implement.</comment>


Plugless Power: the world's first wireless EV charging system - <AUTHOR> https://cityofhumans.com/plugless/#.V5aaMNjlnD8.hackernews <comment><USER2> Not the first: the EV1 used an induction paddle to charge in 1999: [https://en.wikipedia.org/wiki/Magne_Charge](https://en.wikipedia.org/wiki/Magne_Charge)

Audi did something similar 7 months ago: [http://insideevs.com/audi-wireless- charging-options-launched...](http://insideevs.com/audi-wireless-charging- options-launched-2017/)</comment>


Show HN: OctoberCMS ready to use on a terminal.com snapshot - <AUTHOR> https://terminal.com/tiny/yhucTu5eWg

<comment><AUTHOR> October is a free, open-source, self-hosted CMS platform based on the Laravel PHP Framework. You can give it a try on this snapshot, ready to use.</comment>


How Elon Musk Stole My Car - louis-paul https://www.atlantic.net/blog/how-elon-musk-ceo-of-telsa-motors-stole-my-car/ <comment><AUTHOR> > _Tesla has a strange way of communicating with customers I think is best > described as customer service vaporware. That is, they spend more time > trying to create the illusion of customer service, rather than actually > providing it. There is no mechanism for them to get feedback, as I tried to > provide, so its difficult to see how they can improve if they don't know > where they are going wrong._

Now we find out the unexpected corporate benefit of not having showrooms or physical locations by which to service clients - if they can't walk into your place of business and make a scene, just consider them a happy customer!

> _In my experience, its a hobby masquerading as a company, and it can > probably run as a hobbyist organization for some time._

This is the gut feeling I get with every over-the-top announcement by Tesla. Frequently I get down-voted here for griping about the linguistic flourishes in Tesla announcements, but I have my reasons. Sure, creating a neat innovation or clever door opening apparatus is impressive and all, and great for show, but the boring part of pulling it off reliably XX,XXX times is a totally different animal.

Also, a corporation where everybody is too on eggshells to point out that the boss lifted a customer's car and they're too scared to engage either the CEO or the customer is, for lack of a better concept, high-school-level drama lameness.

<comment><USER2> They've built over 100,000 vehicles, built out a massive nationwide charging network (plus a huge network in Europe and a decent-sized one in China), produced the best highway auto-drive system available today, and currently have the best selling car in their price segment in many areas.

Yes, clever doors and gimmicks like their new Summon feature aren't worth the hype they put into them, but that's not the only thing they're doing.

That's not a hobby company by any stretch of the imagination. Yeah, they have problems. Specifically, communications during the delivery process has always been troublesome for them, and there's no reason it should be. But that doesn't make it a "hobbyist organization." That's just silly.

I mean, GM's failed processes meant that their products spontaneously shut off and killed people, and they sat on their hands doing nothing while people were still dying, but we don't call _that_ a "hobbyist organization...."

<comment><AUTHOR> Oh I know they sell a lot of cars, I've seen hundreds if not a thousand locally since the debut.

> _That 's not a hobby company by any stretch of the imagination. Yeah, they > have problems. Specifically, communications during the delivery process has > always been troublesome for them, and there's no reason it should be. But > that doesn't make it a "hobbyist organization." That's just silly._

Based on the descriptions of the behavior of Tesla's internal customer service, it actually sounds worse than a hobbyist organization. This is personal perspective though, based on multiple professional and grunt-level jobs over the years.

> _I mean, GM 's failed processes meant that their products spontaneously shut > off and killed people, and they sat on their hands doing nothing while > people were still dying, but we don't call that a "hobbyist > organization...."_

GM is, if memory serves correctly, facing significant legal ramifications (monetary) for their bad oversight and will, presumably, be held accountable in court. Like Ford and Firestone. Or Takata. Pretty much every legacy auto manufacturer started off as a 'hobbyist organization' and after enough success and longevity, they grew into large enterprises that we know today. Can Tesla weather a GM-ignition swtich type lawsuit? Maybe, time will tell.

<comment><USER2> GM being held accountable is irrelevant here. My point is simply that large organizations we'd never call "hobbyist" do vastly more stupid things than what Tesla has done here.

I will note that Tesla _did_ just weather what could have been the equivalent of the GM ignition switch problem. They discovered a problem with the front seat belts which could have easily have been fatal in a crash. They pretty much immediately recalled every single vehicle they had on the road to inspect them. As far as I know the problem only ever existed in the one car where they found it, but they immediately took charge of the problem instead of covering their ears and trying to wish it away until they couldn't.

All kinds of companies are dysfunctional in all sorts of ways. That doesn't make it right, but I don't see how the label "hobbyist" applies just because of it.

<comment><AUTHOR> Honestly I think we're in a semantics loop of sorts. I view the Tesla auto company through the same lens as Kanye West's shoe line with Adidas. Yes, Kanye and Tesla sell as many units as they want. But, and this is a big but, neither the automotive or shoe industry are the primary field of expertise for the person at the top (Elon, Kanye) and thus can reasonably be viewed as an outsized 'hobby' until they return to their core competency. Some hobbies can be extremely profitable, no doubt.

<comment><USER2> That would put SpaceX in the "hobby" group too, which I would find to be very weird.

Heck, lots of pretty big, serious companies have CEOs whose expertise doesn't line up well with the business. That's why you delegate.

It is just about how you define the word, though. It's obviously open to a lot of interpretation, and if your interpretation is one way, I can hardly say it's wrong, even if I might say it should be a different way.

<comment><AUTHOR> Well John Carmack spent 10 good years on Armadillo Aerospace and eventually went back to his day job, so I'm still comfortable viewing certain enterprises by people with means as being 'hobbies' as a general term, insofar as if they wake up one morning and decide to do something else, they still have money, a home, and other opportunities. The IRS has some pretty interesting perspectives on 'hobbies' as well, as I've discovered over time.

<comment><USER2> I'd have no problem calling Armadillo a hobby company, they never had any paying customers (I think) and never produced anything of practical value. Not that there's anything _wrong_ with that.

I'd personally say SpaceX fit that category through the Falcon 1 days, but moved past it once they moved to the Falcon 9. YMMV.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> >"[The Tesla Owner Advisor] called me to explain he had a call in with the Office of the CEO at Tesla and was working with his team in Tesla to resolve a problem that had come up — their CEO, Elon Musk, had taken my car and was using it as his personal vehicle to test a new version of autopilot. Even worse, he said he could see all the calls I had made into the Orlando delivery center this past week, and no one was taking my calls because no one knew what to do."

The fact that a customer-facing resource is airing information about internal process screwups directly to a customer is indicative that something is very wrong with service management at Tesla; this is a bush-league customer service mistake. Not only is the customer being informed that there is a apparently a massive issue with the pipeline for delivering product to customer, but they're also indicating that there's clearly nobody enforcing ownership or accountability for reported issues.

<comment><USER4> The article I read said "(1) tesla fucked up a customer's order, then (2) tesla fucked up fixing it ten times in a row at many different levels of the organisation despite the fact a fix should have been easy, then (3) the customer insisted on an explanation and someone at tesla was honest"

I'm confused as to why you think (3) is the problem here - it seems to me that (1) and (2) are the root cause - (3) is just an embarrassing repercussion.

I mean, the customer knows there's nobody enforcing ownership or accountability for reported issues when they contact ten different people and can't get the problem resolved. It's not like inscrutable customer service would have hidden the fact the car hadn't been provided.

<comment><USER5> A support rep's main job is to put the customer at ease. The more details the customer has to contend with the more stressed out they are.

The best action here would be explain that there was an internal process issue at Tesla, apologize and then make an offer to reconcile the error.

edit: wording

<comment><USER4> It only reduces the customer's stress to hear "don't worry about it sir, I'll take care of it" if that statement is credible. If I'm being told that and I know it's bullshit, my stress level is increased, not decreased.

Once the customer is on their third call to customer service, the credibility is already lost. Unless the customer will have their car in a single digit number of days, refusing to be honest with them isn't going to help.

<comment><USER6> Customer service's job is also to make the company not look bad. If you're fully honest about something as ridiculous as the CEO not letting you have your car, and then proceeding to not answer your calls because no one knew what to do, that makes the company look terrible.

If you share that kind of knowledge, the customer might end up writing a blog post showing how incompetent the company is, and that blog post might make front page of Hacker News.

</comment></comment></comment></comment></comment><comment><USER7> Had this been "Elon took my car and told his company to give me a heavily discounted one in exchange" then presumably this article would have been filled with praise for their customer service. What a missed opportunity.

Instead of feeling like you are gambling on a potential upgrade my perception is now I'd be gambling on a potential loss / failure-to-deliver if I bought a used car from Tesla. It's only one datapoint, but it's the only data point I have.

<comment><USER8> _Had this been "Elon took my car and told his company to give me a heavily discounted one in exchange" then presumably this article would have been filled with praise for their customer service. What a missed opportunity._

Were it the case, we'd have never heard anything from this customer. Happy customers rarely make the news.

<comment><USER9> eh, REALLY HAPPY customers frequently make social media like reddit and here.

There are all sorts of stories of " _company I love_ screwed up and really came through!" Hell, apple gets all sorts of these comments when they do some out of apple care thing.

</comment></comment></comment><comment><USER10> I once ordered 100 Model S's at one time (Google it) then later took delivery of 12 Model S's at one time. Here's what I can tell you. Tesla's system for selling one new car to one person at one time is very, very good.

Tesla's system for doing anything other than one car to one person at one time is not good.

When we initially placed our 100 unit order we got 100 confirmation emails timed suspiciously as though some poor person was entering the details one at a time. Their owner's website couldn't handle 100 unique vehicles tied to one user. When we took delivery we had to go through a bunch of human processes 12 unique times. The people seemed incapable of batching tasks like signing title paperwork. We went through the routine for each car twelve times.

All of their systems are built to do one thing very well.

So this guy asked Tesla to do something it is not built to do and sell him a loaner car. And the systems broke. All of them. In Tesla systems (operational and technological) everything is built to do one thing.

Yes, it stinks that some people at Tesla acted dumbly in response to this. But overall, don't forget. People are components of a system.

There are no programs in the Tesla system to handle any of the variables this situation threw at it, starting with what the guy wanted Tesla to do.

When you deliberately ask a system to do something it isn't designed to do you shouldn't be surprised when it breaks.

</comment><comment><USER11> > Tesla is pioneering two things at once, (a) a luxury full-EV segment for > passenger vehicles, and (b) bypassing the traditional dealer network and > selling directly to consumers. Since I never got my car, I can't speak to > (a). But, because (b) is so horribly broken, I don't think (a) can succeed.

How on earth does this person's experience point to the non-dealership model being broken? Has this person never dealt with a shitty dealership?

<comment><USER2> Yeah, that's pretty weird. People experience this problem _all the time_ with dealerships: you call up and make a deal on a car, they "hold it" for you, you get there and it turns out the car you wanted "was just sold" but the dealer is happy to sell you this other one instead, which by the way is several thousand dollars more expensive.

At least with Tesla, you can be pretty sure that Elon Musk actually did take this guy's car. The dealers will just lie to you; in the scenario above, they typically never had the car in the first place.

I'm not defending what Tesla did here in any way, but this problem certainly doesn't make a case for dealers.

<comment><USER12> > you call up and make a deal on a car, they "hold it" for you, you get there > and it turns out the car you wanted "was just sold"

Although this generally doesn't happen after you stumped up thousands of dollars as a deposit.

<comment><USER2> Only because the opportunity presents itself early. I've seen plenty of stories of people getting screwed like this after putting money down too.

</comment></comment></comment></comment><comment><USER13> The best customer service 1) identifies and resolves the client's problem and then 2) tries to identify what went wrong internally and escalate appropriately.

Aligning yourself with the customer, then failing to provide a solution is a rookie move.

None of us were on the line with this customer; it's very possible he was prying for details and the CSR was trying to be accommodating with information because they weren't empowered to deliver a good solution.

</comment><comment><USER14> This needs to end with Elon Musk delivering by himself a brand-new top-model car, with him saying: _" sorry I took your car, now you'll get mine"_

</comment><comment><USER15> My father-in-law works for a Tier 2 auto supplier that works primarily with GM. Elements of this story sounded very similar to how GM operates: no callbacks, lack of empathy, passing the buck, etc.

I wonder how deep the similarities go, or if this story is just a really odd edge case.

<comment><USER16> I imagine this is an odd-edge case being that it's not a typical purchase, but a purchase of a showroom model.

<comment><USER15> Yeah, I think that's true. But it still alludes to a broken corporate culture. If nobody can call back because they can't take the bull by the horns, that tells you something. (if it is indeed a true story).

</comment></comment></comment><comment><USER17> Yikes. They should give him a better car at the agreed upon price.

<comment><USER18> If they have any customer service savvy they'll get ahead of this, public statement apologising and a much better car at the original price.

It's easily fixed if they just get ahead of it and then figure out what the hell went wrong and how to prevent it in future.

It's like that thing about Doctors getting sued less if they just apologise for screwups, shit happens and most people are understanding if you are honest about it - mealy mouthed platitudes from the "Big Book of Covering Screwups" however annoy people.

<comment><USER19> My car insurance tells me to never apologize even if it is my fault because that can be equated with admission of guilt. I imagine Doctors are told the same in regard to malpractice suits.

<comment><USER2> That's because you might _think_ you're at fault, but actually not be. Or you might truly be at fault, but in a way that can't be proven. And there might be a huge amount of money at stake, if someone is injured and requires extensive medical treatment.

None of that applies here. Tesla is clearly at fault, actual damages are basically zero (the guy got his money back, at least), and making it right will be pretty cheap, if Tesla actually decides to do so.

<comment><USER19> I don't disagree with you; my response was to parent's comment about doctors who apologize.

<comment><USER2> I see, I didn't quite connect the dots there. Well, if anybody cares about why I think insurance companies might say that, there it is....

</comment></comment></comment></comment></comment></comment><comment><USER20> This is an interesting anecdote about an extremely unlikely scenario, and one that hopefully you could laugh off if you're in a position to spend $100k on a luxury car.

<comment><USER21> I think most people in a position to spend $100k on a luxury car would not laugh off a breach of contract worth approximately $20k.

<comment><USER20> I would rather be able to say "Elon Musk stole my Tesla" than "I paid $100k for a luxury car". But then, I am not in a position to say either of those things, so perhaps my perspective would change.

</comment></comment></comment><comment><USER22> Seems silly to chalk Tesla up to a "hobby masquerading as a company" based on a single interaction buying (or trying to buy) a vehicle that is not even sold as part of their typical sales and delivery channel. What would this person's experience had been if they weren't seeking a special discount deal and just ordered one normally?

The only concerning part in the article is the explanation by Kevin that the reason he couldn't get through to anyone wasn't because no one was available, but rather that they saw him calling and refused to answer because they didn't want to deal with him.

</comment><comment><USER23> You probably had case for a lawsuit, but not worth the effort. You story probably lost more business for Telsa than they would have paid you damages. (Maybe they'll sue you for libel)

<comment><USER24> It likely that this article put whoever told him Elon was driving the car around in some hot water. I would not want to be that guy when Elon reads the headlines. I am not saying Elon is vindictive or anything just that it would be a uncomfortable position to be in. It's likely he thought the buyer would think it was neat that Elon was driving around in the same car he was going to get... if so he was wrong.

<comment><USER25> Why would he think it was neat that Elon had driven his car? If I was buying a used car I'd be annoyed that someone else was adding extra mileage to the car I'd purchased.

<comment><USER24> I don't know. I would think it was kinda neat because I got alot of respect for Elon but I would also kinda wonder about the extra mileage.

EDIT: Message to the down voters I am not saying its rational that I think it would be kinda neat. I am just honest enough with myself to recognize that I am not a purely logical beast.

</comment></comment></comment></comment><comment><USER26> While many bemoan the dealership models it is a dealership I once used to get something done when all else seem to fail. There are far more good ones than bad and big companies can effectively and afford to ignore a single consumer, even a vocal one. So while there are some benefits of dealing directly with a manufacturer it can also be insane at time how tone deaf they can be. Dealers suffer this at times too but larger ones know the game and better yet know the people to call. I had a North American rep calling me direct on my issue and it was resolved.

Once Tesla ever moves into a large volume car I don't see how they will keep up the image they portray. Its not that simple. Whats worse here is that they have people who saw what was going on and it wasn't run up the flagpole fast instead they tried to up sell the customer!!! Get real guys.

</comment><comment><USER27> TIL even millionaires look for discounts on Teslas.

What Tesla did wasn't right but very hard to have a pity-party for Marty Puranik.

<comment><USER28> > TIL even millionaires look for discounts on Teslas.

Read the "Millionaire next door". The vast majority of millionaires in the US are just slightly above-average income folk who live below their income and save appropriately.

If anything, the typical millionaire will look for discounts everywhere. On the other hand, the "millionaire next door" doesn't buy Teslas, but instead buys used cars.

<comment><USER27> Marty is not a "slightly above-average income folk".

Started and ran a large dial-up ISP in the 90s and adapted it into a full blown hosting company when dial-up went away the next decade.

He's on a few "lists" of successful people and extremely well off which is why it is strange to see someone like that shopping for what had to be only a moderate discount on a used Tesla.

Again, none of this excuses what Tesla did, I just find his shopping habits to be a little strange in his bracket.

The unlikely day I have that kind of money, the first thing I do is visit a Tesla location and order a Model X

<comment><USER28> How do you think Marty got his business chops?

Successful business people are __always __working to get a discount, more mileage for your money, etc. etc. Whether they are "working" or "leisure", they invest, haggle, look for discounts, and everything.

Living successfully is partially a lifestyle choice. If you live it up and party like you're a millionaire, you end up broke like the tons of Hollywood celebrities or lottery winners who don't know how to manage cash. The vast majority of millionaires are humble people who live below their means for their whole life.

In part, because humble people who live below their means tend to be good business owners. Having a solid grasp on the value of money is invaluable. That part of his brain doesn't "turn off" because he's buying a car. If anything, its working harder.

</comment></comment></comment></comment><comment><USER29> That is a really weird experience. That being said one weird experience doesn't mean a system is "horribly broken." You got into a weird hole, but how many of these problems can really come up.

</comment><comment><USER30> These problems suggest more to me about the immaturity of Tesla's Inventory Car channel than about its customer support in general. There may be one person spending 20% of his time on the loaner car sales channel at Tesla.

</comment><comment><USER31> Pretty amazing how organizational incompetence took what could have been a minor inconvenience or even a positive (your car gets driven by Elon for 50-100km is probably a plus, if it is already used) to a pissed off customer.

Otoh, I'd far prefer a company screw over a rich guy who is the very definition of an equal party to contract/informed consumer. The "buy here pay here" used car dealers catering to poor, relatively uninformed, and powerless consumers do things far worse than this as routine business practice.

</comment><comment><USER32> You don't need the dual charger.

Source: Owner of a non-dual-charger who has literally never missed it. I charge at 30mi/hr off a 220v dryer connection in my garage, what's not to like?

</comment><comment><USER33> I wonder if Elon will respond with reasons given what happened to the New York times guy: [https://www.teslamotors.com/blog/most-peculiar-test- drive](https://www.teslamotors.com/blog/most-peculiar-test-drive)

Of course I have doubts the reporter was accurate but I do believe this guys complaint sounds legit.

</comment><comment><USER34> I was thinking about buying a (edit: new) Tesla recently, and my main concern was that one might have a difficult experience receiving the car after paying a deposit well in advance.

Tesla - if you're reading this, this guy's experience has convinced me; I won't be considering buying a Tesla again until you can buy one and drive off with it that day.

<comment><USER35> >I won't be considering buying a Tesla again until you can buy one and drive off with it that day.

Do you really want this? If this were true, you would be buying a car that x number of people have test driven. It will come with 100+km on the odometer already. If I'm spending $100k on a car, I'd rather a brand new vehicle that was driven onto the truck, and off of the truck and by no one else.

<comment><USER36> Why wouldn't they have a test-drive fleet (like they currently have) and keep the plastic on the new cars?

<comment><USER35> Then they would have to keep stock at the 'dealerships'. They will soon have 3 models, with various configurations. Allowing enough selection for someone to "drive off that day" with a car would require expansion of the dealerships.

</comment></comment></comment></comment><comment><USER37> I'm still waiting to hear if: 1\. This story is verified legitimate and then if so 2\. Where's Tesla's response?

</comment><comment><USER38> Reading this made it feel like everyone at Tesla is afraid of Elon Musk, which hopefully is not the case. Not being able to talk honestly to a CEO (or anyone) is how things fester.

<comment><USER39> Pretty sure most people at Tesla/SpaceX ARE afraid of Elon. Especially if you have MBA :), which most senior people in a sales organization probably have.

</comment></comment><comment><USER40> Has the OP tried to reach out to Tesla / Elon Musk on Twitter at all? I don't know other channels, but Elon Mush is Twitter A LOT!

</comment><comment><USER41> This sounds like a completely innocent foulup (Musk taking the car, probably without checking if it was sold) that was then handled in just the worst way possible and snowballed into a ridiculous saga.

You cannot just NOT ANSWER a customer when you don't know what to do. You take it to your superior, who takes it to theirs, who takes it to theirs. Simply not answering the phone and hoping this guy would just be ok with losing 4 thousand dollars is certifiably insane, and whoever decided that should be the course of action should be fired. That is NOT how you handle a customer.

At the very least he should've been offered either the car as is with a discount, or a similar model for the same price. I'm sure he would've been happy with either option, but the Tesla customer service staff utterly failed him.

The existence of a sales channel is utterly irrelevant. He contracted with the sales rep to buy THAT car at THAT price, that's what was agreed and Tesla did not deliver. THEY need to make it work, not him.

</comment><comment><USER42> Lol, guy angling for a free car.

Sorry your discount scheme didn't work out. Pay retail like the majority of the retail public.

<comment><USER43> I'm sorry your comment is being buried, because I think you do bring up a good point. This was not the usual Tesla process for purchases. The author wanted an "inventory" car at a discount. Now because Tesla offers this option, they are responsible for fulfilling the process, and the author's concerns do seem valid. However, this is not the usual process for purchasing a Tesla, so it's likely that this is not the usual experience for the "full retail" customers.

The CEO taking your car from the "inventory Tesla purchase program" is an edge case of an edge case, so it makes sense that nobody knew what to do. The process still needs to be fixed though.

<comment><USER44> This isn't a special process. "Buy New Today", "Buy Pre-Owned Today" (which is where the showroom models are) and "Custom Order" are in the same top-level menu on Tesla's website, which is where you buy their cars, whether you're at home or in a showroom at their computer. Whichever you click, you choose a car, make a deposit right there, and are given an order confirmation and an account. It's the same process, and you have the same "full retail experience", no matter which of the three pages you started your order at. He even included screenshots of his account in the "My Tesla" portal, just like any other customer that ordered a car from them.

<comment><USER43> While the "Buy Pre-Owned Today" option is given equal weight on the website, I specifically am referring to what happens on the back end. When you buy new, a new car is configured to your liking. I have to imagine Tesla's fulfillment operations are arranged primarily around this case (take new "shell" car, install customer-selected options, deliver to customer).

It's the same process only in what the customer sees. And I'll agree that the customer should get a similar experience from a similar process. Tesla seems to have failed in this case. However, it's clearly not the same process on Tesla's end. Selling an inventory car is a subset of the pre-owned car sales process, and selling a specific inventory car that was somehow (erroneously?) available for R&D is a very specific case. Has the car been made road ready? Have they removed any beta features that are not for the public?

This is a special process. However, since Tesla offers the option, it is their responsibility to ensure they can deliver.

</comment></comment></comment></comment><comment><USER45> #firstworldproblems

</comment><comment><USER46> The only way that I can see this made right is that the guy gets a _free_ Tesla and lifetime-of-the-car free support and repairs on it. Inexcusable.

</comment><comment><USER47> This is _not_ the The Atlantic that you've heard of.

And i smell a rat. Has anyone else who has purchased a Tesla had even half as many issues? I think this guy just worked things until he got some sales schmuck to make him an offer too good to be true, and then it was. (Note the several weeks to find a car. If Tesla sales are always months of back and forth they have serious problems.)

<comment><USER48>
       Has anyone else who has purchased a Tesla had even half as many issues?

Well, I would hope Elon doesn't use already sold cars as prototype test vehicles on a weekly basis.

</comment></comment><comment><USER49> I read this as: "I tried to save money and it backfired."

They have actual sales channels with real support, by sidestepping that and your stuck in weird internal processes.

IMO, paying full price and just buying fewer things massively simplifies most processes.

PS: That's not to say Tesla did a good job. Just that edge cases are often fragile and it's a good idea to weigh your time vs. the actual savings.

<comment><USER44> The showroom inventory is an actual sales channel. It's not some back channel insider process.

It's behind the "Buy Pre-Owned Today" link on Tesla's public website.

[https://www.teslamotors.com/models/preowned](https://www.teslamotors.com/models/preowned)

The site has one top-level menu where you can choose new, pre-owned or custom to start your order. Everyone's in the same system.

<comment><USER49> There is generally a big internal difference between cars that are used by a customer and cars used by the company.

Dealerships often deal with this for their internal loaner cars used when someone is getting repairs vs. there normal inventory. He was buying a car that was likely at a transmission point where the company was still using it but it had entered there sales channel early.

</comment></comment></comment><comment><USER50> I can understand being frustrated about being given the run-around when you have deposited $4k for a really expensive car but I think this guy(Marty) is an asshole:

1\. He posted this on his company blog. Not a personal blog, not medium but on a company blog. I think he's hoping to get some business from the exposure. I'd be planning to leave a company quickly if my boss posts personal rants that are not business related on the company blog.

2\. He outed the one rep that told him the truth. He gave the date and the name of the rep that told him Elon was driving the car. Why would you do that?? Perhaps the reason why the other reps kept mum was because they knew Marty was a difficult customer.

3\. He goes on about having a new baby, about how his electrician was calling to install some power-ups in his garage. These things are not relevant to the story. Simply tell your electrician the car has not arrived yet.

He also mentions that "In 21 years as a founder/CEO of my own company, dealing with Tesla has been the most bizarre and strange experience I've had interacting with another organization"

That simply cannot be true.

Bottom line: Marty thinks the world revolves around him and is really upset Elon doesn't care about him.

<comment><USER51> Power-ups in the garage... for charging his Tesla? Sounds relevant.</comment></comment>