Tesla outsells Porsche, Jaguar, others in California - <AUTHOR> http://www.usatoday.com/story/money/cars/2013/08/26/tesla-models-s-porsche-jaguar-california/2700289/ <comment><USER2> The title may be literally true, but is very misleading.

Many of the sales booked to Tesla in California are intended for buyers in other states that lack a Tesla dealership (but do have Porsche and Jaguar dealerships).

<comment><USER3> The article refers to "registrations" in CA. Presumably Teslas sold to out-of- state buyers do not count towards that number.

Anecdotally, whenever I am in the Brentwood/Santa Monica/other nice areas of West LA, Tesla sightings are getting very common. It's like the next Prius around here.

<comment> hippee-lee I'm up in Westlake Village and it's almost daily. My first grade daughter points them out to me ( I talk to her about cool logos and over such things ).

She will say, "Daddy theres a Tesla logo. " I'll say, "Where and what color." Immediately followed by, " Oh yeah, right you are. Good eye."

</comment></comment></comment><comment><USER4> Old discussion: [https://news.ycombinator.com/item?id=6267478](https://news.ycombinator.com/item?id=6267478)

Top two comments were:

"Is anyone else tired of tesla PR and seeing 2 tesla articles here everyday?"

and

"Are these sales to Californians, or does this include sales made in California and delivered to another state because of the dealership issue?"

<comment><USER5> The article states the numbers are "based on new-vehicle registrations.", which would suggest they are not inflated by out-of-state purchases.

</comment></comment><comment><USER6> I am totally in the Tesla camp, but to play devil's advocate, isn't profitability the real important number here? Tesla just became profitable, but Porsche is the most profitable car company ([http://www.dw.de/porsche- emerges-as-worlds-most-profitable-c...](http://www.dw.de/porsche-emerges-as- worlds-most-profitable-carmaker/a-16727077))

<comment><USER7> I'm surprised they are making ~$22 per unit.. I didn't realize car margins were so low. Unless that article means $22,000

<comment><USER8> The European convention is to use dots in large numbers where Americans use commas. So yes, that's $22000

</comment></comment></comment><comment><USER9> This may be the quiet beginning of a revolution. A shift in not only the public perception of all-electric/non-petroleum vehicles, but also in their availability and affordability.

<comment><USER10> Affordability and availability ? This is silly.

Tesla is making electric cars that rich people would actually buy. Not low-end electric cars for the masses.

<comment><USER11> Tesla often cites that it started out in the luxury car market to recoup R&D costs and entry costs (getting their first factory, etc.), and have mentioned multiple times that they're planning on building a ~30k car within the next 5 years or so ([http://www.digitaltrends.com/cars/tesla-to-introduce- new-300...](http://www.digitaltrends.com/cars/tesla-to-introduce- new-30000-compact-sedan-as-electric-car-company-expands-its-charging- network/)). So no, this is not silly.

<comment><USER12> The problem is that once you get down to ~$30k pure electric car, you're going to end up something that looks like the Nissan Leaf, even 5 years from now. There is no magical Tesla dust that allows them to circumvent the laws of physics and economics.

The problem is in the batteries - Tesla Model S batteries come in 60 and 85 kWhr capacities. Using the most generous specific energy estimates and the price estimates (265 Whr/kg and 2.5 Whr/US$ - [http://en.wikipedia.org/wiki/Lithium- ion_battery](http://en.wikipedia.org/wiki/Lithium-ion_battery)), you're looking at 500 to 700 lb of extra weight and $24k~$32k due to batteries alone. Even if the price halves in 5 years, you can't make money spending up to half the price of the car in batteries alone.

As a premium car, Tesla can charge the extra money required for the large battery pack and things like all aluminum chassis in Model S. At the lowered price point, the revenue just is not there to justify these things.

This basically means that to hit the $30k price point, you're going to end up with a much smaller battery pack (like Leaf's 24kWhr battery pack) and much smaller car so that they can hit the (lowered) performance target in both the driving characteristics (acceleration, top speed, etc which depend greatly on curb weight) and range (weight and battery capacity).

If you look at the engineering trade-offs required to get to $30k pure electric car in 5 year timeframe, it's hard to imagine something drastically different from Nissan Leaf in range, size, and driving characteristics.

<comment><USER11> I think what you're saying is unnecessarily pessimistic. Lots of things evolve quickly in a period of 5 years in technology. If Tesla claims it will develop a $30k consumer car, I'd say they probably know what they're talking about, and they'll probably build it with quality. I mean, what's the point of going this far, if Musk just wants to piss away all of his credibility by making a crappy $30k electric car? If you want to guesstimate costs and hack them together, we can do this all day, but I'd say the only way to tell is to wait and see.

TL;DR - it's hard to make claims to the quality the next Tesla car without having any idea of what they're going to do.

<comment><USER12> I worked on electric vehicle space in early 2000s - there are many improvements for sure since then, but in the battery technology, not much has changed. 10 years ago, top of the line 18650 Li-Ion cell (same ones used in laptops and the Model S) weighed 46g, had capacities of 2.6Ahr, and cost about $10 a pop. Now, it weighs the same but have capacities of about 3.4Ahr and cost about $5. 30% improvement and half the cost is nothing to laugh at, but that also took 10 whole years!

The biggest problem with batteries is that they're chemistry-bound - you don't get the free twice-every-2-years type of thing that we're used to in computing world.

Even with the Nissan Leaf type of vehicle, the growth in battery capacity and more efficient / lighter chassis may result in extension of range to, say, 150 miles from 100 miles by 2018. Will that make it a no-compromise electric car? What would the no-compromise range be?

Looking at what Tesla has done, and what Elon has said (who actually very carefully said "sort of affordable" \- [http://greenenergyholding.blogspot.com/2013/08/teslas- next-e...](http://greenenergyholding.blogspot.com/2013/08/teslas-next- electric-car.html)) what's more likely is a new model starting at, say, $40k ($30k after tax credits) with fairly limited range, with really usable range starting at around $50k. Is that affordable? Probably not. But probably does fit the label of "sort of affordable".

</comment></comment></comment></comment></comment></comment><comment><USER13> The most interesting part of this article to me is that the Ford F-Series pickup truck is the nation's top selling automobile.

It makes sense now, but it wouldn't have been my first guess.

<comment><USER14> To showcase Brazil crazy taxes: on our local eBay clone, a new F truck costs 250k USD Oo

<comment><USER15> At that point it probably starts to make sense to find "some guys" down at the docks that can help you with some shipping containers...

</comment></comment></comment><comment><USER16> Shameless copy/paste of my comment from the earlier article:

My problem with the rah-rah around Tesla is that, good as they might be compared to the status-quo, they are still cars. There's not enough attention paid to the fact that cars and the sedentary lifestyle they encourage are a net-negative for most people. Many of the folks I talk to who'd like to move to an active form of transportation don't because they are scared of being hit by a car. We've effectively ceded huge swaths of public space to single occupancy vehicles, and made it off limits to humans. This is bad for the health of the people in those cars, but also bad for everyone else.

<comment><USER17> So, your opinion is that we should ban cars from highways so people can use bicycles to go to work?

BTW, I call bullshit on "folks" you talked to - if one _really_ wants to "move to active form of transportation" one just do it. Instead of sitting in the car and complaining how life isn't fair.

<comment><USER18> You seem to have ignored the main point of the OP you're responding to.

It is not SAFE to be on a bike on a public road. Do you read the news and notice how almost every week you hear of a bicyclist being hit and/or killed?

I for one do not ride my bike to school because I do not feel SAFE, no matter if I wear a helmet, pads and armor.

</comment></comment></comment><comment><USER19> This seems like an unfair comparison. While people buy new Porsches and Jaguars when they need them I think a lot of people have been buying Tesla because of the novelty.

This doesn't make this any less impressive, but I am not sure that it is fair to make the comparison of a company which needs to generate novelty year after year (like Jaguar and Porsche) with an entirely novel company (like Tesla).

If Tesla was putting out yearly models than this would be much more news.

<comment><USER20> >> While people buy new Porsches and Jaguars when they need them

....meeeeh, nobody really neeeeds a Porsche, they just buy them for the novelty (of sportiness) one could say. I think a Tesla in certain areas (anywhere near a big city) could make a much more practical purchase than a Porsche...

edit: Also, 60k ain't what it used to be. Heck, you'll pay that for a 3-series BMW these days (335i).

</comment></comment><comment><USER21> Tesla offers something these other luxury manufacturers can't: access to California's HOV lanes without meeting the occupancy requirement.

</comment><comment><USER22> We already had an arstechnica article about the same news here:

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

</comment><comment><USER23> If the government gave money to buyers of Porsches like they do for buyers of Teslas these number might be different.

Or better yet, stop taking my tax dollars and giving them to rich people to buy a luxury electric vehicle.

</comment><comment><USER24> is it fair to compare Tesla sales to Porsche, Jaguar ? aren't these from a different class ?

<comment><USER25> Porsche and Jaguar both sell very direct competitors to Tesla. Which makes it even more impressive that Tesla's one model is outselling those brand's in their entirety.

<comment><USER26> It will be more impressive if Tesla sustains the lead. Auto sales are very "bursty", with huge jumps at the first offering of a new model, and the Tesla S is not only a new model, but the _first_ viable electric in its class. So I expect the levels of demand we see (in its class) today, like the surges of floodwaters, are the highest they will be and will dwindle from here.

</comment></comment></comment><comment><USER27> Still kicking myself for selling my stock at $90.

<comment><USER28> Still kicking myself for not buying the stock when it was $27 :)

<comment><USER29> If you want to kick yourself for not buying anything, which is not a wise thing to do considering there's always something growing faster than you'd expect, kick yourself for not buying TSLA options, not the stock. That's where the real money was.</comment></comment></comment>


Julian Assange answers some of the questions raised in a HN thread [video] - <AUTHOR> http://www.colbertnation.com/the-colbert-report-videos/270712/april-12-2010/julian-assange

<comment><AUTHOR> To get to the interesting part, please skip to around 2:55. Although it is on a comedy show, there are very serious questions being asked.

I am mainly talking about this thread (especially the first comment): <http://news.ycombinator.com/item?id=1243842>

</comment><comment><USER2> the unedited version: [http://www.colbertnation.com/the-colbert-report- videos/26078...](http://www.colbertnation.com/the-colbert-report- videos/260785/april-12-2010/exclusives---julian-assange-unedited-interview)</comment>


Microsoft Inherits Sticky Data Collection Issues From Skype - <AUTHOR> http://www.nytimes.com/2013/02/25/technology/microsoft-inherits-sticky-data-collection-issues-from-skype.html?src=recg

<comment><USER2> This article makes it sound as if having P2P encrypted communications that Microsoft can't log is an "issue".

But I don't really buy this anyway. Hasn't Microsoft tried to build more "supernodes" to do just that? I don't think Skype calls are as P2P as they were 5 years ago. If it's P2P how do they preserve the offline chats?

I also don't understand what this means:

 _"According to Microsoft's published privacy policy, three types of information are generated by Skype: personally identifiable information on users; nonidentifiable information; and the actual contents of Skype-to-Skype audio and video conversations."_

Does that mean they log audio and video conversations?!

</comment><comment><AUTHOR> _"including its billions of encrypted, peer-to-peer Internet conversations."_

And why on earth would Skype need to keep the conversations on a backup tape long after the conversation is over? Shouldn't they be erased from everywhere (Skype and peer-to-peer hosts) once the call is ended?</comment>


Show HN: Automatically block people in images using a pretrained neural network - <AUTHOR> https://github.com/minimaxir/person-blocker <comment><USER2> In some cases the shape is too small and left a few pixels around the person, or it has corners that are too sharp. Is it possible to add an option to enlarge the shape a few pixels?

[Bonus points for another option to make soft shadows near the border of the shape, so it is not so sharp.]</comment>


Show HN: New Music Release Tracker - <AUTHOR> http://therthm.com/releases <comment><AUTHOR> I was getting frustrated with AllMusic, Metacritic and Spotify excluding new music releases, or giving wrong dates for new music. So I built something for my friend and I to use for finding new releases.

It uses MusicBrainz for the data and then cross references Spotify and Bandcamp for links, album artwork and genre data. Built on Django. It was a fun little side project that I use every week now.</comment>


Things to consider before moving to Europe as a developer - <AUTHOR> https://relocateme.eu/blog/what-to-consider-when-choosing-your-next-work-destination-in-europe/?hackernews <comment><USER2> Tl;dr: knowing a language of a country is a plus when relocating; weather varies between countries; your expenses depend on your lifestyle and some countries are more expensive than the others.</comment>


Programmer/Designer Bartering of Services? - <AUTHOR>

I'm a Rails engineer by day, wanna-be-entrepreneur by night.  I have a subscription site that I have maintained for years that is desperately in need of aesthetic redesign. It doesn't make much money (never has) but I am fond of it, so I'd like to keep maintaining it.
If there was a designer out there:
1) That needed development work done and 2) That can produce an html/css mockup for their requested feature set and 3) Can outline in detail the specific features they'd need me to implement and
4) Their features were similar in scope for the effort needed to redesign my site,
then I'd be willing to do some development work in exchange for design work.
Any ideas as to where I could search for this type of arrangement? <comment><USER2> I'm actually in a similar position - I work for a company by day as a developer, work on ideas for myself by night, but my design skills are fairly lacking and ideally looking for someone that can help out with a 1-2 page landing site to gauge interest in my current project - any suggestions for where or how to look would be great

</comment><comment><USER3> Someone posted this here some time ago, looks like a great resource: <http://hackerbuddy.com/> Otherwise, maybe we could get in touch? I'm working on something with an open-source CMS but it's lacking a few features and i'm mostly a graphic guy. i'd be happy to discuss

<comment><AUTHOR> Sounds great. You can email me at firstname.lastname@example.com. The site I'd like to redesign is <http://www.runfatboy.net>

</comment></comment><comment><USER4> Email me at email@example.com

My portfolio is at madebyargon.com</comment>


Ask HN: How do you scale with ActiveAdmin - <AUTHOR> https://github.com/activeadmin/activeadmin <comment><AUTHOR> We are using ActiveAdmin to manage our backoffice since few years, but we are facing some issue, especially in dev env, where the more you have models, the slower will be hot reloading of the code. Before considering to kill it to create a new backoffice in our rails app from scratch, I wonder if some HN people faced these issue and found some best practice to put AA at scale.</comment>


Scala Feels like EJB 2  - <AUTHOR> http://blog.joda.org/2011/11/scala-feels-like-ejb-2-and-other.html <comment><USER2> Scala's great, if you have a gorgeous Haskell program and you want to port it to the JVM. Unfortunately, by itself, that may be a niche market.

If you want a dynamic language, you have lots of great choices. If you want powerful syntactic abstractions, you have Clojure, Lisp or Racket. You can win big with any of these tools.

But some problems benefit from powerful _mathematical_ abstractions, and that's where Haskell and Scala start to shine. For example, if you need to do Bayesian filtering, you can bury all the math in a monad, and make Bayes' rule as easy as an 'if' statement. (I've got a blog post for the curious: [http://www.randomhacks.net/articles/2007/02/22/bayes-rule- an...](http://www.randomhacks.net/articles/2007/02/22/bayes-rule-and-drug- tests) ) And when your library designs start involving generalizations of linear algebra, even Ruby-lovers may learn to appreciate a strong type system.

But this raises the real question: How useful is Scala if you _don't_ need to do functional programming with a strong type system? Most people don't, at least today, and the jury's still out on whether it will ever be mainstream. Certainly, some smaller companies will use Scala and win big in specialized domains. But if Java hackers want to claim that Scala's an inappropriate tool for their jobs, who am I to argue? I write far more Ruby than Haskell, because I encounter lots of work that's well-suited to Ruby. (Of course, there's also Akka and a lot of other useful Scala features, which may appeal to people who don't need FP.)

So if Scala becomes seriously popular, I'll be delighted. But a large fraction of Scala's complexity is devoted to niche use cases, and that may make some people unhappy if they're merely looking for a "better Java".

<comment><USER3> > How useful is Scala if you don't need to do functional programming with a > strong type system?

Functional programming with a strong type system, IMO, has much wider applicability than just the esoteric mathematical abstractions (e.g. Haskell/scalaz) that you're asserting is a niche for Scala.

I can think of many non-scalaz uses of Scala, but even for non-Scala uses, look at Jane Street's evangelism of OCaml (functional + strong type system) for financial systems.

(Note that, personally, while I like the benefits of FP, I admittedly still think in/like aspects of OO, even if just out of habit, so I find Scala's blend particularly nice.)

<comment><USER4> I think the issue is not that there aren't applications, it's that people just aren't used to looking for them. As an example, let's think of classical geometry. They figured out the area of circles, the volumes of cones, etc without any calculus. If you know the tricks you can figure it out too, or you can just apply a little calculus and it just falls out. I feel that people dismiss the math as unnecessary because they can get by without it, but in reality the math is always there and sometimes provides much simpler solutions.

I've found over the last few years that my thinking has morphed from primarily OO to primarily functional. It isn't for lack of writing OO code, which I do professionally. I find that my brain loves to think in terms of functional transformations on classes of data types.

Suddenly I find myself noticing when things should be expressed as a monad or monoid. I also find myself thinking in type signatures for dynamic languages and silently cursing the language designer who decided a function can return null without warning. I see patterns in my code and find myself wishing I could overload the semi-colon to implement monadic behavior.

</comment></comment></comment><comment><USER5> A few things about this post.

firstly it is never good when you start out a discussion by saying now I know people will disagree but thats because their bigoted zelots. Its kind of disingenuous to attempt to post a technical dissent filled with personal opinion and preface it with that kind of clause inevitability allowing you to label any dissent as "See those scala zelots are at it again"

That being said this is an article that attempts to raise technical problems with scala but really just list a few of the authors own personal gripes with the language. In order here are his complaints

1\. Scala doesn't have a rigid versioned module system 2\. The functional way of doing concurrency isn't how I like to do concurrency 3\. The scala community isn't helpful enough for me 4\. The type system is too powerfull 5\. The syntax is too flexable 6\. There aren't enough tests in the compiler test suite

Its alot of the same thing I have seen when people try to list "The" problems with the language and not "Their" problems with the language. Technically there is only one argument that could even hold water thats about the module system . Which if he really needs a module system for his work then that is a technical limitation of the language and he might consider using a better tool for his job. The rest of it however is just nonsense and personal opinion pretending to be technical dissent.

<comment><USER6> Steve's remarks on concurrency seem a totally fair observation to me, don't a large number of functional languages deal with concurrency through immutability and support that at the language level - I can think of Clojure, Erlang, Haskell, F# for example. The fact that it was possible to send a mutable message to a Scala actor made me extremely suspicious when I first used the language.

<comment><USER7> It's a relatively well acknowledged fact in the community that Scala's builtin actors are heavily flawed. This is why many of us switched to using Akka.

It is also why there are currently plans to integrate Akka actors into the language itself, replacing the builtins.

He does acknowledge that "It could become EJB3" which is a far sight better. But the tone of the rest of his post genuinely seems in conflict with this sentiment.

Another big piece of Scala which makes it a tremendous win over using say, Erlang, Haskell or F#, is that it integrates well with existing Java code. Many shop have been able to do new development in Scala while keeping and leveraging their existing legacy Java codebase. Something that wouldn't be properly available from these other Non-JVM languages.

Clojure of course is JVM based as well; however I'm not as familiar with it and I'll admit I don't know how well it does or does not work with existing Java Code. I do know that a few MongoDB + Clojure driver authors have had issues w/ certain aspects of our Java driver in wrapping it which seemed rather trivial. Not an indictment of Clojure, just the only view of Java compatability I've seen which anecdotally leads me to believe Scala has stronger integration.

Finally, I can't agree enough on the need for modules. It really is a major pain point... but I'm not sure it's one that we can easily fix at this point. I'd still love to see us (The Scala Community) try, however.

<comment><USER6> My personal experience in wrapping non-trivial Java libraries in Scala and Clojure is that with Clojure it usually just works and it works quickly. In Scala I am usually reduced to an extra hour or two of adding manifests to signatures until the compiler accepts it.

I am disappointed with Scala and having lived through EJB 1, EJB 2 and then onto Spring and EJB 3, I agree with Steve it makes me feel exactly the same as I felt about EJB 1 and EJB 2 - that is I am being sold overcomplicated technology as a panacea. I want a powerful language with a simple syntax, for example Lisp, ML or Haskell, not a powerful language with a complicated syntax like C++. Does Scala really want to be known as Java++?

I think the criticism of implicits is valid and should be addressed by the scala community, it is a frequent occurrence for me to be left scratching my head when reading code because something is bringing in an implicit declaration unbeknownst to me.

Also one complaint not made by Steve is compile times, reasonable in SBT, unreasonable using the typical build tool used in legacy Java projects.

</comment></comment></comment></comment><comment><USER8> I've been picking up Scala on-and-off for the past few months. "Programming in Scala: Second Edition" is one of the best tech books I've ever read. The authors assume you already know how to program, offer mutable & immutable approaches to nearly everything, anticipate esoteric questions in the footnotes, and even have a good sense of humor.

The book also weighs in at 883 pages and I was astonished how much of it I needed to read to even get started. Once I did, I very much like what I saw. But I was a big fan of ML back in grad school.

I do share some of the blog author's gripes though. Most of the popular Scala libraries are just a mess of DSL operators that have no real world association. I'm constantly having to look up what an operator means. I still have no clue how to use the Dispatch library, since the concepts it encapsulates are about 400 pages deeper into the book than I'm currently at. This, just to issue an HTTP GET request. I really thought there might be something on the lines of Ruby's rest-client library.

Additionally, my issues with versioning occur at a much simpler level. The release notes of any given Scala release are devoid of anything useful. Usually it's just a list of JIRA issue numbers (not the issue titles). And then there was this whole debacle around 126.96.36.199 and how SBT called the version. That took me 4 hours longer to work than was really necessary.

So, anyway, I do have some Scala projects. Incidentally they're all Java interop because I just can't wrap my head around how to use most of the Scala- specific libraries. But I've found it works really well in those situations. Deep down I really do like the language. The Scala ecosystem leaves a lot to be desired, but fortunately I can pull in stuff from elsewhere on the JVM.

<comment><USER9> Many people, including experienced Scala developers (e.g. me), find Dispatch hard to use. The BlueEyes HTTP Client is much simpler:

       val client = new HttpClientXLightWeb
       client.host("somesite.com").get[ByteChunk]("/some/url")

That, plus some imports, is all you need

<comment><USER8> Thanks. I ended up using scalaj-http, which was much simpler. But it took me a few days to find it. Dispatch does very well SEO-wise for Scala HTTP. The only other option I had come across was using http-client.

Have any good recommendations for JSON parsers? This was another case where I found the common libraries to be rather obtuse.

<comment><USER9> I use BlueEyes here (I'm a big fan of BlueEyes). It's JSON library is based on Lift-JSON. Lift-JSON is fairly commonly used, so perhaps you've run across it already. It's actually fairly simple to use and is one of the few parts of Lift that has decent documentation:

[https://github.com/lift/lift/tree/master/framework/lift- base...](https://github.com/lift/lift/tree/master/framework/lift-base/lift- json/)

Here's a summary:

The JSON AST is pretty straightforward. The JSON DSL works like this:

\- A tuple ("key", value) constructs a key/value pair

\- ~ joins them together to construct an object

E.g. ("foo", 1) ~ ("bar", "Hi") = {"foo": 1, "bar": "Hi"}

I never actually invoke the parser myself. BlueEyes does it if you change the ByteChunk is my example above to JValue.

Drop me an email (noel at untyped dot com) or tweet (@noelwelsh) or IM or Skype or whatever if you want to discuss more.

Alternatively, I've never used Coda Hale's Jerkson package, but I expect it is of high quality.

</comment></comment></comment></comment><comment><USER10> Most of the comments here talk about how whatever useful can be done in Scala can be done in some other language. That is not the point, Scala is a good language because

\- Compatible with JVM

\- Strong type system

      - Linear Typing

      - Substructal Types

      - Local Type inference

\- Concurrency constructs built in as actors (Akka)

\- Integration of OO and functional paradigms

\- Supports Higher Order Programming

\- defn-site Variance based Parametric Polymorphism

\- Mixin Class Composition for finer grain reuse

\- Traits provide stackable behaviors (aspect-oriented style)

\- Embedded Polymorphic Domain Specific Language (DSL) using dependent path types

Every language design is a trade off, but Scala is more expressive and concise than Java. Sometimes that may look to you as code which is unreadable. Other languages like clojure make some other trade offs. But Scala tries to bring some of the benefits of functional programming (in say Haskell) to Java.

<comment><USER6> Is it easy for programmers of all abilities to understand and use?

Will I still understand my own code in 9 months time?

I think that their is more to being a good language than a list of features.

<comment><USER10> The list of features were meant to just illustrate that Scala is not some programming fad, it is strictly more expressive than Java and based on solid programming language principles.

Although,I agree the code may not be easy to understand for everyone in the beginning but with effort and training I believe every programmer can learn enough of it to be more productive.

<comment><USER6> What can you express in Scala that you can't express in Java?

<comment><USER11> You do realize the futility of such questions given Turing completeness, right?

It is not about what can be expressed, but about how you express things. You do not need function literals in Scala, but it is sure is more concise and cleaner than anonymous classes in Java. You do not need traits in Scala, but it avoids code duplication or the overhead of wrapper classes or proxies in Java. You do not need case classes and algebraic pattern matching in Scala, but it is far more concise and less error prone than having to write the obscene amounts of boilerplate you would write in Java.

And so on.

<comment><USER6> Ok, so can I express that this method returns a collection of a single type and that collection always contains 10 items?

<comment><USER11> Yes, you can do that by using types indexed by a number.

See [https://apocalisp.wordpress.com/2010/06/16/type-level- progra...](https://apocalisp.wordpress.com/2010/06/16/type-level-programming- in-scala-part-4a-peano-number-basics/) for one take on this.

<comment><USER12> Scala, with its "type-level programming", crazy operator overloads and weird DSLs, is at a similar precipice as C++ was back when people started doing insane stuff with template metaprogramming (around the time of Alexandrescu's "Modern C++ Design", 2001 maybe?).

Unfortunately, I don't think many Scala users were around at that time or in that community, so lessons of the past might be learned the hard way again.

There are many encouraging signs too, though, toward better and simpler practices. We'll see which way things go.

<comment><USER11> Yes, I guess I answered the letter of his question... but I personally wouldn't use collection types indexed by a size unless (a) I really really needed to be sure about this particular invariant (b) there was a bit more sugar and automation. In most cases the added verbosity and complexity involved would not generally be a win over just using an assertion. However, it is nice to know you have the option of static enforcement should it be desirable.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> It's unfortunate that there a number of very smart people from the Haskell community that are trying to mold Scala in Haskell's image that also appear to be very prominent and active in the community. Other than having some negative effect on Scala's public image, however, there's nothing wrong with what they are doing. People work on open source projects that interest them, and it is an interesting exercise for some to find out how different Haskell constructs can be encoded in Scala.

However, the rest of us lesser mortals use Scala very differently, and we far outnumber these people. If you pay attention to Martin Odersky, the creator of the language, you'll notice that he is more interested in serving our needs than those of the Haskellites. He's outright refused to make IO monads a core part of the language, for instance, even though they have pushed for it. He's also said that scalaz is on another planet entirely, and he's asked publicly that people stop using symbolic method names in their libraries unless they have external meaning beyond the library. This guy gets it. He really has created a language that is powerful, but also practical, an excellent language for writing code that is readable, maintainable, efficient, and concise.

The author of this article admits that Scala doesn't feel right to him. He then proceeds to try to justify that feeling in his mind with some very weak arguments. For instance, his module argument oh so coincidentally happens to play into fantom's strengths alone, as No other JVM language is trying to tackle this problem right now. He is right about the lack of tests and binary incompatibility, but these are known issues that already have been addressed to some extent and are continuing to be addressed. They are not core issues with the language itself.

Scala is lightyears ahead of Fantom and Fantom will probably never catch up. If Fantom can't win on technical merit, then apparently the next best strategy involves negative blogging!

<comment><USER14> After struggling through using sbt and Maven/Ivy I can say it is categorically worse than what I have used in other languages including ruby-gem python-pip clojure-leiningen (a jvm language) and node-npm. When I say worse I mean doing what the majority of developers want from a module system: easily install modules, not provide a complicated mess of configuration and versions.

This isn't to say scala couldn't adopt a better system, but I don't think the community has an incentive because scala's main appeal is that it has a steep learning curve, but after you get over the hump you can do everything you want and more. I just think that high barrier to entry, as indicated by the post, may not be worth the benefits.

<comment><USER13> Did you ever try buildr? I've never used sbt, as, coming from a Ruby background, the fact that buildr sits atop of rake appealed to me more than sbt. It uses maven repositories underneath the hood, but then again, as I understand it, so does clojure-leiningen.

Part of me thinks you're conflating two separate things: build systems and package repository systems. Even people who hate Maven's build system (myself included) tend to agree that Maven's package management system is really good, and as you like clojure-leiningen, you must agree in some sense.

</comment></comment></comment><comment><USER15> Where I worked, we switched from Java to Scala a few months ago, and we're all loving it. I really don't understand Stephen Colebourne's criticisms. Well, actually, sure I understand every one of his criticisms, but I could make equally damning or more damning criticisms of just about every programming language. No programming language is perfect. On the other hand, we find Scala to be much more expressive than Java. In Scala, I can write code in a natural way, rather than the way that Java wants to force me to write it. The result is cleaner, more elegant code, that is significantly shorter with much less boilerplate and code repetition, and easier to understand.

Sure the type system is complicated, but I don't really have to understand all its nuances in order to get my program to compile and work. When you use Scala, after a short while you just develop an intuition for it.

The comparison to EJB 2 is a bit nutty, if you ask me, since writing code in Scala tends to be the antithesis of all the terrible Java monster enterprise library crap. The libraries that people use in Scala tend to be much simpler and more straight-forward.

I do agree that there's a contingent of the Scala community who seem to want to rub their fluency with category theory in your face. This is hardly representative of the entire community, however, and I'm sure they must exist in the communities for almost every functional programming language these days. The solution for this is for people to come up with more intuitive explanations for the powerful tools that category-theory inspired abstractions provide. I know that this can be done, and it _will_ be done, when functional programming become mainstream enough that it attracts better writers.

(I, myself, have been thinking of writing up a little essay called "The Mapcat is the state monad of Massachusetts" to try to explain monads in a better way than comparing them to space suits, or whatever. Okay, okay... mapcat isn't a _state_ monad, but I think the title's funny anyway.)

<comment><USER16> "Sure the type system is complicated, but I don't really have to understand all its nuances in order to get my program to compile and work."

This is key. People sometimes look at the type signature of the map method (as above) and freak out. It's good to try and understand everything, mind you, and eventually you probably will. The key here is that the crazy signature of the map method simply means _the map method will do what you expect_. That's it! "But I would write X to do it in my language" is irrelevant, because _you don't write the map method_. It's provided. There's a paper that describes why the signature is how it is and everything, but you don't _care_ , because it's complicated so that when you're actually using it, _it just works_.

</comment></comment><comment><USER17> Consider this method signature:

 _def map[B, That](f: A = > B)(implicit bf: CanBuildFrom[Repr, B, That]): That_

All this complexity to allow for automatic conversions (the following will return a Set[String]) ...

 _BitSet(1, 2, 3).map { _.toString + "!" }_

In a dynamic language, the signature of map is simply this: (a → b) → [a] → [b]

The big difference is that the language doesn't care about types "a" and "b" until runtime. You're the one that cares about it, only on a need-to-know basis. Hence the implicit conversions become explicit (although conversions are less necessary) and code correctness is guarded by unit tests, which you need with Scala anyway. Also, the implementation of "map" in a dynamic language is something that a junior developer can come up with.

So the biggest problems I have with Scala:

        1) it is not readable
        2) it separates developers in two camps:
           library designers and users
        3) it does not provide clear benefits
           over dynamic languages (Haskell does)

<comment><USER6> Not only dynamically typed languages, the signature would also look remarkably close to (a → b) → [a] → [b] in ML and Haskell. Your ML and Haskell compiler would also make check that it was called correctly at compile time without extra unit tests.

<comment><USER18> The difference is that Scala also abstracts over the "container" not just the contents.

If Scala only did what ML and Haskell do, the type signatures would be exactly that.

<comment><USER19> > The difference is that Scala also abstracts over the "container" not just > the contents.

Haskell is perfectly able to do that as well if desired. `[]` is a monadic type.

<comment><USER18> Haskell has no subtyping as far as I know Haskell.

<comment><USER6> Haskell has typeclasses which would probably correspond to structural typing in Scala. This type signature:

Functor f => (a -> b) -> f a -> f b

Defines map for any type that implements the type class functor. Lots of types will implement functor and it is easy to implement it yourself.

<comment><USER19> > Haskell has typeclasses which would probably correspond to structural typing > in Scala.

Nah, typeclasses are nominative typing but added post-facto (you can define a typeclass instance for a third party's type). Typeclasses are similar to Scala's traits I think (I don't know if you can add traits to a library's types though).

<comment><USER20> You get typeclasses in Scala via an interaction between traits and implicits. See [http://www.sidewayscoding.com/2011/01/introduction-to- type-c...](http://www.sidewayscoding.com/2011/01/introduction-to-type-classes- in-scala.html) for a super-quick overview and a link to a more comprehensive paper.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> The article seems very fear driven, many of his arguments simply do not gel with my experience.

We have been using Scala for 4 months now and have the first cut of our product released:

The Scala community have been great - we have had insightful answers on the Lift, Akka, Dispatch and Scala users list and on stack exchange.

We have used parallel collections and Akka actors to get good scalability without the usual pain. We do have some mutable data structures where it makes sense - we appreciate the flexibility to do that. The distinction between mutable and immutable data structures is pretty easy to read in the code.

Our code base is very concise, and i think readable for the breath of functionality we have implemented. We have not used type level programming, simple Scala constructs like pattern matching, collections and closures make a huge difference. You can write obtuse code in Scala - we choose not to.

In short we see Scala as a competitive advantage going forward.

</comment><comment><USER22> Everything's unreadable until one learns to read it. This is a classic non- argument that people buy into for reasons I can't comprehend. Is Scala _harder_ to read than other languages? Perhaps, but then just say that.

As Rich Hickey pointed out recently, "I can't read German; does that mean it's unreadable?"

<comment><USER23> I disagree. While I don't know German, I can read German and even will understand some words and in some contexts even the general meaning of the sentence (i.e. restaurant menu or technical texts with large amount of English loanwords/terms).

You don't need to know Python, to understand it on the level of pseudo-code. You don't need to know Clojure to understand it on the level of S-expressions, etc.

</comment></comment><comment><USER24> There are those who say scala is complicated, and there are those who actually learn it and once they do they love it more than anything out there. So yeah, I love scala.

<comment><USER25> This could be caused by any of these widely known cognitive biases:

\- <http://en.wikipedia.org/wiki/Commitment_bias>

\- <http://en.wikipedia.org/wiki/Endowment_effect>

\- <http://en.wikipedia.org/wiki/Sunk_costs>

\- <http://en.wikipedia.org/wiki/Herd_behavior>

[edit: also, you're inferring the experience of people from the complaints that they make. that means that you are automatically dismissing _anyone_ who makes certain kinds of complaints simply because you know that _some_ people who make those complaints have little experience of scala. so, for a very simple example, you might find that only people with a very high tolerance for type system induced pain can tolerate scala - then you would be dismissing the majority of people, presumably with valid criticisms of scala, just because they are not part of your (self-selected, exceptional - and not necessarily in a good way) clique.]

<comment><USER26> > .... widely known ..

Yeah right.

Might I suggest you read more about

\- <https://en.wikipedia.org/wiki/Cherry_picking_(fallacy)>

\- [https://en.wikipedia.org/wiki/Wikipedia:Neutral_point_of_vie...](https://en.wikipedia.org/wiki/Wikipedia:Neutral_point_of_view)

Rather pointing out that humanity is flawed. Why don't you try to practice living by virtue and show others the _right_ way ?

It's more honorable than finger pointing from a high horse.

<comment><USER25> what do you want me to do? i was less aggressive than you are. i gave links to references. i posted from my own account rather than hiding behind a new one. herd behaviour and sunk costs are good explanations for the kind of response i was replying to - everyone knows that technology creates "fan boys". so what, exactly, are you criticising in what i said?

i don't understand your anger, apart from the fact that you don't like to be wrong.

</comment></comment></comment></comment><comment><USER27> For the past few years, I've used Scala every time I need to do something on JVM (which isn't too often). Otherwise I use Python or C++. I don't blog about it.

Scala is clearly an improvement over Java (although I wish they'd kept a C-style for loop). I happen to slightly prefer it to Clojure (which is also better than Java for my purposes).

In the non-Java JVM ecosystem, there are always these angry bucket-of-crabs posts from enthusiasts. Ignore them.

</comment><comment><USER10> Odersky says Scala is PlayFramework not EJB2 <https://twitter.com/#!/odersky/status/138950022703222784>

</comment><comment><USER28> Having dipped my toes in Scala, and written some Clojure, it seems to me:

If Java is CVS, then Scala is Subversion and Clojure is git.

<comment><USER29> And what people want is Mercurial -> ?.

<comment><USER28> Sorry, I should have explained.

Scala feels very much like "Java done right". Scala solves a lot of problems with Java and is better in every respect. In the same way, Subversion solved a lot of problems with CVS and is very much "CVS done right".

But the opportunity that was missed was that, just at the Subversion developers never asked themselves "Is centralized version control the right way to do things?", I feel that the Scala developers equally were so focused on fixing the myriad of problems with Java, they never took the step back and asked themselves "Is imperative/mutable state/exposing-Java's-warts-for- compatibility the right way to do things?" Of course, they've built a much better Java, but it feels that they've been so focused on the trees that they've not seen the wood [1].

[1] For non-native English speakers the idiom is [http://idioms.thefreedictionary.com/cant+see+the+wood+for+th...](http://idioms.thefreedictionary.com/cant+see+the+wood+for+the+trees)

</comment></comment></comment><comment><USER30> Chris Marshall has a notable response in the comments: [http://blog.joda.org/2011/11/scala-feels-like-ejb-2-and- othe...](http://blog.joda.org/2011/11/scala-feels-like-ejb-2-and- other.html?showComment=1322001467368#c3731872064551816780)

</comment><comment><USER31> Scala is awesome, when combined with AKKA it's even better. We're much more efficient then we ever were in Java. Also, ops doesn't know it's not java since they can use all the same jvm tools.

val myList = "Jim" :: "Bob" :: Nil myList(println)

what's hard about that?

<comment><USER32> Heh to a Java programmer, the answer would be - everything.

Here are my thoughts on it. \- I get val myList is some sort of list... \- Seems to be a list of Strings. But what is ::? \- Nil means list is nullable. Wait is one of the parts of list 'myList(println)' (looks a bit like Smalltalk)? \- Why is println the argument and not the method? Is that syntax correct?!

Compare same thing in Fantom. Note ; is only used as a separator and is equal in all respects to '\n'.

         myList := ["Jim", "Bob", null]; echo(myList)

<comment><USER33> The :: is Scala's cons operator, the Nil means end-of-list. It's actually much more common in Scala to create a list like so:

      val nn = List("Jim","Bob")

This creates the same list that the example using :: did. It doesn't need to be explicitly terminated with Nil.

<comment><USER32> What does cons operator mean? Concatenation? Constructor? Other than hello world I haven't done much Scala.

<comment><USER34> Cons is short for construct and comes from Lisp which has weird names for things; things like car and cdr.

It means construct a new list.

A cons A (or A :: B) means create a new list with A before B, where B can be a list item or a list itself and A is a list item.

The :: operator is right associative so "Jim" :: "Bob" :: Nil actually works like ("Jim" :: ("Bob" :: Nil) ) (Actually all operators that end in : are right associative in Scala.)

For more see: <http://en.wikipedia.org/wiki/Cons>

</comment></comment></comment></comment></comment><comment><USER35> So Scala is to Java what C++ was to C

<comment><USER32> Umm, I'd say Scala is to Java what C# was to Java. It cleared some things at expense of come other things. Overall it's pretty cool language (I rarely use :P).

</comment></comment><comment><USER36> Could someone explain to me what are entreprise javabeans and how they are used - in easy to understand language

<comment><USER37> They were an early Java attempt to "save" programmers from the complexities of writing actual systems by adding all sorts of abstractions and supporting server software. They were an abomination, used mainly by "enterprise" shops that were willing to spend money on everything but programmers who knew what they were doing.

As far as I could tell, they were a classic example of the architecture astronaut's tendency to inflict blue-sky designs on others before actually using them in the real world. They sounded great in the marketing brochures, but were hideous in practice, both for development and run-time use.

The EJB3 transition he mentions came about because EJB as a product was getting its ass kicked by Hibernate and related open-source, field-tested software. Eventually they just threw out EJB2 and said, "Hey, EJB3 is a bold, innovative approach that just happens to look exactly like Hibernate."

</comment></comment><comment><USER38> i used scala for a few months. it sounded very promising, java without the verbosity. but in the end i decided to stop using it.

The biggest problem for me was readabilty. Scala is the first language that i've learned where at first i couldn't just read code and immediately guess what it does.

I think the prime reason for this is that scala permits operator overloading; more than that, in fact, almost every character can be an identifier. This results in often very cryptic code and libraries, because you can't guess what that function does without reading its definition. quick, what's the difference between +++ and ::: ? what's /: and /:\ ? You can't even google it!

The other big problem for me was the type system. At first it sounded really great, and in fact the amount of compile-time code verification that you can achieve is indeed impressive. But in practice, i found myself fighting with the type system a lot, for example when trying to reuse a function with generic type restrictions that I had't written: some time these can get very long and your only choice is to copy-paste them from the original definition.

Also, how do you test that your type constraints are correct? you can't, by definition, write compilable code that would invalidate them.

Finally, it turns out that a lot of the bad stuff that's in java ends up in scala also, because of runtime compatibility concerns. in particular, scala's generics are an extension of java's. so, for example, almost all generic type information is lost at runtime, except for some extra metadata that scala stores in the object. this results in pretty ugly code when you have a dynamic object and you need to use it with a generic method.

<comment><USER39> >I think the prime reason for this is that scala permits operator overloading; more than that, in fact, almost every character can be an identifier.

I've been toying with the idea of trying scala for a serious project for a few months, and this part scares me. It's so obviously a bad idea it makes me wonder what other dumb things are in there.

<comment><USER18> Scala doesn't permit operator overloading, it doesn't even have operators.

<comment><USER39> Well, that's true, technically. But can't you name your functions things like "++"?

<comment><USER18> Yes. Because Scala doesn't make up random rules about how you name your methods.

If you name your method addAll or ++ is pretty much the same. The same rules apply to both. Both can be called the same way:

        coll1.addAll(coll2)        coll1.++(coll2)
        coll1 addAll coll2         coll1 ++ coll2

<comment><USER39> Those "random rules" make the code base much easier to read. This kind of thing is a big step backwards for people working on large projects, especially people who need to come up to speed on a large code base.

</comment></comment></comment></comment></comment></comment><comment><USER40> This post feels like utter bollocks.</comment>


Show HN: Direct Mail – a native email marketing app for OS X - <AUTHOR> http://directmailmac.com

<comment><USER2> "Direct Mail" is a term that usually means physical mail. This is similar enough to cause confusion, and I had to do a second-take on your home page.

</comment><comment><AUTHOR> Hi All,

We just released version 4 of Direct Mail. The big new features include cloud syncing/collaboration, autoresponders, and a redesign for OS X Yosemite. Companion app for iOS also available at [http://directmailmac.com/stamps](http://directmailmac.com/stamps).

Happy to take any questions or feedback. Thanks!

<comment><USER3> Love the native idea, but then I clicked on the pricing link - woah. I'm by no means telling you how to run your business, but the pay per email rates seam really high.

I wrote an email marketing system this week for my day job against the Mailgun API to do the sending and to send to 183k recipients, it'll cost us < $80 USD. It would be even cheaper if I used AWS but we're a Rackspace shop.

(I understand not everyone out there is a programmer, but the price is very high compared)

Good luck though.</comment></comment>


The Myth of Willpower and "Eat Less, Move More" - <AUTHOR> http://www.fitocracy.com/knowledge/the-myth-of-willpower-and-eat-less-move-more/ <comment><USER2> Urgh. People argue these issues over and over and shave points so finely that I don't see the point any more. Who cares if, by some interpretation of the words, you can make the claim that "cardio alone is ineffective for weight loss?" Some people take up running and lose weight.

There are a thousand different ways to approach fitness, and apparently the important thing is not to present an original or enlightening perspective but to shit all over other people's perspectives, to call them "stupid," "dogma," "myths," and "big fat lies" that "prevent you from creating a healthy lifestyle."

Creating a feedback loop in which results motivate continued effort is _one_ idea that has been around for decades and works for a lot of people. So is going for a run every morning. So is being "hard core," for that matter. For some people, the idea of being "hard core" is an exciting one that gets them out of bed early in the morning and helps them say no to excess food. If these ideas work for people, then they can be valuable, positive ideas, right? Wouldn't you want to make sure that people gave them serious consideration in case they were, for them, effective ideas?

Why would you steer people away from alternative ideas by presenting them in the most negative possible light, in narrow, off-putting formulations?

Oh, right, because this isn't fitness advice. It's marketing for a company selling a fitness product.

<comment><USER3> Someone missed the point of the article.

<comment><USER4> Someone missed the point of the comment

</comment></comment></comment><comment><USER5> If you eat less (below maintenance) and move more, you'll lose weight. That's just biological reality. I did that and have lost 15lbs in the past two months. Any psychological factors don't alter this basic fact.

<comment><USER6> On the one hand, you have people who are not trying to sell you anything telling you the simple (but difficult) truth:

Eat less and burn more calories, you'll lose weight.

On the other hand you have people who are trying to sell you something tell you all manner of complicated ways of losing weight that basically amount to being what overweight people want to hear.

In this case, you have a company called Fitocracy telling you:

 _Willpower will not bring you success._

It's a great statement that absolves overweight people of much of their responsibility for keeping themselves healthy. Fitocracy should sell well with this technique.

<comment><USER3> I'm just gonna copypasta the end of the article here, since you seemed to angry to actually read (not skim) past the title. ____________________________________________________________________________________

At this point, I know what some people are thinking. "Well, Dick. If you're so smart and it's not about willpower, I guess no one is at fault for being fat then, huh?"

On the contrary. If there's one thing I've seen in my decade of talking to thousands of people between forums, clients, Fitocracy, and real life, it's that _people are responsible for their own failures_. _Most times, it is their fault_. But it's not for the reasons that most people think. Most don't fail because they didn't eat less or move more.

They failed because they could not see beyond the oversimplification of "eat less, move more."

Many times, this is a problem of hubris; they failed to be curious, introspective, and mindful. These people also beat themselves up for all of their past failures, not realizing those plans had them doomed for the start.

The Biggest Loser will have you believe that fitness success is about being tough, being hardcore – dangerously hardcore. In fact, it's about the exact opposite.

Fitness success is about humility – realizing you cannot reduce one of the world's most challenging problems to "eat less, move more," and then seeking out the knowledge to improve yourself. Success also requires compassion – forgiving yourself for past failures so that you can try again.

Those things are the exact opposite of being "hardcore."

That's the ultimate irony. It's why people are ultimately responsible for their failures – not because they failed to shrink their waist, but because they failed to expand their horizons." ____________________________________________________________________

Hth! ^_^ gl with your reading comprehension goals in 2013

<comment><USER7> > _Hth! ^_^ gl with your reading comprehension goals in 2013_

It isn't constructive to add this kind of barb to the end of your comment. From the top of the HN commenting guidlines:

 _Be civil. Don 't say things you wouldn't say in a face to face conversation.

When disagreeing, please reply to the argument instead of calling names. E.g. "That is an idiotic thing to say; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3."_

<comment><USER3> Let's be honest. HN comments are the cesspool of the Internet, and really, if someone isn't going to read the article IDGAF. :v

HTH! ^_^

p.s. I suspect you're mad about the cardio comment. Let's not try to sugar coat the fact that science suggests your "feelings" are wrong, ty.

p.p.s – would say this all to anyone's face. good luck with your suggestion of 1 hr of cardio/day to people new to fitness... lmk how that pans out!

<comment><USER7> I'm not angry, but I have noticed you have a certain axe to grind and that you have a tendency to cherry-pick citations to support it, make sweeping comments that go against the bulk of current research and that you're extremely hostile to those who disagree with you. I was only reminding you of the guidelines since belligerence wins over nobody and makes HN a less pleasant place to be.

> _good luck with your suggestion of 1 hr of cardio /day to people new to > fitness... lmk how that pans out!_

Giving you the benefit of the doubt that you were asking in earnest... can only assume you're referring to what I shared earlier on HN—pretty much everyone who joined my high school swim team team made _tremendous_ improvements in their fitness levels. Ditto for sedentary students joining cross-country. It already "panned out" years ago and it was a huge success!

</comment></comment></comment></comment></comment></comment><comment><USER8> In general there are three things you need to balance if you want to get fit, loose weight or get good at a sport or similar: eating, resting and training. Most make the mistake and think that the training is the most important thing, but it's really not. You cannot eat bad and train good and think that it will balance itself out, you really are what you eat.

Something I'm really annoyed at in today's society is the focus on calories. Sure calories are all which matter... If all you want to do is warm water. But then you're ignoring the effect on your hunger and your hormones which can lead to yo-yo dieting.

In theory it can work, if you can live with constantly being hungry. But in a war against hunger, you're bound to loose.

Aim for quality, not quantity, and let your built in weight control device - the hunger - take care of the rest.

After that you can focus on your training regime. Here again I totally agree with the article. Training should be fun and rewarding and if you can manage get a good feedback loop you're golden.

<comment><USER9> Can you define what "eating bad" means?

<comment><USER10> Eating a varied diet of real whole foods and staying away from processed, packaged food is the general consensus for a "good" diet.

<comment><USER11> Whole grains, legumes, olive oil, lean meat, fresh vegetables. Foods that are nutritionally dense. Avoid saturated fats, fried food, starches.

<comment><USER12> why avoid saturated fats? because they cause heart disease?

</comment></comment></comment></comment></comment><comment><USER7> And yet there's research just last year from Duke that shows that cardio is the most effective tool for weight loss.

[http://www.eurekalert.org/pub_releases/2012-12/dumc- aet12121...](http://www.eurekalert.org/pub_releases/2012-12/dumc- aet121212.php)

More important (to me if not the author) is overall health benefits. I don't really tend to conflate bodybuilding types of aesthetics with health. I don't want _terrible_ athletic performance, but athletic performance is pretty far down my list of priorities. Also, I think it's very unlikely that the ideal dietary and exercise regimen for bodybuilding is identical to the ideal regimen for longevity or feeling healthy.

<comment><USER13> Bodybuilders were traditionally very healthy. They are basically responsible for "health food," gyms and diet and exercise awareness in general.

</comment></comment><comment><USER14> If you can find something that burns calories that you enjoy and keep doing, the weight just kinda melts off. A couple years ago I got into burlesque dance; two hours of class every week got me into amazing shape. That's stopped for various reasons, and my weight's slowly crept up. I haven't found anything that I delight in doing the same way, so I'm out of shape. I've been fighting it but it's an uphill climb.

I mean, yeah, to a large degree it WAS "eat less, move more" \- but I wasn't thinking of it in terms of losing weight or getting fit. I was thinking of it in terms of "learning to move in frighteningly sexy ways".

</comment><comment><USER15> > Maybe that's why 85-90 percent of participants regain their original weight,

Weight is party fixed by epigenetic by end of puberty. It depends on how you mother did eat before and when she was pregnant (e.g. Dutch hunter winter children), and how you diet was when you was young. The highest likelyhood of being fat is if you are from a foreign family that lived healthy but on low calories, and moved to a country where lots of cheap fast food is available. Women have a good chance to change weight everytime they are pregnant, and at the menopause. Unfortunately most women will gain weight at that point. Men do not have those easy opportunities at times of hormonal changes. So if one loses weight by hunger, the body will bounce back to its epigenetic fixed weight again, once you stop being hungry.

So lets accept weight, and focus on fitness for fun itself.

Imho, the best sport for fat people is sailing. Every crew needs fat sailors as self loading ballast at the rail. Sailing is sport that is fun, even for the heavy weight.Its a sport that does not give you the painful feeling of being a loser, but its fun to be an important member of a crew. You think you just sit there, and move your ass once every tack or jibe, but in fact you move all the time constantly balancing against the rolling of the boat. You burn a lot of calories that way. You get a positive feedback, and time by time you become fit, even if you only lose a few pounds fat and gain a few pounds muscles.

I do not have a overweight problem myself, even vice versa. I'm 5'10"/178cm with 120lbs/54kg in summer, and 128lbs/58kg in winter. But I have a neighbor, who did lose 15kg/30lbs just by sailing, and by getting in a positive fitness loop. She moves more now, e.g. shopping by walking instead of shopping by car, as she is able to move without burden. She still weights 30kg/60lbs more then me, but thats ok. She is fit, even if she is still a bit round, because the rounds are now at the right places. She does no longer look like an ugly fat women mid 40s, but like a chubby smiling woman who is happy with her body.

PS: You do not need to own a boat to become a sailor. Most boat owners are searching for crew. Owning a boat is an other can of worms, its a commitment to maintenance and club work.

</comment><comment><USER16> I, too, am obsessed with fitness. In my experience, most people can't lose weight because they don't know how habits work and cannot use that knowledge to form the right ones.

Every habit consists of three components: cue, routine, reward. Something triggers the behavior, you perform the behavior, and you reap some reward. Rinse, repeat.

For example, a lot of people eat food - especially sweet food - to deal with stress. The cue that triggers the behavior is stress, the behavior itself is eating food, and the reward is the taste of that food. Repeating this enough times causes the person to get fat.

Knowing this, it is also possible to engineer new habits. The way you do this is by starting from the end of the loop - the reward - and work your way backwards. For example, the reward (your motivation) for working out may be to become more attractive. From there, you may decide that going to the gym would help you lose weight, gain muscle and become more attractive, so that would be your routine. And the last part would be to figure out a cue, something that would trigger the routine. This works best as something that will remind you of the reward, such as looking at pictures of hot women.

After you engineer the habit, you can also engineer your life around each component. For example, you can put up posters of hot women on your bedroom wall so that even if you come home tired, the pictures would remind you of your motivation and trigger the gym routine of "put on clothes, go to the gym, work out." You can choose to live within a few blocks of said gym (or build a home gym) so that executing the routine after it is triggered by the cue is as easy as possible. Basically the formula for making sure you continue the habit is: maximize cues + minimize the effort for the routine = maximize rewards. (Side note: this also works the other way around. If you're trying to quit smoking, keeping your cigarettes as far away as possible, such as on one of the top shelves in the kitchen, helps quite a bit.)

The part that takes willpower is executing the routine. That's why willpower is so important, especially at the beginning. The further away you live from the gym, the more willpower it will require to actually go. In contrast, the stronger your motivation, the less willpower the routine will take to execute.

Of course, there's quite a bit more to be said about the topic. But that's the psychological aspect of it.

<comment><USER17> What is the name of that book that goes into this? If so do you know if any of them are worth reading? Power of habit or somesuch? Thank you.</comment></comment>