In Defense Of A/B Testing - <AUTHOR> http://www.smashingmagazine.com/2010/08/26/in-defense-of-a-b-testing/

<comment><USER2> This seems to be a perennial (50-year-long) debate in design / HCI / user- interface circles. The hardcore extremes are a branch that comes out of traditional design and architecture, which is radically against anything that reeks of "focus groups"; and the branch that instead comes out of industrial psychology, which won't do anything unless it has a p-value. In practice most designers actually building things seem to do something in between. You can't make _every_ design decision using an A/B test unless you're prepared to run hundreds of thousands of them, because designing something non-trivial (say, a new IDE) requires quite a lot of design decisions. But you can use A/B testing (or quantitative user studies more generally) to get data on specific groups of alternatives, or to hone in on a particular subset of the design space. A lot of the argument is over the relevant proportions, and which other methods to use to supplement quantitative A/B-type testing.

One school, for example, is that you should generally aim to understand your design and audience, via things like ethnographic interviews, examination of existing designs, qualitative user studies, thought about why stuff worked/didn't, theories about user interaction and design in certain areas, etc., and then use quantitative tests as more of a sanity-checking tool (are users reacting in line with how we were expecting them to?). That's somewhat more in line with a traditional scientific view of theory formation followed by testing the predictions that theory makes. Other approaches have the quantitative tests taking a much more active, central role in the design process, more akin to the machine-learning view of induction from data, where you're agnostic about "why" something works, and just follow where the data takes you. I think that latter gets towards the approach some designers find stifling to creativity, particularly in how it's applied in e.g. metrics-based game design.

<comment><AUTHOR> All great points. My only argument in the article was that it is just a tool which should be used if you specific case for using it. It isn't inherently bad, you just need to see where it is a good fit. Like you said, design can be more than sum of its parts so doing thousands of tests for designing a new IDE (for instance) is impossible.

Though if you have a specific question to answer: should I have toolbar instead of menu bar, then of course you can do A/B testing.

</comment></comment><comment><AUTHOR> This is my response to recent anti A/B testing sentiment. Relevant threads on HN discussing the articles that I have responded to:

Groundhog Day - or the Problem with A/B Testing <http://news.ycombinator.com/item?id=1531573>

Out of the cesspool and into the sewer: A/B testing trap <http://news.ycombinator.com/item?id=1448858>

<comment><USER3> It's a great response; the strange thing is that it is necessary at all.

An aside: am I the only one who thinks Atwood's sandpaper analogy is a bit like Creationism? _"Random mutations and natural selection can only smooth out small details, they can't create a whole new species...."_

<comment><USER4> Not to say your analogy isn't correct, but really, not much _can_ be done with a pure mutation+selection mechanism—most really do just get stuck at local minima. This is why most "successful" organisms on Earth (depending on your definition of success) don't just use that mechanism. Rather, most biological life has discovered a secondary form of selection—evolution—which is powered by _sexual recombination_ , where groups of large-scale, successful changes are introduced to other such groups, all simultaneously. This is what makes genetic algorithms different from generic hill-climbing algorithms (which the system of an A/B-test plus a designer simulates.)

On a larger economic scale, however, all those much-decried people saying "I want to build something that is Facebook + Google News + Basecamp + a toaster" are sort of performing the sexual recombination step, if they actually manage to get it built instead of just making incessant Craigslist job postings ;)</comment></comment></comment>


How to find a job in a tech company helping to combat climate change? - <AUTHOR> https://medium.com/@leventov/how-to-find-a-job-in-a-tech-company-helping-to-combat-climate-change-practical-guide-e212e262a32 <comment><USER2> This is amazing, thanks so much for making this list. I spent a bunch of time looking for an impactful job in this space, and found it hard in the bay area -- a hub of consumer tech and tech b2b, but too expensive for companies doing this kind of work.

<comment><USER3> Nobody:

Companies owned by Foundations for 150 years:

Every company making revenues doing impact work:

Tech companies: We're going to prove that capitalism and impact aren't incompatible ideas! We even formed a B-Corporation, it has a different letter so you know we are serious! You have to work below market because you love our vision!

<comment><USER4> > Tech companies: We're going to prove that capitalism and impact aren't > incompatible ideas! We even formed a B-Corporation, it has a different > letter so you know we are serious!

Instead of snarky insults, can you suggest some changes you'd make to the B Corporation requirements? Anyone who jumps through B Corp certification ([https://bcorporation.net/certification/meet-the- requirements](https://bcorporation.net/certification/meet-the-requirements)) has at least good intentions and willingness to spend time and money on them.

So, give them some constructive suggestions. If someone reading this thread wants to consider and disclose the company's impact on society, employees, and other non-shareholder stakeholders, what would you tell them to do?

<comment><USER3> Its snarky because there are large contributors to the tech sector whose profits simply funnel up to charitable organizations because they are owned by them.

The latest iteration of impact is born from ignorance of whats already out there and this is mutually exclusive of getting B Corp statutes passed and choosing to use them.

It is just Shariah compliant organizations rebranded for an islamaphobic audience (or maybe specifically "Shariah"-phobic). Kind of cute, I can understand how people are unaware of contexts outside of "theocratic human rights abuses".

Constructive suggestions on B Corp? Its fine what they are trying to do, standardizing what impact even is and streamlining it with a single incorporation. I dont have any quantitative analysis of B Corp efficacy, does anyone? Foundations on the other hand are forced to make charitable grants annually, and this is quantifiable. they simply own shares of C-Corps, therefore many C-Corp workers are doing impact work whether they made that conscious decision or not.</comment></comment></comment></comment>


The Artistry of China's Ivory Puzzle Balls - <AUTHOR> https://www.atlasobscura.com/articles/puzzle-balls-from-guangzhou <comment><USER2> Can never be produced legally again? What about synthetic ivory?

[https://www.nature.com/articles/507040a](https://www.nature.com/articles/507040a)

> Synthetic ivory can now be crafted to the same diagnostic standards as > genuine ivory (see M. E. Sims et al. Ethnobiol. Lett. 2, 40–44; 2011), and > its price in China is only about 14% of that of real ivory

</comment><comment><USER3> "This traditional art from Guangzhou can never be produced legally again."

Weird tagline, both crass and wrong. There are legal sources of ivory, mainly antiques and mammoth tusks.

<comment><USER4> The trade in pre-existing ivory is being made broadly illegal as well

</comment></comment><comment><USER5> During America's Civil War, solders made similar pieces of art from bones, wood, or whatever was at hand.

Some of the simpler items I've seen in museums were linked chains made from a single bone. The more detailed ones were round balls carved inside of square cages.

To be sure, they were nowhere as advanced as these Chinese artworks. But then, the soldiers were just using whatever was laying around, and were also busy fighting a war.

</comment><comment><USER6> The presentation linked in the article has some awesome images of the individual spheres:

[https://www.cwi.nl/events/cwi-scientific- meetings-1/cwiscien...](https://www.cwi.nl/events/cwi-scientific- meetings-1/cwiscientific.pdf)

<comment><USER7> VERY interesting presentation of details on how the nested spheres were carved, with some surprising results, e.g.:

layers 1, 2, 3, 4, 5 are clearly visible

layers 6, 7, 8 and 9 are carved 'blindly'

</comment></comment><comment><USER8> Several people on here seem concerned about this no longer happening due to restrictions on ivory. You can still get these in other materials like stone. I have one that is "jade" (more likely some random cheap green rock) that I bought in Hong Kong about a decade ago.

</comment><comment><USER9> Really beautiful pieces. Unfortunately, the article doesn't give any details as to their creation. Just check out the pictures.

<comment><USER10> Quote from the article:

The region's method is detailed in an 1876 publication by the Scottish photographer John Thompson, who traveled extensively around China. According to him, an artist first used a lathe to rotate a block of ivory, shaping it into a sphere. They then drilled evenly distributed conical holes towards the ball's center. Accessing the interior with an L-shaped tool, they would carve grooves to form concentric gaps, creating layers. "Hole after hole is in like manner centered," Thompson wrote, "until all the grooves are cut, and meeting each other, the innermost ball falls into the center of the sphere. This inner ball is then moved about and carved with long tools passed through the holes, after which the bent chisel is again brought into play to cut out the next ball."</comment></comment>


History of the treemap filesystem viewers - <AUTHOR> http://www.cs.umd.edu/hcil/treemap-history/index.shtml

<comment><USER2> I've never found the treemap view of filesystem viewers all that useful. Pie charts aren't any better. A basic hierarchical list of directories sorted by size is fine. I can use it interactively and drill down if I need more information. Tree maps like this for example* seem to contain more information than I can easily process.

The one thing I like about that one is that you get a quick, rough overview of which file type (Applications, System, ...) use up how much space and where they are located in the hierarchy. But I don't generally care about the latter and the former would, again, best be served by a simple sortable list or tree list.

* [http://www.cs.umd.edu/hcil/treemap-history/treeviz_colorful....](http://www.cs.umd.edu/hcil/treemap-history/treeviz_colorful.gif) from the article

</comment><comment><USER3> KDE provides a traditional treemap in Konqueror/fsview, but also this circular design has proven popular in recent years: <http://kde- apps.org/content/show.php/filelight?content=99561>

</comment><comment><USER4> Daisy Disk for Mac is missing from this list (or maybe they don't count their visualization as treemap, but I think it is closely related and saw it categorized as such).

<http://www.daisydiskapp.com/>

</comment><comment><USER5> It's worth noting that Treemaps have shifted over time from maps that were often used to show complete filesystems with high-levels of depth, to visualizations that showed data one-or-two level deeps. This later kind in what you tend to see in newspapers and in financial data analysis.

If anyone's interested in generating Treemaps (especially of the later kind) I wrote a JS library to generate them after being frustrated how ugly all the existing off-the-shelf implementations were:

<https://github.com/imranghory/treemap-squared>

</comment><comment><USER6> I personally prefer WinDirStat: <http://windirstat.info/>

is there a definitive "best" treeviewer? In terms of how fast it's able to scan your drive contents?

</comment><comment><USER7> Personally I find treemaps hard to read, and for getting an idea of what's taking up space on a disk I much prefer pie charts like [1]. My favourite for Windows is Scanner by Steffen Gerlach[2]. I haven't found a good one for Mac yet.

[1] <http://www.steffengerlach.de/freeware/scnshot.gif> [2] <http://www.steffengerlach.de/freeware/>

<comment><USER8> There's a rough open source clone of Filelight for Macs[1]. Disclaimer: I'm the original author, but no longer involved.

A commercial app in the same genre, DaisyDisk[2], is much more flashy and polished. You can also get the KDE/Mac version filelight from MacPorts, as part of package 'kdeutils4'.

[1] <https://github.com/jvhaarst/MacFileLight> [2] <http://www.daisydiskapp.com/>

</comment></comment><comment><USER9> SpaceSniffer is an awesome free tool for Windows. Shame it didn't get a mention.

<http://www.uderzo.it/main_products/space_sniffer/>

</comment><comment><USER10> My favorite use of a treemap viewer: <http://contemporary-home- computing.org/1tb/archives/3297>

</comment><comment><USER11> fsm (from SGI---you can see it in action in the movie "Jurassic Park") was an interesting filesystem viewer. It presented the filesystem in 3D on an infinite plane. Directories were squat boxes, while files were tall and skinny boxes sitting on directories. The size of the boxes reflected the size of the directory/file (huge files literally stood out). Color was used to indicate age---the older the file, the cooler and darker the color.</comment>


World's first no kill eggs go on sale in Berlin - <AUTHOR> https://www.theguardian.com/environment/2018/dec/22/worlds-first-no-kill-eggs-go-on-sale-in-berlin <comment><USER2> "No kill"... yeah they may not shred male chicks, but come on. The hens are still slaughtered at a fraction of their natural lifetime, when they are done efficiently laying eggs.

<comment><USER3> > An estimated 4-6 billion male chicks are slaughtered globally every year > because they serve no economic purpose.

Seems like a worthwhile goal to prevent this...

</comment></comment><comment><USER4> Went vegan because my kidneys started to fail. It feels good knowing I don't pay for people to kill animals for me anymore.

I used to find it so hard to go vegan because I loved the taste of meat. Well, now I have no choice.

</comment><comment><USER5> This is great and I only wish I could contribute in a meaningful way to end unnecessary suffering</comment>


Facebook's Android App Sucked Because "Obnoxious" Google Bought The Developer - <AUTHOR> http://techcrunch.com/2010/11/03/facebook-android-app-google/

<comment><USER2> You mean like how Facebook has been buying up Google engineers?</comment>


Ask HN: Programmers, are you still excited about programming? - <AUTHOR>

I love programming and I think I have the talent to do it professionally. But I'm scared. Based on what I see on HN and elsewhere, the workplace seems to be where the excitement of programming goes to die. Is it true? Does the joy of solving difficult problems with elegant code get buried where you work? Is your workplace special because it's not like this? How to find a place where coding still rocks? <comment><USER3> Heh. Ever heard the expression, you gotta kiss a lot of frogs?

Finding the right place for me is very different from finding the right place for you. For example, where I work (zulily) there is a ton to do. I think about all the cool problems I get to solve. But at the same time, I have to deal with a lot of "not how I would have done it" solutions. Don't get me wrong, I'm fully aware that any decisions that I make will be castigated by current/future workers (the wheels on the bus go round and round).

With that said, find an industry that interests you right now. Find companies that are using software to solve problems in that industry. Then just start working. When you are there, you have 2 outcomes - one is that everything is amazing and nothing needs to change (unlikely) and the second is that it's mostly OK.

If it's mostly OK, you can decide to put up with it (because the challenges and coding are tilting in the favor of happiness) or you can (cliche alert) be the change you want to see. If you see a process that you don't get, question it and find out why it got instituted. If no one can give you a good reason (and good is subjective I know), then change it. Get rid of it. Nuke it from orbit (it's the only way to be sure). If your boss says things like "Because I said so" - find somewhere else to work.

A lot of people will tell you "Just code on side projects". That's an awesome idea. but you can work on side projects about 2-3 hours a day (assuming you've got friends and other hobbies). Is that 2 hours a day really enough to make up for the soul sucking 8+ hours you spend at an office? I know it isn't for me. I've got side projects, but most of them revolve around how I can learn a new technology to help the company I'm currently working for.

And just to answer your original question: Yes. I'm still excited by programming.

</comment><comment><USER4> Business hates the idea of people solving difficult problems with elegant code. Most businesses wants dumb people solving easy problems through repeatable patterns. There are lots of different kinds of software development. If you pick the wrong company you could be doing lots of repetitive work. Even if you pick the right company there will be enormous pressure from all sides to turn your job into being a typist. The best solution is ownership and management of the firm by developers, which is how many successful firms are started.

<comment><AUTHOR> It seems like this applies in any line of work.

</comment></comment><comment><USER5> Not every task is the same, and, yes, you will have to deal with tasks you would rather be doing something else - no matter what career you pick - <USER2> is why discipline is usually more important than 'talent' (which is a scam, talent is just result of hard work, you always start at zero talent). Keep in mind that even programming that 'rocks' will get old and you will want to move to something else.

Be careful with the definition of 'difficult problem'. Building a HTTP server from scratch is not a difficult problem. Trying to understand a 30 page generalization of financial calculations and implement it on a programming language when you are not a mathematician is a difficult problem. Most programmers, specially 'juniors', have a very shallow understanding of what difficult means. Nothing you know how to do is difficult, it can just be lengthy, only new things / things you don't fully understand are difficult.

This is valid for pretty much every career, really.

The only advice I give to people entering this career is to get ready to deal with the complete, absurd social ineptitude of the majority of technically great professionals in the field. Which is not all bad, with a bit of social skills, you will lead.

</comment><comment><USER6> For me, it ebbs and flows. There are times when I feel challenged, and there are definitely times where politics, the types of problems, etc. tend to extinguish the flame to get excited and work hard. I think the trick is, when you feel your "programming fire" starting to get extinguished, find a side project that inspires you (granted, if you have the time to do so). This gets me through the burn out and piques my interest when the day to day coding doesn't do it for me.

</comment><comment><USER7> Coding rocks in places filled with top performers. If you're really good and don't settle for working with mediocre people, you'll find an interesting place. Also, your creative expression for coding has to be something that persists longer than a single job.

</comment><comment><USER8> You can burn out. Make sure you keep learning new things and solve different problems.

Luckily the field is really vast to keep you interested for decades.

</comment><comment><USER9> Absolutely - this is in fact a golden age for programmers. Working conditions are a lot better than 10 years ago, and the power at our fingertips is beyond what I could have imagined.

</comment><comment><USER10> Keep learning new stuff and make things just for the fun of it.</comment>


NoSQL Handbook  - <AUTHOR> http://nosqlhandbook.com/

<comment><USER2> Looks really interesting, I was just searching for a collection of use-cases for all the different NoSQL flavors (mongo for analytics, redis for queue/pubsub, etc).

If the book focuses on how to play to each projects strengths to compliment a traditional relational DB, I think it could be really good.</comment>


Neil Young is right — piracy is the new radio  - <AUTHOR> http://gigaom.com/2012/01/31/neil-young-is-right-piracy-is-the-new-radio/ <comment><USER2> We have come to accept a vast panoply of behaviors of sharing creative works and of allowing people to "consume" music, art, movies, etc. without directly compensating the creators. Radio, television, libraries, used books, etc. We accept such things largely because we've grown used to them. We have lived long enough in an era of libraries and radio to understand that they do not destroy the ability of artists to make a living.

Uncompensated sharing in the digital age has been unmoored from some of the traditional limits on sharing, moving it well outside the comfort zone for a lot of people and causing a lot of backlash against the phenomenon. But even though the returns on uncompensated sharing in the digital age are sometimes more diffuse and indirect than for the more traditional forms of sharing we are used to they still exist. Art will survive. Artists will not end up in the poor house. And eventually people will grow as used to what gets labelled "piracy" today as they have to libraries, museums, and radio.

<comment><USER3> I agree, this goes in line with what Francis Ford Coppola recently said [1]. People refuse to accept it because they cannot understand how it could be different.

Hollywood's model is broken because it has been dependent on scarcity of distribution. This couldn't be sustainable forever. Internet fixed the distribution so Hollywood is bleeding. Art is getting easier to access and to create thanks to technology. (this is where we, startups, come in)

IMHO, art will become a commodity. In a few decades, you won't pay so much to watch a movie that cost a few millions to produce. You'll pay almost nothing for a movie that cost almost nothing to produce. And it will have much higher quality than today's movies. Thanks to technology. Like you said, art will survive.

[1] [http://the99percent.com/articles/6973/Francis-Ford- Coppola-O...](http://the99percent.com/articles/6973/Francis-Ford-Coppola-On- Risk-Money-Craft-Collaboration)

<comment><USER4> Weren't 2009 and 2010 Hollywood's most profitable years?

<comment><USER5> Meaning that Hollywood isn't bleeding because of the Internet, the Internet has no negative impact on Hollywood, or you going further, that the Internet actually helps Hollywood information get distributed even better? I'd say the latter. It's so much easier for me to find movie trailers, reviews, and learn about movies I didn't even know existed.

<comment><USER6> Just that hollywood is full of shit when they claim the internet is killing creative industries. There isn't enough hard evidence for the rest.

</comment></comment></comment></comment></comment><comment><USER7> Is radio dead in the USA? In Australia I think the radio culture is quite vibrant. Personally I download music from time to time that sits on my phone but I listen to the radio 99% of the time because it introduces and plays the best music anyway. The radio stations that I listen to are govt funded[1] so they don't have any ads and have a community focus of getting people to go see live concerts and listen to good music.

We also have commercial radio stations that play disposable child-like pop music (combined with horrible ads and drone-like presenters) that is well suited to 13 year old girls but still becomes popular with the masses. So there is something for everyone.

I don't support SOPA (not that it counts in Australia, or anywhere else for that matter) but I think that artists should get some money from somewhere for their efforts. People listen to the radio free but they still have the option of buying the album. Downloading the album free makes that option redundant.

In Australia people typically pay $40 - $70 a month for their internet which - if they use the allocated capacity - they are using to pirate music, movies and TV without ads. I'd prefer to see part of that money going to an artist fund rather than the ISPs and broadband resellers.

[1] triplej.net.au and www.abc.net.au/classic/

<comment><USER8> Yes, it's dead. But basically minus the government stuff.

Well, there is NPR (National Public Radio) which is about 15-25% government funded, but that's typically news/talk/classical. Some of the edgier NPR stations might have an acoustic rock/folk set at midnight on a Friday...

<comment><USER7> What do you think killed it? How do people find good music without having to filter through all the rubbish? Does the industry rely on advertising to sell bad music? Are "Top 40" artists built by record companies and sold on TV and/or the internet? Does good music travel through word of mouth by people in-the-know? iTunes is pretty and all but I can't picture people paying to download without having heard the music somewhere else before.

Lots of generalising to do here to answer these questions I guess but I figure there's opportunity out there for someone who can make something of the answers.

<comment><USER9> I don't work in radio, I'm not a radio historian, so there's a good chance I'm violently wrong- but my pet theory is that advertising killed radio in the US. You have to fit into a small number of surprisingly rigid categories in order to participate in the big money advertising campaigns, and if you don't have those, you're liable to go dark.

There are exceptions, like the Pacifica network and oddities like KPIG, but they're few and far between.

If you're looking for some corroboration, you could check out documentaries about the early days of hip hop.

<comment><USER7> You paint a pretty bleak picture. Does anybody have any examples of USA radio that is intelligent, artist focused, youth oriented, community driven, ad free, subscription free, streaming on-line, etc? There are plenty to choose from on tunein.com but I'm looking for highlights. Sorry if this is heading too far from the topic.

<comment><USER9> That's a lot of qualifiers there.

KPIG is pretty great, but they have ads.

There are lots of college radio stations (check out KDVS and KALX) that are pretty amusing, but they're not so much "community driven" as "driven by the people who show up and pay their dues". That may seem like nitpicking to you, but it seems very relevant after an hour of frogs and Star Trek samples.

NPR stations, Pacifica stations, kind of sort of don't have ads, but they do have sponsors and pledge drives. They are pretty old-people oriented.

I'm sure someone who is slightly less NorCal centric can improve on this list.

</comment></comment></comment></comment></comment></comment><comment><USER10> Interestingly enough, he defends record companies as well here. He's in a very compromise position:

[http://blogs.wsj.com/speakeasy/2012/01/31/neil-young- defends...](http://blogs.wsj.com/speakeasy/2012/01/31/neil-young-defends-both- record-companies-and-piracy/)

<comment><USER11> To be fair: Neil always had a great relationship with his record company since being with Reprise. He'd come in and hand deliver every record, staying for playback in our artists lounge.

A great guy, super fun and always a joy to hang out with. A true music fan and appreciative of those that worked on his records. His manager Eliot is a great guy too.

</comment></comment><comment><USER12> Can you really equate piracy to radio when you can listen to what you want on- demand? This is a big difference from radio and services like Pandora which don't allow you to listen to exactly what you want when you want.

<comment><USER13> So the challenge is 'listen to what you want' versus 'discover new music'.

People will listen to something for 'free' even if they aren't sure they will like it, but they won't pay any money for something that they don't know whether or not they will like it.

Radio was a way to introduce new music, but with an iPod/iPhone/mp3 player people can carry around _days_ of music that they already know they like, and it has no annoying adverts in it, so they don't listen to the radio any more. Thus a source of discovery is cut off from them.

'Pirates', listening to music and then giving a copy to a friend who they think might like it, allows new music to be discovered. That seeding is required for artists to develop a following. Pandora does similar seeding, but like radio injects advertisements which are annoying to many.

<comment><USER14> The issue of compensation for the artist never seems to come up in these conversations. Neil Young can charge $75 for his cheapest concert tickets. So record sales mean very little to him. For younger artists this is not the case.

> but they won't pay any money for something that they don't know whether or > not they will like it.

people bought albums for decades without knowing what songs were on the album.

I don't see how it's fair to justify the acquisition of someones property with the pretense that it's gonna be better for you. Even under extreme cases like nationalisation and imminent domain, the owners are compensated. I made this comment on the Neil Young link, but it was censored. If we are so certain that the artist will benefit under the 'new' system, fine, but if he or she doesn't they have to be compensated to bridge the earnings gap.

Comparing music now to music in the 1930's is not fair, artists got paid almost nothing in the 1930-1950's. The whole industry was corrupt.

<comment><USER13> You know that old aphorism "If a tree falls in the woods and nobody hears it, did it make a sound?" For "younger artists" that is code for 'nobody knows who they are.' And that is a very important concept to internalize if you want to understand the economics of information.

Lets say you offer to sell someone an 800 page hardcover book about a wizard for $35 [1]. If they have never heard of the author they are going to politely decline. Why? because they can spend $35 on a book from an author they know they like and for whom perhaps their latest book was also read by their friends who liked it. As an economic actor in this transaction they act in their own self interest, to spend their earned income on entertainment for which they have some prediction of enjoying it. Give them a $35 coupon good for any book at Amazon and they might buy it on a whim, make them work half a day to earn that much and they won't.

So your observation about Neil Diamond is absolutely correct, there are a lot of people who have heard his music, like it, and will buy it. More importantly because there are a lot of people who have heard it and like it, the probability that a person knows someone directly who has bought it and likes it is higher. The the perceived risk of the purchase is lower.

So now imagine that you've got got an artist producing a product. Initially, there is this huge barrier to them selling their product because there are many known artists out there (and the new artist is initially unknown), and there are many 'purchase experience' consumers who are reinforcing the quality analysis of the known artists. So our new artist has no way to communicate their value to their potential customers.

So to overcome that lack of exposure, a new artist has to 'be heard' (if we're talking about music) and they do things like play bars, clubs, go to 'amateur night', and try to get a local group of people that like to hear what they play. If they are successful at that they might be able to 'open' for a famous act at their concerts, be the band that 'warms up' the crowd. Now they get to expose themselves to the people who like the main act (and presumably their musical style is similar so they feel they might be liked too) and if enough folks do like them then maybe they can be their own 'headliners'. Of course when you open for Neil Diamond and people are paying $75 to see Neil, not a whole lot of that is going to you, the warm up band.

This whole 'getting the word out' is a process that was filled by radio for years and years. It was so successful in fact that music labels would actually pay the radio stations to play their signed acts music. It was a huge scandal. But instead of thinking the money they paid the radio stations as 'lost profits' they considered it a marketing expense. And they were right. They knew, and pretty much anyone who has tried to market an 'art' product (which is to say a creative work), that people don't buy things they don't know about.

So you can ask what a new artist's work is 'worth' compared to an established artist. And to understand that you have to include the cost of making the set of customers who would buy this new artists work aware of the existence. That is a huge sunk cost, and one that used to be born by a book publisher or a record label. Once the artist is over that hump of course things are much easier. What Neil has recognized is that 'piracy' as defined by the record labels and book publishers is creating more artist awareness these days than the older channels. That is a really really important change, and it is one that artists, especially new artists, have to internalize.

Perhaps in the 'old' days your publisher would pay you $4K for a book, and if that book took off they would make a huge 'profit' on it and you would not see another dime. But on your second book with them you could negotiate better terms. There are many examples of 'hollywood accounting' or 'record label accounting' which show how they do this. The artist doesn't get any benefit early on, and only after being established to they have any leverage in those business negotiations. The 'new' way may be that the early works of the artist get 'pirated' like crazy and spread far and wide. People get exposed to them for 'free' and while the artist gets no monetary remuneration, they are offsetting that barrier of not being a known entity. As they develop exposure they will get more and more pricing control over their work, up to and including the point where people will pay millions in advance to be the first to get their next novel/song/movie what have you.

But the key to understanding this is understanding that 'value' is composed of two parts 'awareness' and 'quality.' And they are multiplicative. So if either is zero, value goes to zero. The thing that makes it still work is that the marginal reproduction cost in a digital ecosystem is also nearly zero.

[1] [http://www.amazon.com/Harry-Potter-Deathly-Hallows- Book/dp/0...](http://www.amazon.com/Harry-Potter-Deathly-Hallows- Book/dp/0545010225)

<comment><USER15> I was listening to NPR where they said the record company made about $8m off Kate Perry's record sales, whereas they were responsible for most of the marketing expense (promoting to radio stations, etc). There was another show about how much it costs record companies to try to get a summer hit, and they didn't have much to show after [1]

There's now a trend for record companies to reposition themselves as marketing agencies (which is what they actually do) where they take a cut of the total revenue (including song writing and concert sales) called 360 contracts. [2]

It'd be interesting if the entire process of songmaking were like a creative commons non-commercial project. You start with a song writer, different people doing mixes, and then when it reaches a stage where it can be monetized all people involved get paid. The question is "how to hell do you monetize this?" iTunes? High Fidelity mp3 ? Live performances? Humble bundle $1 compilations?

[1]Songs of Summer [http://www.npr.org/blogs/money/2011/07/11/137705590/the- frid...](http://www.npr.org/blogs/money/2011/07/11/137705590/the-friday- podcast-manufacturing-the-song-of-the-summer)

[2] Kate Perry's Perfect Score [http://www.npr.org/blogs/money/2012/01/20/145466007/katy- per...](http://www.npr.org/blogs/money/2012/01/20/145466007/katy-perrys- perfect-game)

</comment></comment></comment></comment></comment><comment><USER16> "Information wants to be friction-free."

That's worth thinking about.

</comment><comment><USER15> It is so true. Just as a busker would play music for anyone, and gets an appreciative tip once in a while, pre-recorded music can be seen as a leveraged way of busking.

In some way, the record industry is doing piracy a service by increasing the perceived value of music. Too bad they don't get a cut for doing that.

</comment><comment><USER17> A very apt analogy indeed. +1 for Neil Young.

</comment><comment><USER18> He should write a song about it. Here are some suggested lyrics:

      Hey hey, my my,
      Piracy will never die,
      There's more to the torrent
      Than meets the eye,
      Hey hey, my my.

</comment><comment><USER19> Its an interesting viewpoint, and one that is probably very true.

People often hear pirated material and like it so much they immediately purchase it. Not only that one album, but even sometimes substantial amounts of the artist's back catalogue. Which was and still is kind of the point with music radio.

Same with movies.

I wonder how much cash piracy actually generates as substantial income -- quite a bit I believe. And probably more than it denies. Quite a lot of people are exposed to material they would never have encountered, like it and pay up for it.</comment>


Text completion using the OpenAI's GPT-2 language model by Fabrice Bellard - <AUTHOR> http://textsynth.org <comment><AUTHOR> See the power of LibNC library[1] online! Also "lossless compression of english short messages[2]" that achieves a much higher compression rate than other general purpose compressors.

[1] [https://bellard.org/nncp](https://bellard.org/nncp)

[2] [http://textsynth.org/sms.html](http://textsynth.org/sms.html)

[3] [http://textsynth.org/tech.html](http://textsynth.org/tech.html)

</comment><comment><USER2> Input: I never entered Area 51

Generated text: and had never been in any of the facilities that were there. If the government had been involved at some point, I think there was certainly going to be some type of discussion," he said. "It wasn't an attempt to hide from me. The idea was to get my name cleared and to find out if there was any way that we could have gone in and did go in, but then to have a plan." The man has been identified as John Cipriani, a resident of Australia and a New Zealander. He was not in the US during the testing and had lived in Canada for some time. Area 51's director, retired Col. Michael E. Gerstner, confirmed that a "person of interest" was in the facility. But he insisted that he was never in Area 51, which had previously been described. The official, who also asked not to be named, described him as a man in his late 30s and

</comment><comment><USER3> It generates 40 words per second on 4 Xeon cores!

[http://textsynth.org/tech.html](http://textsynth.org/tech.html)</comment>


Five Pitfalls to Avoid When Outsourcing Software Development - <AUTHOR> https://stackoverflow.blog/2019/10/01/pitfalls-avoid-outsourcing-software-development <comment><USER2> What's happening to Stackoverflow? This reads like an advertorial? Are they going the "Forbes route" with lending out their solid brand to contributors with agendas?

</comment><comment><USER3> Looks like suspicious guest post spam</comment>


easychain – a python exploration of blockchain ledger concepts - <AUTHOR> https://github.com/davecan/easychain
I wrote this over the weekend after doing quite a bit of research into how blockchain ledgers work. I know there is some grumbling about what a blockchain is and is not, which is why the following statement is made in the project:
"This implementation focuses only on the hashed ledger concept. It specifically does not include any concept of mining or any other form of distributed consensus. It also abstracts the concept of a transaction to that of a message in general. The concept of a header and payload in messages and blocks is adapted from Bitcoin."
The focus here is on understanding how the ledger itself works. Distributed consensus is out of scope, though I would be interested in exploring a mechanism for distributed consensus of a shared blockchain. But for now it is out of scope.
Includes a few unit tests. Any feedback appreciated. <comment><USER2> Note that blockchain in its technical essence is not a ledger, as ledger is not a cryptographic primitive. Blockchain is a document timestamping system, and as such allows one to order documents. It's just that ledger happens to require some means to order the transactions (and make them unmodifiable), each of which can be easily described by some sort of document (message).

Meaning, you didn't "abstracts the concept of a transaction to that of a message". You just moved back to the underlying cryptographic primitive.

More reading: [https://en.wikipedia.org/wiki/Trusted_timestamping](https://en.wikipedia.org/wiki/Trusted_timestamping)

<comment><AUTHOR> Good point and thanks for the clarification. Glad to know I moved in the right direction. :)

I used the term "ledger" simply because that is the common term used to describe blockchains. My reason for writing the code was to explore how a hashed transaction "ledger" fits together at a more technical level, instead of as a marketing buzzword. Plus it is there in case others want to understand just that piece of it.

That link is very straightforward. I have a copy of Haber & Stornetta's 1991 paper on timestamping but haven't read it yet.</comment></comment>


Discourse now available in BitNami - <AUTHOR> http://bitnami.com/stack/discourse

<comment><USER2> Kudos for the Discourse team, the code is great, they are updating almost daily with fixes and features, and also building a community. I recommend visit meta.discourse.org.

In my opinon, the tool is very adictive.

</comment><comment><USER3> Is there anyone here who has had in-depth experience with Discourse since it was released? It doesn't seem that revolutionary to me, but maybe that's just an outsider's perspective.

<comment><USER4> I am far from a Rails programmer, but I code. I tried setting up Discourse and it was more difficult than I expected. I've read similar feedback from others who have tried.

I think this is sort-of good news. It's to be expected that others would get in to the game of hosting Discourse and I'm glad that people who want to live on the bleeding edge finally have access to modern online forum software.

But it also makes me a bit sad because there is a business model behind Discourse that involves hosting and I hope these kinds of actions don't negatively hurt the Discourse project.

For my thoughts on Discourse in general, I recently posted to meta.discourse.org: [http://meta.discourse.org/t/an-old-jive-employee-so- happy-to...](http://meta.discourse.org/t/an-old-jive-employee-so-happy-to- discover-discourse/5166)

<comment><USER5> I've put quite a bit of time into researching the Discourse install process: <https://github.com/baus/install-discourse>

I'm not a Rubyist, so it took me a longer than I would expect it would take an experienced Ruby admin. With that said, installing and running a modern Rails app is not a trivial process. I'm curious how Bitnami has addressed this.

Jeff Atwood and the team have put a lot of thought into the project. While it is in early stages, it has a lot of potential. Given their credentials, I think there is a good possibility that Discourse will eventually subsume most other open source forum projects.

<comment><USER6> Thanks cmbaus, I'll have to your steps out. Appreciate you taking the time to put this together.

</comment></comment></comment></comment><comment><USER7> This feels like a tacky advertisement for Bitnami, doesn't belong on HN.

<comment><USER8> Bitnami the YC company?

</comment></comment><comment><USER9> Just launched this. Doesn't work on Safari :( Oh browser wars, what would we do without you.</comment>


Kalman Filter Simulation - <AUTHOR> https://www.cs.utexas.edu/~teammco/misc/kalman_filter/ <comment><AUTHOR> This is not my work, it is the work of Richard Teammco. This post is a subsection of his personal website. All credit goes to him, and all the other contributors to the GitHub repo linked at the bottom of the page. He has more interesting simulations if you check the "Misc" tab of his website, including one of a perceptron.</comment>


Hugging a Medieval Book - <AUTHOR> http://medievalbooks.nl/2014/10/03/hugging-a-medieval-book/ <comment><USER2> Perhaps unrelated but if you enjoy older books, you might like this blog:

[http://bibliodyssey.blogspot.com/](http://bibliodyssey.blogspot.com/)

It has beautiful and esotiric prints and images from old books. Look in the archives. That blog has been actively updated for many years. There is some really cool stuff in the history.

I keep it in my bookmarks and just look at it every month or so. Some things are bizare and strange, some are mundane like "patterns of wallpaper for your 1800's mansion" and so on.

</comment><comment><USER3> > I could go on and explain how other, seemingly unrelated, objects have been > used in bookish terminology (the "diaper pattern" is my favourite)

Diaper comes from the Greek words meaning "diamond" or "diagonal" and "white". Diapering is a term used in architecture as well; it's not meant to be a comparison to a nappy.

</comment><comment><USER4> Which medieval books are worth reading in modern times?

<comment><USER5> Sadly I haven't had time to read much Middle Age literature but I want to get around to the following. Sainte-Augustine's Confessions Dante's Divine Comedy Petrarch's My Secret Book

I remember Sainte-Augustine by his quote "Grant me chastity and continence, but not yet" and it would be interesting to see how a hedonistic turned into one of the most famous and revered characters of the Church. Dante's Divine Comedy tells about the scholastic tradition and how the leading thinkers were introducing pagan thought into their discourses. Petrarch book shows the start of the Renaissance and how current human thought can add to secular knowledge.

<comment><USER6> One of my Latin teachers told us that "the Church would give her right arm" for a copy of the book (the title escapes me) that convinced St. Augustine to stop being a skeptic and become a Christian. That book is lost.

</comment></comment></comment><comment><USER7> Looks like something from The Restrictive Sections of Hogwarts School Library.

I hope it doesn't scream when I open it? :-)</comment>


What Holds Me Back from ClojureScript - <AUTHOR> http://jaredforsyth.com/2015/11/26/What-holds-me-back-from-Clojurescript/ <comment><USER2> Good points. I started with ClojureScript earlier this year and I agree with your article. But for me ClojureScript is still much better option than staying in JavaScript land. Performance will be solved over time with faster machines (I've purchased high-end iMac recently, so I don't feel such pain :-). Workflows for incremental compilation like Figwheel also help a lot. And I think there is a great promise that tooling will evolve quickly.

I'm the author of cljs-devtools. I think for development it is perfectly fine to use Chrome Canary. Also I would recommend you to check out this article: [https://github.com/binaryage/cljs-devtools/wiki/Figwheel- REP...](https://github.com/binaryage/cljs-devtools/wiki/Figwheel-REPL-plugin).

My public projects so far:

[https://github.com/binaryage/cljs- devtools](https://github.com/binaryage/cljs-devtools)

[https://github.com/binaryage/chromex](https://github.com/binaryage/chromex)

[https://github.com/darwin/plastic](https://github.com/darwin/plastic)

[https://github.com/darwin/faceboard](https://github.com/darwin/faceboard)

[https://github.com/binaryage/pure-frame](https://github.com/binaryage/pure- frame)

<comment><AUTHOR> Awesome! Thanks, I've been looking around for good projects to check out and hack on.

</comment></comment><comment><USER3> We have a good sized clojurescript SPA in production, and it has been a real joy to work with. We are using Reagent, which when coupled with FigWheel[0] goes a long way toward mitigating slow startup, as well as "tooling" issues in general. The live reloading is a fantastic experience.

Sourcemaps have been a big help for debugging in general, though we have had several instances of bugs taking a bit of effort to get to the bottom of because of some deep javascript stacktraces -- for the most part the java side of the compiler hasn't been a big deal. Many of these have been type related bugs, so we're looking into adding some schemas[1] going forward where it seems appropriate. Despite those issues, it has overall been a huge productivity boost. We've also witnessed this story only improving with time.

The community truly is fantastic. Lots of very smart, friendly folks doing interesting things.

[0] [https://github.com/bhauman/lein- figwheel](https://github.com/bhauman/lein-figwheel) [1] [https://github.com/Prismatic/schema](https://github.com/Prismatic/schema)

<comment><USER4> Also look into Devcards[1], looks interesting.

[1] [https://github.com/bhauman/devcards](https://github.com/bhauman/devcards)

</comment></comment><comment><USER5> Let me just preface this by saying that I've written Clojure in anger for the past 5 years and I agree with all of the author's points.

I love writing Clojure(Script) code, but I hate reading it. It fits perfectly with the way I think (when I'm writing code), but horribly with the way I try to understand code I wrote months ago.

With that said, the emergence of Elm as a viable alternative to front end functional programming has pushed all my new projects away from ClojureScript. Now, for the author's CS complaints, Elm has:

* Fast compile times, startup time indistinguishable from JS.

* Great error messages.

* Imature tooling, but that's changing quickly.

* Static type checking.

So, maybe op should give Elm a try.

[Edit: clarification]

<comment><AUTHOR> I was going to have a section on Elm, and then the post got too long :) Clojure(script) feels much more mature, and general-purpose. Elm is client- only, not nearly as many libraries, etc.

Would clojure's readability be helped by having a non-lisp pretty-printer? I've been thinking about this a bit - s-exps are great for writing, but fails to take advantage of our advanced visual pattern matching when reading it.

<comment><USER5> Cool, do write about your Elm experiences, I'd be interested to read!

Unfortunately, yes, Elm is restricted to the browser. But this might change in the future. And although it is somewhat tedious to write ports, IME Elm communicates better with JS than ClojureScript. You can just drop any old JS library and write a port for it (it will be async, though).

Sexps alone don't bother me at all. What bothers me (and I only came to this conclusion recently, after reading this[0]) is the interplay between functional code and the absence of type annotations. Sometimes it feels like Lisp just _wants_ you to write clever code, all the time. Clever Python code looks bad. Clever Lisp code looks pretty nice.

[0] [http://elbenshira.com/blog/the-end-of-dynamic- languages/](http://elbenshira.com/blog/the-end-of-dynamic-languages/)

<comment><USER6> It's interesting to hear from someone else who also finds that Clojure/Lisp code can be difficult to read. I worked with Clojure professionally for 2 years and had started to think that I was the odd one out since everyone else I worked with was just gushing over the readability of the code. At times it could be easy to read, but very often I found it hard to follow and would have to spend more time then others deconstructing what was happening.

Which is not to say that I didn't like working with Clojure. I very much did. But it always seemed to be such a chore to read others code or code I hadn't seen in a few months or more. I remember on occasion showing some snippets of code to a co-worker and commenting that I thought there was too much "clever" code in there, that it was too dense and hard to follow. The co-worker didn't agree with me though, and I guess I just resigned myself to the idea that I was the odd one out here or something.

Ultimately, I think I ended up coming to the same conclusion as you. My way of thinking (and reading code apparently) just clicks so very much better with typed languages.

(I hope no one reads my post and treats this as some kind of attack on Clojure/Lisp and s-exps. It's not. I'm just noting that the style just doesn't jive with certain types of people. And I gave it plenty of time (2 years as noted above) before coming to that realization.)

<comment><USER5> And I thought _I_ was the oddball ;)

Yup, sometimes it's easier for me to understand somebody else's OCaml/F#/Elm code than Clojure code written by myself. I still love working with Clojure, though. Go figure...

</comment></comment></comment></comment></comment><comment><USER7> I think this article is very fair and, today, you know you are ready for cljs when you no longer value all these things over the pure elegance and simplicity and power of great clojure code, which JavaScript doesn't even approach even with React and es6. The type of person who chooses to write cljs is someone who values code elegance and abstraction power above all else at any cost, and, indeed, pays that cost every day when they try to debug core.async, or try to get a newbie's machine up and running (you end up apologizing 10 times about the fragile tooling and then a hundred more time for the horrible stack traces... I hosted clojure katas for beginners at a meetup last night so this issue is particularly fresh) I could go on. But in the end it is so worth it to me because the raw power of clojure just hits all the high notes in my brain in ways no other language has.

</comment><comment><USER8> ClojureScript has some very powerful tools available (figwheel, om/next), and the community is working on resolving many of the issues mentioned in the article. Derek Slager's presentation "ClosureScript for Skeptics" is really good and covers many of these topics ([https://www.youtube.com/watch?v=gsffg5xxFQI](https://www.youtube.com/watch?v=gsffg5xxFQI)).

Myself, I prefer ScalaJS because I already know Scala, the tooling is excellent, it is fast, and the resulting JS is of reasonable size.

Fortunately, it is not an either/or decision. Both compile to JS and can interoperate without too much effort.

</comment><comment><USER9> I was roughly where you were at the beginning of the year. I've been in and out of the Clojure community for a couple years and decided to take a job writing clojurescript full time. App is around 15k loc and was initially in Om and has now been migrated to (my fork of) re-frame.

Positives: <3 re-frame. It's the first architecture in 15 years of frontend dev that I've been happy with and I've tried pretty much everything. cljs is a better language than es6. I like devcards.

Negatives: I've put two work weeks into dealing with tooling problems. I have a 5 minute build. This mostly doesn't matter because incremental builds but every so often (e.g. Tuesday) I hit a problem and have to bisect with a fresh build at each step.

While I'm happy with the language, I'm less happy than I expected to be. I'm in the process of porting devcards and re-frame patterns to (functional) Typescript for my personal projects. The language is a significant barrier to contribution from a larger community and I get a bigger lift from optional types+autocomplete than I do from protocols and macros.

Edit: Is anybody interested in a set of Sublime-ish keybindings for Cursive? I made the set for my coworkers and for the things I can't do via IdeaVim and they've been working fairly well for the past couple weeks.

<comment><USER10> 5 minutes for a 15KLOC project seems pretty strange to me unless you're building on a machine with very limited CPU/RAM. Make sure you're giving the JVM enough RAM. Also the next release of ClojureScript supports parallel builds, I've consistently seen users report 30%-300% faster builds (depends on # of cores, dependency graph).

<comment><USER9> This is on a 2012 MBA for a prod build. I see times of 140s or 180s on a fresh dev build. Times are lower on faster machines but still in the multiple-minute range. I'll tweak the build JVM settings tomorrow and see if that improves things.

<comment><USER10> Yeah just doesn't sound plausible to me. I've seen bigger projects take less than a minute on a 2014 desktop.

For big prod builds you'll definitely want to give the JVM at least 1gb of RAM, make sure you actually override Lein's defaults:

        :jvm-opts ^:replace ["-Xmx1g" "-server"]

<comment><USER11> Just as another data point, our project is 16k lines (including tests) and I just timed it at 2.7 minutes to run "lein cljsbuild once" with no difference when setting those jvm-opts. This is on a quad core 2.8ghz i7 MBP.

<comment><USER10> :compiler-stats has been a thing for a while now. This would give more information - like how much time in ClojureScript vs. advanced compilation. Also the compiler version matters - 1.7.170 is what you want to use. Otherwise you may need :recompile-dependents false.

<comment><USER11> Cool. I did not know about :compiler-stats. I'll check it out.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> There are a few weird conflations in this article that I think could use a bit of cleaning up. Why is om/next being compared to Falcor and Relay? Om in general is a very React-oriented story; why not compare how working with the two feels like?

It also feels like the author is primarily interested in client-side ClojureScript, in which case the Leiningen start-up time should really only be a problem once per...day? week? I re-start my Clojure(Script) REPL process only when I change underlying dependencies, which isn't frequent enough for it to be a major issue.

The biggest issue for me that I agree with is the immature tooling thing, but that's been getting a lot better since I also blogged about being frustrated with ClojureScript (relevant link: blog.venanti.us/clojurescript-blues/). Vim and the CLJS REPL now work well together, and I've been really impressed by the direction and velocity of Figwheel as a project.

<comment><AUTHOR> 1) I see om/next attacking the same problems as falcor and relay, and david nolen makes reference to both of them (as sources of inspiration) in the talks he's given.

2) it may only hurt once a day/week once you have an established flow going, but when trying to figure things out & start things up, you restart a lot more than that. hence the barrier to entry

<comment><USER12> 1\. Going to look at the recent state of Om/next docs, I see that you're right. I don't think the earlier iterations of the project had quite the same focus but it's clearly been made a higher priority.

2\. I think the barrier to starting a new project is unreasonably high, yes, and requires a highly inconvenient amount of configuration familiarity. Unfortunately the gap between just running the ClojureScript compiler on a single namespace file and actually configuring a viable project and build pipeline in Leiningen is quite large and really requires a concerted effort to overcome (or, to have someone nearby who's willing and able to show you what you're doing wrong).

</comment></comment></comment><comment><USER13> hi, just published a two parts step by step how to on how to do a om.next end to end example, you may find it useful:

Om.next end to end - Part I: Backend

[http://marianoguerra.org/posts/omnext-end-to-end-part-i- back...](http://marianoguerra.org/posts/omnext-end-to-end-part-i-backend.html)

Om.next end to end - Part II: Frontend

[http://marianoguerra.org/posts/omnext-end-to-end-part-ii- fro...](http://marianoguerra.org/posts/omnext-end-to-end-part-ii- frontend.html)

<comment><AUTHOR> looks neat!

</comment></comment><comment><USER14> I still view the language as a one man hackers sorta thing. I hate setting up a new project with the options I want, not to mention I always seem to be the guy submitting corrections for windows machines (come on ppl, really).

While coding it is awesome, debugging and maint is hell. I'm off to Typescript land after a great two year trip with ClojureScript. It reminded of everything I loved and hated about a dynamic language.

<comment><USER15> Yes, I am sticking with F# and Typescript. I still love PicoLisp and Shen for my own projects, and as Lisps. Shen runs on everything, and is very versatile, but has minimal libraries and community. I find both very readable months later, but then again I also love the J Programming language! Clojure/Clojurescript are too convoluted with their purposeful tie-ins to the JVM/JavaScript. Cleaner Lisps, Common Lisp, are easier for me to deal with later on when reviewing code I've written, although, I have not written anything medium to large.

</comment></comment><comment><USER16> What about midje? It reruns the tests every time you save a file, no restart required. It's completely awesome, which everything were like this.

lein midje :autotest

</comment><comment><USER17> I'm really surprised that there isn't much better debugging support for languages that use JS as a compiler target. Everyone should be able to simply debug in their source language. REPL should simply return JS objects and values, but allow people to type in expressions in whatever language they have. (Might require the compiler to be written in JS or compiled to JS, then also add an API.)

<comment><USER18> Well, it all starts with JS not having the best stacktraces (although they have gotten a lot better in the last years).

</comment></comment><comment><USER19> I've used clojurescript commercially for a couple of years. It has been a good experience.

More than anything it has completely changed my world view (and I'm a very experienced, older programmer who has seen a bit). I feel very lucky to have had this opportunity.

IMO, some of the issues you raise are genuine, some not.

For example, the JVM startup time issue is never, ever a problem. If it is, you aren't using the tools right.

I use Cursive and figwheel etc, so I find the tooling generally fine and in many ways excellent. The trajectory in this area is good.

Debugging initially can be rough. Knowing about things like cljs-devtools can dramatically improve things. But, yeah, valid point.

And, yes, poor error messages can definitely be a problem initially -- although this has improved over the last year.

To get going, I'd recommend you use this set of technologies:

\- use Cursive/InteliiJ [https://cursiveclojure.com/](https://cursiveclojure.com/)

\- use reagent, rather than om. [http://reagent- project.github.io/](http://reagent-project.github.io/)

\- use figwheel

\- use cljs-devtools with Canary for debugging

\- use Schema to provide faint typing - [https://github.com/Prismatic/schema](https://github.com/Prismatic/schema)

\- perhaps use clairvoyant for debugging [https://github.com/spellhouse/clairvoyant](https://github.com/spellhouse/clairvoyant)

\- use timbre for logging [https://github.com/ptaoussanis/timbre](https://github.com/ptaoussanis/timbre)

\- use re-frame [https://github.com/Day8/re-frame](https://github.com/Day8/re- frame) (if the app is slightly more complex) <\--- warning I'm biased

\- perhaps use re-com - [https://github.com/Day8/re- com](https://github.com/Day8/re-com) <\--- warning I'm biased

\- you may also be interested in the head start provided by [http://www.luminusweb.net/](http://www.luminusweb.net/) for client/server

-

Perhaps just start here: [https://github.com/Day8/re-frame- template](https://github.com/Day8/re-frame-template) and work out. (I'm biased)

Good luck.

<comment><AUTHOR> lots to look into, thanks!

</comment></comment><comment><USER11> The post says:

      In javascript, everything is mutable, but w/ new es7
      spread/rest syntax it is increasingly easy to just do
      immutable anyway. E.g. instead of myobj.x = newx you can
      do myobj = {...myobj, x: newx} and everything is immutable
      & persistant!

But if I'm reading this right:

[https://github.com/sebmarkbage/ecmascript-rest- spread](https://github.com/sebmarkbage/ecmascript-rest-spread)

They will be neither immutable nor persistent.

<comment><AUTHOR> right. should have "(by convention)" in there. unfortunately not (yet) language enforced.

<comment><USER11> Ah. Guess that makes sense. I'm lucky enough to be able to use ClojureScript so I guess I've fallen behind on modern JS.

</comment></comment></comment><comment><USER20> Clojure startup time is less of an issue with clojurescript. The idea is is you start the compiler and run it in watch mode.

</comment><comment><USER21> I think most of your issues really come down to not embracing or understanding a proper clojure(script) workflow and/or not really understanding the tooling that currently exists.

I double checked the date of this article to make sure this wasn't written 6 months ago and posted now.

You should check out the clojurians slack channel, there you can probably get good answers for 85% of the things that are holding you back.

Good luck with it, using clojure/script + cursive clojure + intellij has been the best development experience I've had in 18 years of professional coding! It's 110% worth the investment.

<comment><AUTHOR> thanks! Yeah, I'm really excited about clojurescript, but there is a big barrier to get over. I'm working on it, and hope to report back :)

<comment><USER7> I may have accidentally downvoted you on mobile sorry

</comment></comment></comment><comment><USER22> i just dove into clj & cljs w/o such a cost-benefit analysis b/c after writing some scheme and elisp, it seemed like it would be fun, maybe more fun than js, and for the most part, it has been.

good article overall. a point that was a little irksome was

> chrome devtools is way ahead of your cli repl (and even your editor- > integrated repl) in _a bunch of_ important ways

(emphasis added). b/c while i'm not saying the devtools is not ahead of figwheel+cider in some sense, enumerating specific want-to-haves would be more informative.

my main nice-to-have (and maybe there's something out there???) would be a way to set breakpoints for dropping into a repl. b/c of the scarcity of mutable state, it hasn't been such a problem, but there have been one of two times where i could've saved a few minutes by throwing a `(debugger)` or something in.</comment>


Normalize fridge temperatures by installing a PC fan - <AUTHOR> https://www.ctrl.blog/entry/fridge-pc-fan.html <comment><USER2> This looks cool (haha). Is it apparent to anyone how it's powered? The article says "The fan's power cables are soldered on to the step-up converter. The step-up converter is powered by the USB power supply.", but it's not clear to me where the power supply gets the power it supplies.

<comment><USER3> Maybe the wires just go in thru the door seals. I did this once for a project, and was surprised how the seal just filled around the wires.

Check out my kickstarter: [https://youtu.be/uAkJjJEljks](https://youtu.be/uAkJjJEljks)

<comment><USER4> That's exactly it.

</comment></comment></comment><comment><USER5> Pre-made, if you're lazy: [https://www.campingworld.com/camco-rv-fridge- airator-109170....](https://www.campingworld.com/camco-rv-fridge- airator-109170.html)

We use one in our RV fridge, since it often has to go from ambient to whatever we set it to, and a little circulation helps, especially if the fridge is packed. I keep a battery charger and some rechargeable D-cells. I'm extrapolating that the batteries last about a week-ish.

If the author's fridge is old enough to not have a fan for the interior, it probably doesn't have a fan on the exterior coils. Again, based on camping fridges, a quiet PC fan on the coils can make a noticeable difference.

<comment><USER6> Author said the fridge was 10 years old - it should have a fan on the bottom coils - but if the coils are on the back, then that'll take more than one PC fan (I'm not even sure what you could use - maybe a couple of box fans?).

Also - for everyone else - be sure to keep your coils clean (there's a special brush you can buy that looks like an oversized q-tip mated with a pipe cleaner), and make sure there is proper space on the top/sides/rear of the fridge for proper airflow (usually 3-6 inches of room - varies based on the fridge, and sides - some sides need more room than others, usually back side and top need 6-8 inches of room or thereabout; sides less).

<comment><USER4> The article discusses an internal fan in the cooling box to circulate the air inside the fridge.

</comment></comment></comment><comment><USER7> It's interesting that heat from the fan appears not to matter.

Do newer fridges have fans built-in? I've never heard one going; even if it's shut off when the door opens, I'd expect to hear it slowing down.

<comment><USER4> The fan does generate some heat, yes. It should be no more than 15 kW/year (it uses well under 2W but the converter is a bit inefficient). The savings are expected to be around 226 kW/year (including the added heat from the fan.)

<comment><USER8> Those units should be _kWh /year_, not kW/year (and _kWh /d_ in the article).

(Though personally I'd just use Watts exclusively, and ignore the per day and per year figures.)

</comment></comment></comment><comment><USER9> With decent circulation evening out all temperatures, it should be possible to have a fridge set at 1C rather than the customary 5C.

Is there any data in how much longer that would make my food last?

<comment><USER4> Maybe? Most foods are labeled that they should be stored somewhere between 4-8C.

I store insulin in the fridge so that would be too cold.

</comment></comment><comment><USER10> This is pretty common in the homebrew world where people have kegs in fridges/freezers.

</comment><comment><USER11> Late to the thread, but the author mentions that the fan runs when the door is opened; perhaps a relay that is opened when energized by the interior light would be a good solution to that issue?

<comment><USER4> A simple light sensor would also get the job done. However, this would increase the price and complexity of the project. There's a risk the electronics might be damaged by the cool moist environment, so starting out with as little stuff as possible.</comment></comment>


UK-Based Russian Businessman Possibly Poisoned with Rare Chinese Plant - trimble-alum https://news.vice.com/article/uk-based-russian-businessman-possibly-poisoned-with-rare-chinese-plant

<comment> trimble-alum [https://en.wikipedia.org/wiki/Gelsemium](https://en.wikipedia.org/wiki/Gelsemium)

Heartbreak grass (G. elegans) contains toxic methoxyindoles, possibly one or more forms of gelsenicines that are research targets for novel NSAID candidate molecules.</comment>


Show HN: Mobile Game – Car Hunters - <AUTHOR> https://www.youtube.com/watch?v=n2vhYLDIvu0 <comment><AUTHOR> Hi guys,

I want to share a project me and couple more guys were working on last year - Car Hunters. Essentially we built a mobile game using Computer Vision and AI.

Some problems we had to solve while working on Car Hunters:

\- we collected a pretty solid dataset of car images (~3mil photos so far). For that we built own software, which helps us to support car models hierarchy, maintain links, retrain recognition models and deliver recognition model-binaries to the end-user devices;

\- make/model recognition is done on the end-user device and both android/iOS platforms run neural network inference on GPU;

\- we built-in pretty fast and reliable object-tracker which is independent of platform as well.

So what is Car Hunters? We've all heard about Pokemon Go, where you hunt for virtual creatures. We offer you instead to get points and unlock achievements by searching for cars in real world!

More details and description can be found in Google Play and Apple App Store. Car Hunters is available only in 10 countries for now. Let me know if you unable to download it but would like to.

[https://apps.apple.com/us/app/car-hunters-discover- cars/id14...](https://apps.apple.com/us/app/car-hunters-discover- cars/id1452943781)

I would appreciate if you share Car Hunters with those, who might love cars as much as we do!

Thanks.

<comment><USER2> So are you just gamifying users collecting a large data set for you? I think that is genius.

What are you doing to encourage engagement? Why would one keep playing? Is there something other than just seeing their score go up?

<comment><AUTHOR> Hi jermaustin1! Not exactly, we don't use users' data to extend dataset. Photos made by users are labeled (classified) by existing nn, and you don't want to use results produces by nn to retrain same nn.

Currently we have points, achievements for unique cars, some useful info, like prices of the cars. But we are constantly thinking what to add more.

</comment></comment></comment><comment><USER3> This is a brilliant idea actually. This could be a brilliant addition for car resellers, given that most use their smartphones to take pictures of their car park: New listing > take photos > most of the data is pre-filled.

<comment><AUTHOR> Yes, you a right. We think about this direction. Here is another video which shows how this can be used for 'quick cars search'

[https://youtu.be/BFlaqSz0Cmo](https://youtu.be/BFlaqSz0Cmo)

<comment><USER3> Very impressive, keep up the good work :)

</comment></comment></comment><comment><USER4> After reading the title and watching first 2 seconds I thought it will fire a rocket launcher and the car would go up in flames thanks to AR.

<comment><USER5> And the car owner can deploy static defenses and traps...

<comment><USER6> That would be so cool. While you're walking away from your parking space, you get a satellite view or an AR view where you can drop defenses. I think the satellite view would be harder since you'd have to pick your parking spot so the UI can place your top down car picture and then place obstacles and defenses

</comment></comment></comment><comment><USER7> What a coincidence I have also launched very similar app recently. However, mine doesn't have the gamification concept (hunter) which I think is brilliant. Mine can be found here: [https://about.mudcar.dev/](https://about.mudcar.dev/)

<comment><AUTHOR> ha! Interesting. Did you train model yourself or find some ready available?

BTW we also have an API for car's make/model/years/color/angle recognition. We can share API key for that if you'd like: [https://carnet.ai](https://carnet.ai)

<comment><USER7> We collected images, labeled the data and trained our model all on our own. We now have about 330k images (about 1800 models). We used resnet152 to train it.

<comment><AUTHOR> I see. Sounds pretty similar to what we do.

<comment><USER7> We are just CS students and started this just for learning and experiencing with hands on computer vision and AI. So things are not very mature. Like we haven't make the inferencing on the end user devices. The recognition runs on the server instead. And we don't have many images as you do. We just crawled images on the web. Also, it doesn't work very well with cars that can't be found at where we lived, because we dont even know those models exist lol

<comment><AUTHOR> We had/have this problem too. If nn "sees" unknown model it tries to classify it as one of known models. To avoid this, we added 'Other/Other' bucket and put ~3k images of different cars/buses/trucks in there. Now unknown models in most cases are classified as 'Other/Other' label.

</comment></comment></comment></comment></comment></comment><comment><USER8> Aww man, worst timing now that more and more are getting locked down :/

maybe repost in a month or two or three

<comment><AUTHOR> Yes. I thought about that too. Totally agree, timing is not 'perfect' :(, but could not just wait.

</comment></comment><comment><USER9> Cool idea, a game using ML object recognition. Haven't tried it but it looks more reliable than Plantsnap [1].

1\. [https://www.plantsnap.com/](https://www.plantsnap.com/)

</comment><comment><USER10> I didn't really get the game idea, but cool demo and maybe a fun challenge would be to find a car worth a certain amount of money...

<comment><AUTHOR> Yes. We thought about using car's value for quests/achievements. Haven't find reliable source for pricing data yet.

Current concept idea is very similar to one you suggested. Every car is assigned with some amount of points based on car's rarity. Player is then tasked to find certain models and get points for that.

We are thinking about adding 'social' element at some point: function to share car photos comment/react on them

</comment></comment><comment><USER11> Love this idea! Perfect timing as well with other social activities curtailed makes walking the neighbourhood streets into a fun game!</comment>


Show HN: Piece by Piece introduction to Vim - <AUTHOR> https://anuragpeshne.github.io/essays/vim/1.html <comment><USER2> Interesting piece and well-written but being brutally honest there is not too much new information here. I appreciate the effort you put it but I really think the focus for new people learning Vim shouldn't be studying the keymaps it should be USING them, STRUGGLING with them and somebody pointing out "Hey why are you using the arrow keys? Try pressing <fti>!" and then they go "Oh wow!".

I once showed a friend Vim and he was really excited. When I saw him edit some text he used -- to my horror -- the arrow keys! I kept watching and at a certain point said "Ok now stop, try pressing <...>" and he listened to me and he was like "Oh boy that is awesome!".

And maybe a suggestion is to put ":imap kj <Esc>" somewhere in the beginning I honestly think that keymap is SO much better than escape.

Sorry for bashing you a little bit I do appreciate the effort but I feel like the web is already quite saturated with these Vim tutorials!

<comment><AUTHOR> Hello, thanks for the comment, as you can see, it is tough to get sincere feedback.

I agree with you that there are tons of other Vim tutorials. None of them really clicked with me, I wanted to write about Vim "my way". And I'm not claiming my way is better than other's but there might be someone who might like my version and start using Vim. I've written short piece which are intended to be consumed in one sitting, and ideally one part every day. My aim is to help user to gradually replace his editor with Vim without significant loss of productivity. For this, I'm writing about stuff bottom up, each part builds upon previous or if two parts are unrelated, the third part will sit on top of those two. And lastly, I'm not trying to cover every command or trick, just enough to get them started and proficient enough to help themselves.

I strongly agree with your other comment too: studying keymaps doesn't make anyone learn Vim, it's the struggle, the agony which rewires the brain. But I think that's the most anyone can do to teach. Amaze someone with power of Vim, and leave him motivated enough to do the hard work. You cannot, especially through a blog, force someone to do labor. But I liked your idea of making reader do something and later point out that it could have been done in a more efficient way. Maybe I'll add some exercises.</comment></comment>


Why and how Clojure and Racket – two "most modern" Lisps – differ - <AUTHOR> https://klibert.pl/posts/clojure_and_racket_history.html <comment><AUTHOR> This is a kind of a foreword to the promised comparison of Clojure and Racket. It'll take another couple of weeks to get the following two posts out, I'll email those interested. Also, there's RSS feed on the blog now, feel free to subscribe :)

<comment><USER2> An interesting article. For me the more languages I look at, the more muddied the inheritance tree.

The more I look at Common Lisp, the more I see it's genetic finger print in Clojure. Racket's #sequence abstraction is very similar to Common Lisp's #sequence abstraction. Clojure's #collection abstraction is perhaps, like Racket's #sequence an extension of Common Lisps #sequence, or perhaps a more direct implementation of Smalltalk's #Collection abstract class.

The more I look at Smalltalk, the more likely I think this may be since a lot of the behavior of Clojure #collections looks like message passing -- i.e. Clojure #collections are also functions that accept arguments.

<comment><AUTHOR> Thanks :)

I think CL's biggest influences on Clojure are in: the namespace system, support for multimethods, and macro system (and keyword lists). Now that you mention it, CL also has sequences, and I can easily imagine Clojure's `into` function to be Rich's answer to CL's `map result-type ...` problem with the generic (but in the meaning of "generic function", not generic multi-method, as noted in [1]) interface. But you're right: in Smalltalk Dictionary _is_ a subclass of Collection, and Clojure collections are famous for working with lists, vectors, sets, and _also_ maps.

I think only Rich himself could say which, CL or Smalltalk, had a bigger impact on Clojure's collections. I know from Wiki that he worked with CL and Java (so maybe, Java collections? I don't know Java...), but don't know what other languages he learned. I now see Ruby is listed among influences on Clojure: how close are Ruby's Enumerable to Smalltalk collections? The inspiration could have come that way :)

[1] [http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node141.html](http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node141.html)

<comment><USER2> Smalltalk is said, by people who probably know, to be one of Ruby's points of inspiration [1]. Whether Hickey studied it or not when designing Clojure is a matter of speculation, on the other hand, avoiding Smalltalk when designing a language smells a bit like professional incompetence and that's not something I would assume about Hickey...since I assume he thought many magnitudes more about Clojure's design than I have.

My interest in Smalltalk is sort of as background for Ruby just as some of my interest in Common Lisp relates to Clojure...things like Leinigen and namespaces make much more sense after ASDF and (in-namespace...) because ASDF and (in-namespace...) are more in the RTFM tradition their counterparts in the Clojure world and so the abstractions are more explicitly documented. Probably because Common Lisp comes from a time when there weren't blogs and documentation was pretty much all there was.

[1]: [https://www.ruby-lang.org/en/about/](https://www.ruby- lang.org/en/about/)

<comment><USER3> Instead of blogs people used to publish/discuss on mailing lists:

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


Show HN: Icon Strike, easily test iOS icon designs on your home screen. - <AUTHOR> http://www.flinto.com/strike Icon Strike allows iOS app designs to test their icon designs on their iPhone or iPad. Upload an icon image and send the install URL to your device.<p>You can upload a group of images for the four different device icon sizes and the correct image will be used on the corresponding device. <comment><USER2> Simple to use as a service and has all the nice little details to make it a great experience.

</comment><comment><USER3> Flinto is a no-frills prototyping tool for designers. Love it!

</comment><comment><USER4> Awesome! Love how simple and clear it is to use.

</comment><comment><USER5> Nice! I am using this right now.</comment>


Releasing Jetslide … naming it Hackernews+ would have been childish - <AUTHOR> http://karussell.wordpress.com/2011/07/12/introducing-jetslide-naming-it-hackernews-would-have-been-childish/

<comment><AUTHOR> And naming it hackernews++ would have been dusty ;)</comment>


Marissa Mayer breaks her silence on Yahoo's telecommuting policy - <AUTHOR> http://tech.fortune.cnn.com/2013/04/19/marissa-mayer-telecommuting/ <comment><USER2> > _The shift in policy affects roughly 200 of Yahoo's 12,000 employees._

I see this statistic and I'm reminded at how much of a disingenuous uproar the policy change caused. Every time I read comments regarding this issue I'm more convinced the real issue is who issued the policy, and not the change itself.

A new mother canceling work at home while simultaneously raising her own child in the office is not hypocritical. It supports her position. And yes, a private nursery is a perk she receives as CEO.

A CEO gets a nursery: Outrage! CEO gets a private bathroom, private airplane, private car, meetings on the golf course, etc: normal operating procedure. I wonder why the nursery gets singled out for ridicule?

<comment><USER3> It seems a bad thing to me to expect that employees give up telecommunication even for family reasons when the CEO doesn't have to endure such a tough choice because they get a special CEO nursery.

<comment><USER4> Male CEO's can act like alpha animals, take what they want and flaunt blingy perks, but let a woman build a nursery... Employees _never_ get the same perks as CEO's.

<comment><USER5> Right because male CEO's have never been ridiculed.

<comment><USER4> When they are they laugh in the face of the peon daring to question his greatness.

</comment></comment></comment></comment></comment><comment><USER6> There's a second elephant in the room, though a slightly more subtle one:

Was the elimination of WFH at Yahoo housecleaning? There have been _many_ reports from former Yahoo insiders that the WFH policy was abused to no end by a small number of people.

I remember there was a large Microsoft layoff a while back during the fallout from the '08 crisis, which insiders also reported to be housecleaning. After all, what better opportunity to cut loose a lot of dead weight the company has accumulated, without incurring the requisite "is the sky falling at Microsoft?" reporting?

Personally I'd rather have people able to work remotely, but flexibility in staid, slow, crufty large corporations is more often a source of abuse rather than actual flexibility. I'm willing to believe that Yahoo's move was justified.

<comment><USER7> They lost a lot of good people during that period. They may have rid themselves of "dead weight" but scared the best employees off in the process (by severely hurting employee morale).

</comment></comment><comment><USER8> Perhaps the most common and controversial aspect of Mayer's decision was the claim of hypocrisy regarding child care. Staying home with children to avoid the cost of a full-time nanny is a common reason for telecommuting. Some claimed hypocrisy for her installing a persona nursery next to her office for her own newborn while making Yahoo significantly less family friendly for its employees.

Although I never agreed with these criticisms, I'm annoyed that she apparently said, "I need to talk about the elephant in the room" and then avoided addressing this complaint at all. Unless she did and this was simply bad reporting which omitted any reference to it - I'd appreciate a link to the fill keynote transcript if one exists; I can't seem to find it.

<comment><USER9> > Staying home with children to avoid the cost of a full-time nanny is a > common reason for telecommuting.

I'm not sure I understand your point. Could you please elaborate?

How does working from home avoid the cost of a full-time nanny? If I work when I'm at home then I can't, by definition, take care of my children at the same time.

Assuming a minimal commute, working from home doesn't save hardly any time at all.

<comment><USER10> We're not talking about babies here. My six year old can take care of himself just fine if he's fed and has an adult around in case of emergencies. I have worked in my home office for hours while he played in the rest of the house, watched videos, etc.

Daycare can be $500/week, for the privilege of simply having an adult be near my kid. If telecommuting helps me avoid that cost, it's a significant incentive.

<comment><USER9> Hmm, then I guess your kids are better behaved than mine:) I've tried this and it was so disastrous that I'd never let an employee do this.

There is just no way you can get proper work done if you are responsible for looking after any kid under the age of 12:)

I agree it may save money and time but I've never seen anyone not have it affect their work. You must be a rare individual:)

<comment><USER11> > I've tried this and it was so disastrous that I'd never let an employee do > this.

It's not your employees' fault you didn't raise your children properly. Kids in Asia are doing hard manual labor on a farm at 7 or 8. They can definitely keep quiet and entertain themselves at that age.

<comment><USER12> Fairly certain having 7 or 8 year old kids doing hard farm labor is "raising them properly." More like "desperate poverty."

<comment><USER11> My point is that for the majority of human history, 7 and 8 year olds were expected to do things that were a lot more intense than simply not bugging their parents for a few hours at a time while they did office work. They aren't constitutionally incapable of it, and OP shouldn't make assumptions about the upbringing of his employee's kids.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> I think turnaround CEOs have the some of the toughest and most public jobs in the industry. The particularly difficult roles are for those individuals that already have a successful past (Mayer with Google) that are then implicitly 'expected' to bring new energy and vitality to companies simply because of those past successes.

Look at Ron Johnson, for example. His genius did wonders for Apple but the same concepts failed with a different industry in his tenure with JCPenney. There's no silver bullet, and what Mayer's doing with Yahoo may have some similarities with what was done early on with Google, but in order to cement Yahoo's independent identity, she's going to have to pursue some goals that aren't identical to things she's done before.

Ending WFH is perhaps a start. The externalities (noisy lashback from media, etc.) don't help, but she's going to have to face a lot more of that in order to institute long-lasting change.

<comment><USER14> You know how this works right? Everyone will call crap until the CEO is not doing well. Once the company shows signs of improving, they will immediately talk about the radical things they did and how they told you so.

</comment></comment><comment><USER15> > The shift in policy affects roughly 200 of Yahoo's 12,000 employees.

So what you're telling me is that only 1.6% of the company's employees WFH at all? Or is this 1.6% who work remotely in the usual case? I highly doubt only 200 employees take regular WFH days. I'd expect to get one or two if needed a week, so I'd suspect this impacts a LOT more people than she admits.

> ..but they're more collaborative and innovative when they're together.

So e-mail, chat, hangouts/skype, voip, etc. don't exist, as far as Yahoo is concerned? Collaboration does not require physical proximity. And if it's only 200 people who are working remotely, why is a mere 1.6% of the company making a DRAMATIC difference to collaboration and innovation within the company? I'm seeing a contradiction here.

I still maintain my stance on this move: it's a horribly shortsighted and poorly/hastily made decision which will negatively impact Yahoo significantly more than anyone expects. If someone is abusing a lenient policy, you ban that individual from working remotely, not the entirety of your company. What a massive overreaction.

<comment><USER16> > So e-mail, chat, hangouts/skype, voip, etc. don't exist, as far as Yahoo is > concerned?

"Do not exist" isn't required for the claim to be valid; "are not as effective as face-to-face, in the room communication at facilitating collaboration" is sufficient. And, a fairly widely recognized fact.

<comment><USER15> You need to quantify "are not as effective." Is it 1000000000000x as effective? 5% more effective? If it's not boolean (such that "do not exist" is the effect), then the problem is probably significantly less severe than it would appear.

For the record, I completely disagree. For instance, personality would likely dictate what the most effective method would be on an individual basis, so that no general claim can be accurate.

I've personally been involved in collaboration over e-mail that was more productive than most meetings I've ever taken part in. I've never thought "this sucks, we should be doing this meeting in person," but I have thought the opposite many times.

<comment><USER16> > You need to quantify "are not as effective."

No, actually, you don't. Even they are even, in aggregate, even marginally less effective than face-to-face, they are a net loss to collaboration.

> I've personally been involved in collaboration over e-mail that was more > productive than most meetings I've ever taken part in.

Sure, for lots of things, email is a better choice than a meeting. You can easily do email with people being in the same office building. OTOH, there are things where a quick face-to-face is more effective, and you can't do that when people are telecommuting.

<comment><USER17> > _they are a net loss to collaboration._

Implicit is the assumption that high-bandwidth collaboration is necessary and useful to all people in all functions at all times.

It's not.

A designer might just need to crank out a PSD without 30 people dropping by their cube. A programmer might want to work on their tickets (which were created with collaboration) without talking to anyone.

Or, like you said, there may be some meetings where being f2f is better. It happens a lot. I schedule my wfh around my meeting days, usually.

<comment><USER16> > Implicit is the assumption that high-bandwidth collaboration is necessary > and useful to all people in all functions at all times.

No, implicit is the assumption that high-bandwidth collaboration may become important to the roles of the people affected by the policy on short notice, not that it is necessary to all people in all functions at all times.

<comment><USER17> So the message is, be physically in the office because you (or I) _may_ need high-bandwidth collaboration today? Sounds inefficient.

I'm willing to entertain the idea, but I'm not even sure your "it might be needed" explanation is true for BigCo's... look at the proliferation of open office plans, for example. COLLABORATION 24/7, YAY!

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> It's nice to see she does actually still have her head screwed on correctly. I think she could have avoided a lot of criticism if she had only spoken on the subject earlier.

It is fair to say that what works for one company will not work for another. Therefore it cannot represent an opinion on the industry as a whole.

</comment><comment><USER19> Yahoo needs to reinvent itself. Working from home is so unimportant in the big scheme.

<comment><USER20> I think WFH is key to making good products, for focus and an external view. If Yahoo is still making peanut butter, getting internalized viewpoints isn't going to help improve external product development and perception. Groupthink is heavy in the office which is bad for external views of product. Also this concentrates employees to one locale, again lending to internalized viewpoints of how things are.

<comment><USER12> You're right that entropy moves that way, but you can solve this culture problem in the office with the right maintenance. Implementing a strategy that lets people feel comfortable throwing disruptive ideas up the ladder helps a lot. I tend to find the groupthink comes from certain personalities imposing their will on offices. At times its necessary but you also risk putting your staff in lockstep.

</comment></comment></comment><comment><USER21> It's interesting that both Yahoo and Best Buy both cancelled their work from home programs during a time when they are struggling to save their businesses. It would be far more relevant to me if a company that was posting record profits decided to kill its work from home program. Sounds like they were looking for a scapegoat.

</comment><comment><USER22> It's not terrible to cancel that program for a while. Her previous counterparts spent too much time on politics and people at home weren't WORKING on what the company needed. When the company is out of control, somebody has to take reigns..and it usually sucks for everybody.

Just remember, MOST employers in the country DON'T OFFER work from home at all. Or of the do offer it, it is primarily for sales people.. That are never actually "at home". This whole thing is a top 10% problem.. Only the top richest companies offer top employees these type of options.

Now child care and commuting is a DIFFERENT problem. Perhaps Yahoo doesn't need all its staff in crazy expensive trendy cities. They could relocate some offices out to other places property values and commute times are more reasonable... But that is for another time.

</comment><comment><USER23> Why not just fire people who don't produce? If they are on the clock bullshitting, remote or at the office, ax em and leave perks in place for good employees. If you have logs of them charging the company and not doing anything, fire them.

</comment><comment><USER24> The new Yahoo Weather app mentioned in the article is really nice. However, one thing I'm surprised it doesn't let you do is take a photo.

</comment><comment><USER25> "My goal is not to change the culture, but to amplify its greatness"

</comment><comment><USER26> I'm glad she did that. One of the things that was a mess at Google was an intensional/extensional conflict. Throughout the 2000s, Google was viewed as "the cultural leader" and that exposed it to a lot of executive bikeshedding. Not everyone feels entitled to an opinion about how _Google_ should run, but everyone has an opinion about how _the cultural leader_ should be run. If I ever build a company that's a cultural leader, I'm going to try to have the reputation of a #4 player for that reason.

I admire Mayer a lot for having the _cojones_ to say, "This isn't necessarily right for everyone, but it was right for us."</comment>