Must have JavaScript books - <AUTHOR> Hello! i am total noob to webdev. i am looking for good javascript resources .like this one:<p>http://www.drdobbs.com/cpp/developer-reading-list-the-must-have-boo/240148421?pgno=2 <comment><USER2> Of course, You don't know JS by @Getify: [https://github.com/getify/You-Dont- Know-JS](https://github.com/getify/You-Dont-Know-JS)

Also, check out some of the quality __, free courses you can find on Pluralsight:[https://absolute-sharepoint.com/2015/12/free- pluralsight-6-m...](https://absolute-sharepoint.com/2015/12/free- pluralsight-6-month-subscription.html)

Goodluck..!

</comment><comment><USER3> _JavaScript: The Definitive Guide_ from O'Reilly. It is organized around the distinction between Javascript the programming language and Javascript as a browser API...and it contains a great deal of technical detail on both.

One thing that makes learning JavaScript more difficult is that most resources don't distinguish between the API's (Node is another) and the language.

<comment><AUTHOR> +1 i will definately give a shot

</comment></comment><comment><USER4> To understand a lot of basic stuff in a simple and very effective way the "Javascript: The good parts" from Douglas Crockford is really good at about 160 pages.

It lays down the origins of the language and a lot of its quirks.

[http://javascript.crockford.com](http://javascript.crockford.com)

</comment><comment><USER5> I have always liked this one:

[http://eloquentjavascript.net](http://eloquentjavascript.net)

</comment><comment><USER6> Start with this one: [http://jstherightway.org/](http://jstherightway.org/)

<comment><AUTHOR> +1 it looks very thorough and neat.thank you</comment></comment>


Covert Body Area Network Using Electro-Quasistatic Human Body Communication - <AUTHOR> https://www.nature.com/articles/s41598-018-38303-x <comment><USER2> Microchip sell a commercial version of a similar technology called "Bodycom", which has a similar low data rate and deliberately short range away from the human body.

It's quite old now though, so it's possible modern BLE systems are more power efficient.

[https://www.microchip.com/design-centers/embedded- security/t...](https://www.microchip.com/design-centers/embedded- security/technology/bodycom-trade-technology)</comment>


How Radians Work in 30 Seconds - <AUTHOR> https://lh5.googleusercontent.com/-dJsRfi7_Crw/Utl_miUi3II/AAAAAAAA8jM/2ODyIK015WI/s450-no/How+radians+work.gif <comment><USER2> This is by LucasVB, who is prolific at animating math for Wikipedia: [https://en.wikipedia.org/wiki/User:LucasVB/Gallery](https://en.wikipedia.org/wiki/User:LucasVB/Gallery)

His other works are also worth checking: [http://1ucasvb.tumblr.com/](http://1ucasvb.tumblr.com/) (for example, he has a super-nice explanation of Fourier series).

<comment><USER3> The first time I was able to properly visualize sine and cosine was from an old 8mm film reel produced in the 1950s by IBM which showed essentially this same animation:

[http://1ucasvb.tumblr.com/post/43524004530/drawing- process-f...](http://1ucasvb.tumblr.com/post/43524004530/drawing-process-for- the-sine-function-since)

After seeing that, trig really just "clicked".

<comment><USER4> I was introduced to sine in elementary school. Then we had 6 months of trigonometry in high school. We even touched infinite series at the end of high school. Then at univ we had some trigonometry again but not much, some infinite series and stuff.

Nowhere along the way I was shown that sine is actually how high above the ground you are when traveling around the circle. It was always some length of side in right triangle divided by length of another side. That was technically the same thing but nowhere close as intuitive and natural. Even when at some point I got interested in math and start thinking about sine as y coordinate it was always in relation to angle of a triangle (rooted in the center of the circle, one point at radius, the other at x axis below it) and not in relation of actual distance traveled along the circle. At some point radians appeared and we were just taught that's other way to measure angles, so you know: 0 degrees is 0, 90 degrees is 1/2 of PI and 360 degrees is 2 PI. I thought it was kinda weird to this that way but w/e probably people have their reasons...

The concept is so beautiful and natural yet it was made as artificial as possible during math education I had. No wonder so many kids don't get or like math :(

<comment><USER5> > sine is actually how high above the ground you are when traveling around the > circle.

That makes total sense, and I wish it would have been explained like that to me, too.

My math teacher in HS spent an hour and a half explaining how derivatives work by just working through stuff on the board after he insisted no one take notes, and it made everything so clear. And reading through the Tau Manifesto finally made me understand what was going on in trig at a basic level.

I totally agree with you about how artificial math education can feel, and I think if larger concepts were introduced more like that many more people would be able to get much better at it.

I read something a couple years ago about how some school was experimenting in a math program starting in 8th grade where they would teach algebra, geometry, and calculus concepts all at the same time. I guess the students were really picking things up fast, and understanding how everything fit together better.

<comment><USER6> >> _sine is actually how high above the ground you are when traveling around the circle._

I learned my trigonometry when trying to figure out how to rotate and move objects around in 2D space for a computer game. I learned then, that _sin_ is responsible for y axis, and _cos_ for x axis.

But I never ever phrased this as "how high above the ground you are when traveling around the circle". I like the elegance of that; things would probably have clicked for me immediately back then, had I heard a sentence like this (and ditto for cosine being "how far to the right are you").

Bottomline, I'm in agreement with both OP and GP here.

</comment></comment></comment></comment></comment><comment><USER7> It's not an animation, but when I saw the visual illustration of eigenvalues/eigenvectors on this page I was blown away:

[http://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors](http://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors)

I studied linear algebra in college and computed plenty of eigenvalues/eigenvectors, but until I saw that graphic I had no idea what they actually were. I can't believe in retrospect that a textbook would explain them _without_ an illustration like this.

<comment><USER8> I was also blown away the first time I saw that animation, it really helped to clarify the _notion_ of what eigenvalues and eigenvectors are. However, that is only a geometrical interpretation which is a very particular case, as eigenvalues/vectors appear in many many other applications which don't really have a geometrical representation or meaning. That's probably why books tend to stay away sometimes from particular examples, even though I have to say that this one specifically is very useful.

<comment><USER7> Isn't the geometric formulation equivalent to the algebraic one? What makes the geometric representation any less general? Of course in higher dimensions you can't formulate it in terms of a drawing, but for 2 it seems to capture the entirety of the concept.

<comment><USER8> Degrees of freedom don't necessarily have to have a geometric meaning in some (many) systems! For example, in basic analysis of mechanical vibrations you can use modal analysis to decompose a coupled system (two harmonic oscillators with viscous dampers in series for example) into two independent systems. The eigenvalues here correspond to the natural frequencies and the eigenvectors are the modal shapes, which give you an idea of how the oscillators actually end up moving after some disturbance. There is some geometrical significance here but is not quite as easy to interpret.

</comment></comment></comment></comment><comment><USER9> Not to be dismissive or condescending, but do a lot of people have trouble understanding radians? I was under the impression that they were standard material in high school trig/physics.

<comment><USER10> I got excellent grades in high-school math. I took a year of math in college. I knew how to calculate with radians, but _never_ understood their basis until viewing this animation, despite asking people on a number of occasions what the benefits were vs. degrees. (They never gave me a real answer to that question, and certainly never derived the basis for radians.)

I now feel enlightened; too bad it has been more than 20 years since I last needed to calculate with them! However, it'll probably come in handy when I help my children with their math homework in the coming years...

<comment><USER11> So here's a question -- is it just the animation that helped, or is it the combination of the animation and being 20 years older? Or, more specifically, having the luxury of being able to throw brain power at the subject without having to worry about learning material for several other subjects, and many sub-topics within all those subjects, all at the same time.

<comment><USER10> I'm sure that it all helped. But I definitely remember asking, on several occasions, why we would ever want to use radians rather than degrees, and why they seemed to be in such weird increments. And no one ever really told me.

The animation was helpful in that it explained everything very quickly and obviously, obviating the need for a numeric or verbal explanation.

</comment></comment></comment></comment><comment><USER12> Very nice.

Practical: take a 15cm ruler and drill small holes at each end. Thread a 1.2m ish loop of string through the holes so there is a radius of 57cm. Tie the string together about 20cm from the ruler.

The result lets you measure angles on the horizon, e.g. width of Moon ( _not_ Sun with children please!) and the altitude of navigation stars near rise and set.

[http://en.wikipedia.org/wiki/Kamal_%28navigation%29](http://en.wikipedia.org/wiki/Kamal_%28navigation%29)

[http://kaloujm.com/page_kamal_uk.php](http://kaloujm.com/page_kamal_uk.php)

</comment><comment><USER13> Needs a version with tau: [http://tauday.com/](http://tauday.com/)

<comment><USER14> Thanks for this. Tau seems nice, I'll try using it from now on and see if it makes things simpler (judging from what I've seen so far, I'm optimistic about it).

<comment><USER14> Looks good so far.

[https://github.com/shurcooL/Conception- go/commit/78c4bad7219...](https://github.com/shurcooL/Conception- go/commit/78c4bad7219ccf92c5a217a274f1ba1f3ef4f3c3)

</comment></comment></comment><comment><USER15> Nice visualization. Many confusions could have been avoided had "radians" been named "radiuses". Measuring angles in spanned "radiuses" minimizes abstractions and explains the 2*pi factor. (Radii works too.)

</comment><comment><USER16> I muddled through it learning electronics not realizing I was not quite understanding it, this helps.

Who was it that said something along the lines of " If you can describe a complex thing to someone briefly in simple terms that shows knowledge" Feynman? Einstein?

Whoever said that I find it profound because most people can learn something eventually but to _know_ something, knowledge, I find close to impossible, very hard.

<comment><USER17> This is probably not what you are thinking, but C.S. Lewis said, "Any fool can write learned language: the vernacular is the real test. If you can't turn your faith into it, then either you don't understand it or you don't believe it."

<comment><USER16> Similar and it's the gist of it. Understanding something well enough to teach it to someone who doesn't, some people seem to be able to learn enough to get by but not teach others what they are supposed to know.

</comment></comment></comment><comment><USER18> Nice! They should use this in schools.

<comment><USER19> Some do, that's how I learned them.

edit: I still think the most confusing thing about radians when learning them is the 2 pi. This seems so arbitrary.

We now use Tau at work and it makes everything easier to understand.

<comment><USER20> Why arbitrary? C=2pi*r. It's degrees that are arbitrary.

<comment><USER21> C = tau * r. Why divide the circle in half?

<comment><USER22> A = 2 _tau_ r^2. Why divide the circle in half?

The early use of pi was calculating area and it was derived based on that. At least as far as history can tell us. Records are a little sketchy that far back.

<comment><USER23> The argument in favour of tau in the formula for the area of a circle is this: To find the area of a circle with radius r, you integrate the circumference of every circle with radius between 0 and r. The integral of tau*r with respect to r is 1/2 tau r^2. Since 1/2 ax^2 is such a common form when dealing with integrals, it can be easier to remember this way.

<comment><USER22> That's a weak argument. Integrating 2a * x is also insanely common in dealing with integrals. And really if you're deriving the area of a circle and integrating 2pi * r gives you pause you're not on a good road to begin with and removing a 2 from some equations isn't going to help much.

edit: forgot that * would make everything italicized.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> For those who prefer a text definition:

       radians = arc length in a circle with R=1

<comment><USER25> Length of which arc?

<comment><USER26> The measure of an angle in units of radians is equal to the length of the arc subtending that angle in units of radii.

</comment></comment></comment><comment><USER27> This article is so rad!

I love when something is explained in such an excellent simple way and was a good refresher for me. This is how things should be taught.

</comment><comment> alok-g Interesting to note that the author, LucasVB, uses a custom PHP library using GD to make these animations. He explains why he finds alternatives like Processing, Matplotlib, etc. insufficient here:

[http://1ucasvb.tumblr.com/faq](http://1ucasvb.tumblr.com/faq)

</comment><comment><USER28> According to Carl Munck in "The Code" ([http://www.youtube.com/watch?v=Xw9lTB0hTNU](http://www.youtube.com/watch?v=Xw9lTB0hTNU)), radians were the unit of measure used to build and position the megaliths.

</comment><comment><USER29> 30 seconds? More like 206264.

</comment><comment><USER30> What is that little angle after the 3rd r that completes the pi-r?

<comment><USER31> pi is 3.141...

so it's the .141... part

</comment></comment><comment><USER32> Man...why wasn't I shown this gif in calculus?

</comment><comment><USER33> Rocket science.</comment>


Are cities the new countries? - <AUTHOR> http://www.bbc.co.uk/news/education-35305586 <comment><USER2> [https://news.ycombinator.com/item?id=10923741](https://news.ycombinator.com/item?id=10923741) 90+ comments</comment>


Qualcomm Is Accused of Violating Antitrust Rules in Europe - <AUTHOR> http://www.nytimes.com/2015/12/09/technology/qualcomm-is-accused-of-violating-antitrust-rules-in-europe.html?ref=technology&_r=0 <comment><USER2> Hmm. Somewhat biased presentation in the article with use of the words "the latest in a growing number of competition investigations targeting American technology companies."

Gives the impression the EU is deliberately going after US companies when in fact the majority that are investigated for anti-competitive acts are European.

<comment><USER3> Indeed.

We all profit from having a free market, for that to be existing consumers need to have a choice; the market has to be either free of monopolies, or we have to make sure the monopoly on one market (say, web search) doesn't quickly turn into a monopoly for other markets (say, mobile OS, web maps, etc), too.

<comment><USER4> "We have to make sure there are no monopolies" (or that monopolies don't "spread") is a dangerous approach, since it leads to the politician's fallacy. It may not even be possible to keep a relatively free market while making sure of that.

The question to ask is: are these EU investigations effective at reducing the number and spread of monopolies? And if they aren't, what should we do?

Because looking at the Microsoft case, the effectiveness seems dubious.

<comment><USER3> In the Microsoft case, the effectiveness was still noticeable.

The concept of the Microsoft case: Make sure that Microsoft can not get a monopoly in the web.

How it was done: Install no browser by default, let people pick. People chose what they had heard of, often Firefox or Chrome.

Result: It led to an almost instantaneous drop in IE market share on new windows installs.

And it most definitely helped end IE's monopoly over the market.

With Google, it will be far more problematic, and might even end up with Google getting broken up into several companies, or even banned from some markets, or even forced to operate like a governmental monopoly, and integrate competing products equally as they integrate their own.

<comment><USER4> The data show no significant long-term change after the BrowserChoice screen was introduced (in March 2010): [http://gs.statcounter.com/#desktop-browser- eu-monthly-200807...](http://gs.statcounter.com/#desktop-browser-eu- monthly-200807-201510)

IE was dropping rapidly before, and it kept dropping more-or-less at the same pace. Firefox actually _started_ dropping right around that time.

People want to believe, but where's the evidence?

</comment></comment></comment></comment></comment><comment><USER5> Qualcomm is a very nasty company. One of the worst of its kind. Their pointless attacks on free codecs[1] "just because" demonstrates it as well.

[1]: [https://datatracker.ietf.org/ipr/1520/](https://datatracker.ietf.org/ipr/1520/)

<comment><USER4> What does that link represent? Isn't it just a declaration that they have patents which may conflict with Opus? Isn't that just what a patent holder is expected to do?

<comment><USER5> It represents their nastiness. They were contacted and it was explained to them how their claim is invalid and those patents don't apply to Opus. But they refused to remove this claim, "just because" (may be they like creating FUD). You can ask Opus developers for more details on this. Qualcomm acted out of bad will here.

</comment></comment></comment><comment><USER6> I don't disagree with this, but this is exactly what Intel has been doing, too, especially with the Atom platform in mobile. And Intel has a track record of abusing anti-trust laws, so why hasn't anyone given a second look to Intel's practices again? Maybe Intel is just better at hiding it in "deals" with OEMs.

> Europe's antitrust officials in Brussels said that Qualcomm, one of the > world's largest makers of chips, had abused its dominant market position in > the region by offering financial incentives to smartphone and tablet > manufacturers that agreed to buy equipment solely from Qualcomm.

<comment><USER7> Intel, as in [http://ec.europa.eu/competition/sectors/ICT/intel.html](http://ec.europa.eu/competition/sectors/ICT/intel.html)?

I think the antitrust regulators mostly act on complaints and given the time frames they work in, it seems to be rather complex, so they don't take on too many of them. So I guess it's just that nobody complained too loudly about Intel in recent years.

EU regulators also have to deal with domestic cases that don't typically end up on HN. Check [http://ec.europa.eu/competition/elojade/isef/index.cfm](http://ec.europa.eu/competition/elojade/isef/index.cfm)

</comment></comment><comment><USER8> Also in China.

[http://www.reuters.com/article/us-china-qualcomm- idUSKBN0LD2...](http://www.reuters.com/article/us-china-qualcomm- idUSKBN0LD2EL20150210)</comment>


Hydrophobic, dirt-shedding spray is indistinguishable from magic - <AUTHOR> http://boingboing.net/2013/02/08/hydrophobic-dirt-shedding-spr.html

<comment><USER2> That looks really slick. The cost isn't too outrageous things like ceracoat and duracoat seem to be in the same price range, of course those are not hydrophobic but do add a layer of protection.</comment>


A deep dive into Multicore OCaml garbage collector - <AUTHOR> http://kcsrk.info/multicore/gc/2017/07/06/multicore-ocaml-gc/ <comment><USER2> I never managed to understand why so many people were apparently longering for multicore support. I just can't believe many are impatiently waiting for this feature to start using the ocaml language for some projects requiring multicore support, and I became impatient myself just to see what those projects are.

In recent years where servers are to scale to many machines I found myself using less and less kennel threads. Also it seams GUIs are mostly web theses days. Most remaining fields I can imagine where you would want kennel threads, ocaml would not fit anyway because of GC and lack of control over memory layout.

So I really wonder...

<comment><USER3> In Go you can just do "go doWork()" and the scheduler runs the function as a coroutine on some kernel thread, thus allowing your program to make use of all cores.

The ability to just throw goroutines at the scheduler changes how you approach writing programs. For example, say you want to process an input that consists of lots of individual records. You can run the input stream in one goroutine, then spawn a bunch of worker goroutines that each receives records on a channel for processing. Since Go uses real threads and doesn't have a global lock, you can get nearly linear improvement in throughout here.

You wouldn't do this in, say, Ruby or Python, where the concurrency situation is about the same as in OCaml. Ruby has threads, like OCaml, but their slowness means they're not really usable in the same way as goroutines.

Parallelizing apps by forking child processes and communicating input and results via pipes is something I've done a lot in Ruby, and it's a really awkward, heavy-handed concurrency model.

<comment><USER4> In OCaml there is Lwt. It provides very light-weight cooperative threads. The context switches are very fast and composing cooperative threads allows the writing of highly asynchronous applications. For instance, in the versions of Go prior to 1.5 goroutines used to run on a single core. And as of 1.5 the variable GOMAXPROCS can be set to the number of cores. EDIT:clarify the difference between concurrency and parallelism.

<comment><USER3> Lwt looks nice, but also seems a lot more intrusive to me than, say, Go. It's based on promises (so it's very explicit), and if I remember correctly, in order to do any I/O you have to use the Lwt mechanisms instead of the standard ones (which block).

How does Lwt interact with third-party libs that aren't written to use Lwt? I know from Ruby that libevent-type stuff such as Eventmachine doesn't combine all that well with non-async code.

Go made a good call in making all I/O blocking. That means code is easy to read and write. It comes with downsides, such as that you _have_ to use goroutines, but for most developers it's a more productive concurrency model. (Unfortunately there's no alternative; you can build a blocking system out of a non-blocking one with no overhead, but the opposite is not true. When I first started with Go I was surprised that you can't "select{}" on a file descriptor or socket, or indeed any custom implementation, in the same way that "range" is magical and only works on built-in types.)

<comment><USER5> With algebraic effect handlers (the concurrency story of multicore OCaml), you can write your I/O code in direct-style, but retain the advantage of non- blocking I/O. As such, you have the advantage of goroutines, but this is also an opt-in. The asynchronous I/O is implemented as a library and is not baked into the language, and hence you can write your own I/O library. For more details, see our recent draft paper: [http://kcsrk.info/papers/system_effects_may_17.pdf](http://kcsrk.info/papers/system_effects_may_17.pdf).

</comment></comment></comment></comment></comment><comment><USER6> OCaml has always intrigued me as something to learn, but it seems I always read equally as many reasons that it's not good, not ready, or why I should try Haskell instead. Does anyone have experience to say yay/nay on worthwhile learning, know of any companies using it heavily, or know of any large cleany written codebases from which to study?

<comment><USER7> IMO the best part about OCaml is that it's just so _fun_ to write code in. The type system is a million times more expressive and elegant than anything the world of Java/C# offers and more rigorous to boot. And unlike Haskell, you can cheat a little and write imperative code if you really need to. The library ecosystem could be better with OCaml though, but this is a chicken-egg problem and not an indictment of the language itself.

<comment><USER8> _> you can cheat a little and write imperative code if you really need to_

I'm not sure if this is cheating.

Yes, this can be misused to introduce side-effects where there should be none.

However, the strict evaluation by default (and lazy evaluation only when explicitly marked) has a huge benefit that you can not only reason easily about correctness (as in Haskell), but also reason easily about performance. The latter you can't do in Haskell without huge assumptions about the optimizer. In that regard, Haskell is similar to SQL: For small SQL queries it is pretty clear how it will be executed, but for large SQL queries it isn't clear at all which route the query planner will choose.

Having said that, reasoning about performance is even better in Rust, which is heavily inspired by OCaml but allows to to reason about memory access, closing the gap that you can reason about OCaml's performance only while ignoring the GC.

<comment><USER9> > Having said that, reasoning about performance is even better in Rust, which > is heavily inspired by OCaml but allows to to reason about memory access, > closing the gap that you can reason about OCaml's performance only while > ignoring the GC.

Rust is a really different topic. It's an imperative low-level language with functional trappings, not the reverse. First off, "reasoning about memory access" really means "think about what part of code owns which data", which is non-trivial, especially considering the various ways for sharing data in Rust.

Secondly, trying to do idiomatic OCaml in Rust is a terrible idea. Idiomatic OCaml is all about immutability and recursion. Immutability means allocation, and idiomatic Rust is pretty much all about avoiding allocations. And recursion is also a bad idea, especially considering Rust does not have TCO. It's not a dig at Rust, which is an exceedingly interesting language of its own, but Rust and OCaml have completely different philosophies.

<comment><USER10> Idiomatic rust avoids _heap_ allocations, but it very much encourages immutable stack allocation...something that OCaml also tries to encourage.

Rust started out _a lot_ like OCaml, and gradually moved away from it whenever they needed to make a compromise to improve its position as a systems language. You start to see it with big things like how the pattern matcher works, but you also notice small things like idiomatic capitalization (lower_snake_case for functions, UpperCamelCase for types). The original compiler was even written in OCaml. The language borrowed a lot from OCaml and the ML subculture is still really strong on the core development team. That shows through enough to persuade ML-inclined engineers to use it even when they don't need a systems language. I'd say there's a really strong reason the comparison still exists even if they've moved apart over time.

<comment><USER11> > Idiomatic rust avoids heap allocations, but it very much encourages > immutable stack allocation...something that OCaml also tries to encourage.

I'm not sure I'm following you here; one of the more common criticisms of OCaml is generally that it (unavoidably) puts too many values on the heap. I mean, even floats get boxed by default, unless the compiler can avoid that.

<comment><USER12> > even floats get boxed by default, unless the compiler can avoid that.

Yikes, that seems like it would destroy performance.

<comment><USER11> It's one of OCaml's biggest weaknesses, but it's also not as bad as it sounds.

One, records and arrays of floats don't suffer an additional level of indirection.

Two, the compiler is actually pretty good at unboxing floats these days. Arguments of non-inlined functions are generally the major reason for boxing to happen (because of ABI requirements). Inner loops should generally be free of unnecessary boxing.

Three, even when boxing happens, keep in mind that OCaml uses a very fast bump allocator (which is also inlined). This means that heap allocation of short- lived values is more like alloca() than malloc().

OCaml is still not the language that you'd want to write performance-sensitive numeric code in, but it's generally fine when floating point math is only one aspect of your code or when you're using it as a way to interface with C/Fortran libraries (such as with Owl [1]), sort of like how Python uses NumPy.

[1] [https://github.com/ryanrhymes/owl](https://github.com/ryanrhymes/owl)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I'm guessing a lot of other languages could benefit from this. So what I'd like to see is a runtime environment and garbage collector decoupled from the actual language. Something like the LLVM project, except focused on the runtime system (and different variants) rather than code generation.

<comment><USER5> There is already one! See Malfunction [0,1]. There is an Idris and Agda backend for malfunction.

[0]: [https://github.com/stedolan/malfunction](https://github.com/stedolan/malfunction)

[1]: [https://www.cl.cam.ac.uk/~sd601/papers/malfunction.pdf](https://www.cl.cam.ac.uk/~sd601/papers/malfunction.pdf)

</comment></comment><comment><USER3> So what's the status of Multicore OCaml? Will it be merged into the mainline any time soon?</comment>


Show HN: Name generator which can create millions of unique names - <AUTHOR> https://www.instantnamegenerator.com <comment><USER2> A few things with this:

\- It doesn't work with JS disabled :(

\- I typically want applications like this client-side only because I could use this for creating diceware-like passwords, and I don't want any of this logged on a remote server.

It's making remote requests here which is annoying

        /api/suggestion_service;word=xxx?returnMeta=true

<comment><USER3> Is it even possible for it (or any similar tool) to be client-side only and work without JS?

</comment></comment><comment><USER4> Add revenue and increase usefulness by adding domain name checks/show only ones with available .com/.org/.any etc, and affiliate link to the domain provider

<comment><AUTHOR> Thanks, that's a cool idea!

</comment></comment><comment><USER5> I have a database of Arabic first names and last names.. I can give it to you if you want to see how it integrates with your generator?

E-mail me if you do

</comment><comment><USER6> Unfortunately, Pokemon names being generated are a mess. Too much consonant collision happening, they almost look like totally random strings. The Game of Thrones ones are pretty good though!

</comment><comment><USER7> Note: it completely thrashes your browser history. Making every setting push a new entry is not a good idea.

<comment><AUTHOR> Thanks for the feedback, I've made some adjustments so I'm not always pushing a new state on generation

</comment></comment><comment><USER4> I would love a "contains X letter" filter

</comment><comment><USER8> if you just check it against available .com domains !!!

<comment><USER9> You can try [https://uniq.site/en](https://uniq.site/en)

</comment></comment><comment><USER10> Works for domain names as well.</comment>


GitLab 6.3 released: open-source software to collaborate on code - <AUTHOR> http://blog.gitlab.org/gitlab-ce-6-dot-3-released/ <comment><USER2> A few earlier discussions, for those looking for backstory:

3.0 release (Oct. 2012): [https://news.ycombinator.com/item?id=4687455](https://news.ycombinator.com/item?id=4687455)

4.0 release (Dec. 2012): [https://news.ycombinator.com/item?id=4959417](https://news.ycombinator.com/item?id=4959417)

5.0 release (Mar. 2013): [https://news.ycombinator.com/item?id=5422950](https://news.ycombinator.com/item?id=5422950)

6.0 release (Aug. 2013): [https://news.ycombinator.com/item?id=6270446](https://news.ycombinator.com/item?id=6270446)

</comment><comment><USER3> For those who aren't familiar, Gitlab is essentially an open-source clone of Github.

For those who already use it, this is a good time to upgrade, because multiple security vulnerabilities were recently fixed [1]. (You can upgrade to a patch version within the same major/minor release, e.g. 6.2.3 to 6.2.4, but it's not too much more effort to just upgrade to the latest 6.3 release).

[1] [http://blog.gitlab.org/multiple-critical-vulnerabilities- in-...](http://blog.gitlab.org/multiple-critical-vulnerabilities-in-gitlab/)

</comment><comment><USER4> If you want to give it a try in your computer or in the cloud you can use one of the images from bitnami. We already have updated them to gitlab 6.3

[http://bitnami.com/stack/gitlab](http://bitnami.com/stack/gitlab)

<comment><USER5> One other thing from the GitLab GitHub repo ([https://github.com/gitlabhq/gitlabhq/blob/master/README.md#i...](https://github.com/gitlabhq/gitlabhq/blob/master/README.md#installation))

"Digital Ocean 1-Click Application Install Have a new server up in 55 seconds. Digital Ocean uses SSD disks which is great for an IO intensive app as GitLab. Look for GitLab under 'Select Image' => 'Applications' when creating a droplet."

</comment></comment><comment><USER6> I'm considering GitLab for use at work. How does it stack up against Atlassian Stash? ([https://www.atlassian.com/software/stash/overview](https://www.atlassian.com/software/stash/overview))

<comment><USER7> I've had to compare the two. At the current state, Stash is better than GitLab in almost all ways. Better UI, more features and other small things that make a big difference (e.g. repo sync).

GitLab, on the other hand, has two advantages over Stash. Firstly it's open source (+free). Secondly and most importantly, GitLab is under active development and there is a new release with reasonable amount of content every month.

I haven't installed Stash, but for what it's worth GitLab installation and upgrades have been really straightforward.

<comment><USER8>
        At the current state, Stash is better than GitLab

Yes.

        GitLab, on the other hand, has two advantages over Stash ... GitLab is under active development and there is a new release with reasonable amount of content every month.

No.

Stash 2.9 was just released [1] about seven weeks after Stash 2.8 [2] about seven weeks after Stash 2.7 [3].

[1] [https://confluence.atlassian.com/display/STASH/Stash+2.9+rel...](https://confluence.atlassian.com/display/STASH/Stash+2.9+release+notes)

[2] [https://confluence.atlassian.com/display/STASH/Stash+2.8+rel...](https://confluence.atlassian.com/display/STASH/Stash+2.8+release+notes)

[3] [https://confluence.atlassian.com/display/STASH/Stash+2.7+rel...](https://confluence.atlassian.com/display/STASH/Stash+2.7+release+notes)

<comment><USER9> Stash isn't open source, though.

<comment><USER8> Hence the ellipsis...

</comment></comment></comment></comment></comment><comment><USER10> 2 biggest downsides to GitLab:

1) It's a resource hog. Big time.

2) It's incredibly hard to set up. The installation instructions and the development instructions are essentially the same. Key point, an end user _should never_ have to `bundle install`, _ever_.

<comment><USER11> Agreed on both counts - I blame Ruby.

We enjoy using it, but to new users I would recommend looking into gitbucket

[https://github.com/takezoe/gitbucket](https://github.com/takezoe/gitbucket)

written in scala and no install necessary!

<comment><USER12> I didn't know about gitbucket and just tried it. It is a war file that brings everything. It is easy to setup and can run standalone for tests: java -jar gitbucket.war. The UI is mostly github. First impression is really good.

<comment><USER10> Installed it and am impressed as well. Wonder how this has stayed underneath the radar. Can turn off that bulky GitLab droplet now.

</comment></comment></comment></comment><comment><USER13> there is also [http://gitblit.com](http://gitblit.com) \- only dependency is java.

looks like its quite feature rich - federation, verdict integration, plugins, active directory integration, etc and doesn't look like a github clone.

<comment><USER12> We are using gitblit. Installation and use is super easy. We have integrated it with LDAP for authentication and Jenkins for auto builds using hooks.

</comment></comment><comment><USER14> GitLab is cool, but Gitorious is where it's at. 3.0 just came out bringing many improvements and it's AGPL licensed.

<comment><USER15> Absolutely not unless you want to trash your server on install.

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

<comment><USER15> [http://www.reddit.com/r/programming/comments/1rbgpr/gitlab_6...](http://www.reddit.com/r/programming/comments/1rbgpr/gitlab_63_released_opensource_software_to/cdlno4z)

</comment></comment></comment></comment><comment><USER16> How does GitLab compares to Gerrit? At work we are massively using Gerrit and loving it, but as I can see, GitLab has also a neat CI integration.

<comment><USER17> GitLab.com co-founder here. GitLab has merge requests to do code review for feature branches. These include assignments and line comments. You can't assign a review to multiple people but it is easy to mention people to get them to chime in. Also, it has +1 & -1 voting aggregation :-)

</comment></comment><comment><USER18> Not meaning to hijack, but would love to hear about an equivalent for mercurial that runs on linux.

</comment><comment><USER19> If you prefer python, Rhodecode is free for up to 20 users [https://rhodecode.com/features](https://rhodecode.com/features)

<comment><USER20> Clearly that is not comparable as GitLab is FLOSS.

<comment><USER21> As far as I understood, RhodeCode's core is open source (GPLv3) and even the proprietary parts are free for teams up to 20 users.

<comment><USER20> Ok, good to know, but core being open ≠ open.

</comment></comment></comment></comment><comment><USER22> Does it have public repos?

<comment><USER2> That was just added last month, in 6.2: [http://blog.gitlab.org/gitlab- ce-6-dot-2-released/](http://blog.gitlab.org/gitlab-ce-6-dot-2-released/)</comment></comment>


Artistic style transfer for videos [video] - <AUTHOR> https://www.youtube.com/watch?v=vQk_Sfl7kSc&feature=youtu.be <comment><AUTHOR> Paper here: [http://arxiv.org/pdf/1604.08610v1.pdf](http://arxiv.org/pdf/1604.08610v1.pdf), and possibly a better video here: [https://www.youtube.com/watch?v=Khuj4ASldmU&feature=youtu.be](https://www.youtube.com/watch?v=Khuj4ASldmU&feature=youtu.be)

<comment><USER2> The video linked is much better IMO.

</comment></comment><comment><USER3> I can imagine making good use of techniques like these for some of my game ideas.

It would also enable films like A Scanner Darkly to be made with much smaller animation budgets. [https://m.youtube.com/watch?v=eke5VnpNcNk](https://m.youtube.com/watch?v=eke5VnpNcNk)

</comment><comment><USER4> Like the "morph" fad of the early 90s and the Photoshop/Kai filter fads -- I feel like I'm just waiting for a Geico commercial or OK Go video to use this so we can call it done and move on.

This stuff kinda looks like crap and there seems to be a race to demo as much ugly, unfinished trippy stuff as possible. With the web, I wonder if people will burn out on it before agencies get a chance to mine it to sell cars and insurance.

There certainly is a higher bar now for this sort of publishing. Watching these amateurish videos -- poorly paced and awkwardly chopped together -- just doesn't fly in 2016.

<comment><USER5> I think you're incorrect - this is the future of animation.

Whilst these are pasted together samples - imagine the power of animating a piece, then being able to adjust the style at will. This takes a ton of manual work out of that, and quite magical to me.

<comment><USER4> This isn't animation, it's painting. And animation is composited in layers so it wouldn't need any of this (poorly done!) scene segmentation. You really think Hollywood hasn't done these sorts of obvious shader experiments and tossed them out because... well, they look like schlock and middle America doesn't get the art history reference anyway?

If you want to make something look like an oil painting dig out SIGGRAPH papers from 20 years ago. If you want to cop the style of a reference painting (fad!) then code it up properly inside Blender and render something. Even if artists decide to use this approach, this isn't the way the technology will be deployed in animation.

<comment><USER6> Surely one could use this to previsualize stylistic changes before committing to repainting by hand?

<comment><USER4> That really isn't the way it works. Hollywood spends millions developing a look. If they want to see a mockup, they spend the bucks, because the magic really does come from the human element. If anything, seeing a robot do it poorly turns off producers. It's anti-inspirational. It implies something is either cliche or about to be commodified. That's the last thing they want before embarking on a multi-year, couple hundred million dollar artistic endeavor -- whether movie or game.

There are tech teams inside these companies (of course) and they do take input from academia (Gollum's skin...) but, having been there, it most certainly doesn't look like this.</comment></comment></comment></comment></comment>


Ask HN: Has NLP Helped You? - <AUTHOR> I recently came across this book on shaping human behaviours - https://www.nlpco.com/nlp-the-essential-guide/
This looks very fascinating to me and I want to dive deeper into it. I have 2 questions:
1) Has NLP helped you? If yes, how and if No, why not?
2) Where to get further training on NLP and adopt it in regular course of life? <comment><USER2> You might be interested in Derren Brown's take on NLP. He started to study it, didn't like it, then spent years trying to _not_ get certified. Eventually they snuck/forced the certification on him anyway. Really bizarre and perhaps a tad cultish.

In any case, NLP has some apparent actual science, but generously soaked in a huge dose of snake oil. If you ever take lessons on hypnosis, public speaking, self-help, etc, you see the exact same principles renamed and rejigged for the purpose at hand. Same concepts, different salesfolk.

If you want to fast-track your knowledge in the parts of NLP that actually seem to do something, learn rapid induction and conversational hypnosis instead. But even then you'll still have to entertain a certain amount of snake oil. A lot of rapid induction ideas only work on people actively trained to respond correctly - just like with the 1-inch chi no-contact punch nonsense. At that point, it is still interesting, but utterly useless in practice.

Every time these things become commercially viable, they forget that they only planned on stealing the good bits, and eventually add in all the fake stuff just the same.

There is a fellow named Igor Ledechowski that seems to be one of the only people who have studied these concepts in order to model the parts that work. Check out his ideas on conversational hypnosis. It seems people like Anthony Robbins have paid a lot of attention to this way of thinking, and it definitely seems to have worked well for Bill Clinton's impeachment trial.

<comment><AUTHOR> Thanks. This is a great piece of advise.</comment></comment>


'Amazon effect' could have impact on inflation dynamics - <AUTHOR> https://www.reuters.com/article/us-usa-fed-inflation/amazon-effect-could-have-impact-on-inflation-dynamics-paper-idUSKCN1LA0IO <comment><USER2> The "Amazon effect" was previously known as the "Wal-Mart effect" and the same issues that are not attributed to Amazon were caused by Wal-Mart namely:

* Effect on local businesses

* Cost of low paid social services for the government: 'Walmart store costs taxpayers between $900,000 and $1.75 million per year for social services for its workers, such as healthcare'

* Low inflation and wages.

Walmart created ultra efficient logistics pipeline from China to US end consumers and was competing aggressively with price even in US made products.</comment>


Ask HN: Would you work at a startup that requires you to use Linux? - <AUTHOR> /throwaway account
All of our systems (development, live, etc.) run Linux with a relatively complex configuration.  We're thinking of issuing our first new hires (all software devs) pre-configured Thinkpad T Series (http://shop.lenovo.com/us/notebooks/thinkpad/t-series) and only allowing local development on those machines.
We suspect it is possible to get our development system running in other operating systems (OSX/windows), but we have no idea how long set up will take and prefer model and OS standardization.
I realize some 2/3 of you use OSX.  Are you particularly attached to the Mac and/or its OS - or would you willing to work with a Thinkpad/Linux development environment?
Note: We're cool with anyone choosing their IDE, GUI, etc.  We'd just rather not deal with A) buying and managing radically different laptop models, B) getting packages our system requires working in other operating systems, C) insecure systems (e.g. HD encryption is a must).
Extra question: A more general question is how often do startups mandate using their issued equipment for work?  I've seen this done at every place I've worked thus far but am not sure if it is generally true. <comment><USER2> If your stuff runs in Linux, your stuff runs in Linux - people can deal with that. I love OS X, but will use anything that's necessary to do a job...I have a desktop at home running Win7/Ubuntu specifically for that purpose, though I almost never touch it except to manage long-running tasks that I'd rather not tie my laptop up with.

Mandating that all dev must be done on a particular Thinkpad model, though, is a bit of a company smell. I can't think of many good reasons to _prohibit_ other machines from being used.

I'd suggest the Thinkpads, by all means, but I wouldn't ban everything else; unless the hardware requirements are _very_ specific, different hardware should make no difference at all, as long as people have the same software running.

Even as far as OS goes, if someone's able to get everything going on their own time on their own Macbook, is that really a problem worth worrying about? Provide the standard config, but if someone wants to go above and beyond, who cares? They've always got the standard rig to fall back on...

<comment><USER3> <http://news.ycombinator.com/item?id=1712035>

_The distros have killed Python_

Just a counterpoint to "If your stuff runs in Linux, your stuff runs in Linux"

<comment><USER4> It's a terrible counterpoint. If your stuff runs on linux, it's perfectly possible to install a second python and use that (if you need any of the features added recently. Which most of the time, you probably don't).

<comment><USER3> No it's not - also from the linked article

 _Not only that, but in many distros if you "upgrade" you can actually destroy base systems needed to manage the OS. Because upgrading Python is either painful or nearly impossible..._

Point being that it is not unreasonable for companies to expect homogeneity and focus on innovating on features, rather than supporting dev environments.

In most cases, it isnt a problem, but often it turns out to be. For example, my linux machine has vm.overcommit_memory set to 0, which Redis aint comfortable with.

What I notice, however, is that people dont mind when they are "forced" to work on OSX (and given free Macbooks). I wonder if it is truly standards "Nazi-ism" that people are concerned with or is it simply a case of teh shineeyy.

<comment><USER5> > Because upgrading Python is either painful or nearly impossible...

It's not actually that difficult. You need not upgrade your python. You just need one more python. I have been successfully using this setup on RHEL 5 and Ubuntu. And you can couple it with virtualenv and pip to have a sandbox. I would say it has become standard practice in the python dev community.

</comment></comment></comment></comment></comment><comment><USER6> I don't think I saw it mentioned here, but one thing that you should consider is that restricting the platform can give the impression that you are standards Nazi's. I left a company for just this reason. I ran the web shop and could not even put a Mac on the network "due to security reasons" to test Safari (back when it was a mac only product). Later when I wanted new software (CMS, Source Control) I had to comply with company standards so that we could leverage purchasing agreements and political deals. There was never a focus on the right tool for the job but rather decision by committee and back room deals.

It was a painful experience and one that drove talent right out the door. I literally saw the best and the brightest no showing for work, never to be seen again (not on my watch). At the career level of a senior developer, if you have people no-showing with no notice you have a serious problem.

Anyways, point being, when I see we use platform X and only X. It translate into my mind that a company has clueless management and a bunch of lazy admins who don't want to do their job. Nothing will drive developers away like admins putting restrictions on how they get there work done.

Be very careful of the image you present to prospective hires if you restrict their system choices. Developers and designers cherish their freedom to create, if you restrict it you could drive the best and brightest away from you company.

Also, don't take this as I am saying this is what you guys are doing. I just want you to be aware that it can send this message, as I am sure a good deal of senior technical people have similar war stories to my own.

Personally I would adopt a virtualization technology and tell the developers it has to work in you officially sanctioned virtual. How you get there is of no consequence to me, so long as it is a reproducible process. Tell people what to do and not how to do it, the how is what you hired them for.

</comment><comment><USER7> I wouldn't work for a business that didn't trust me to choose my own tools. This includes things like locking down the system so it cannot be customized.

<comment><AUTHOR> I edited the summary to note that we are not (entirely) blocking system customization.

<comment><USER8> Blocking system cofiguration is a totally different issue. A lot of coders are especially tied to their OS of choice, and with Linux, even different distros can be night and day. There are some distros that I don't think I could reasonably work with (not to name names). And I suspect a lot of coders are pretty inherently mistrustful of what might be lurking in a preinstalled system that they aren't allowed to wipe. (Keystroke logging? Remote VNC? Is the camera on right now?)

I haven't worked at a place yet that didn't budget a little time up front for me to get up and running, but it's mainly the feeling of restriction that gets to me. What if the coders get upset enough that they start developing remotely, pushing all their code back and forth over ssh/rsync/whatever, and using their laptops as thin clients? Do you block ssh traffic? Ouch. Lots of coders are brilliant and love subverting restrictions. It seems keeping everything locked up could turn demoralizing for both sides to say nothing of the huge time sink.

</comment></comment></comment><comment><USER9> I wouldn't particularly care that it's linux but I'd sort of take it as a bit of a red flag that even as a startup you're so obsessed with controlling your employees. One of the reasons people want to work at startups is because they get to be more independent and free. It also tells me that you're planning on hiring a low standard of employee who is not capable of figuring out deployment issues on their own platforms. Seriously, if you're hiring half good people they will be figuring out and telling _you_ how to deploy to whatever platform they like best.

FWIW, my preferred development environment is still ... Windows. Even though I spend most of my day typing unix commands (either to servers, VMs, or in my Cygwin prompt). I have about a hundred utilities that I've slowly cultivated over the years and these make me as efficient as hell. I'd actually like to have a good reason to switch such as a company mandate though :-)

<comment><USER10> Could you share what your utilities are?

</comment></comment><comment><USER11> Honestly I wouldn't work at a startup that required me to use anything _but_ Linux.

<comment><USER12> I dream of the day I'm allowed to use Linux as my main OS. Maybe time to move jobs.

</comment></comment><comment><USER13> You should totally ignore the cost of the laptop and managing it. It's a really stupid thing to worry about when the productivity of your hires is 10000x more important.

All great programmers have spent many years programming. They know how to make themselves productive. Let them buy what they need (within a budget).

Even big companies could do this. They're just too stupid. There's no excuse for startups.

<comment><USER14> > _Let them buy what they need_

Sure, here's $700. Go buy whatever you need.

<comment><USER15> Compared to a hacker's salary, the difference between $700 for a Thinkpad and $3000 for whatever they want is negligible.

</comment></comment></comment><comment><USER16> Maybe's its because I've been working for 20+ years but I actually care very little about what OS I have to use - just about every contemporary OS is "good enough" to get work done on.

However, obsessing about this kind of stuff just seems kind of wrong for most start-ups - the amount of time you spend thinking about this kind of thing probably doesn't give you the reward you think it does and you might well miss out on the extra benefits of testing stuff in a more heterogeneous environment.

In this day and age thinking about this kind of stuff without considering VMs is silly - they are more than fast enough to use as day-to-day dev environments.

</comment><comment><USER17> Regardless of the Linux requirement, these things stood out to me:

"only allowing local development on those machines" "insecure systems (e.g. HD encryption is a must)"

That kind of restriction had better come with laws mandating it. I would not work for a company that doesn't trust me to use my own machines to do work. I think that you're worrying about "managing radically different laptop models" shows that you aren't trusting your devs to be competent enough to manage their own machines.

<comment><USER18> Requiring hard disk encryption doesn't sound unreasonable to me, especially considering the speed and convenience impact these days is pretty minimal. Laptops are stolen/lost all the time.

That said, I'd be hesitant to work for a company that demanded I use specific software for no apparent reason. There are plenty of good reasons, of course, though it's not clear whether any apply in this case. Either way, I don't think I'd tolerate not being root on my development box.

</comment></comment><comment><USER19> Standardizing development on a very specific environment is not unreasonable and is actually fairly common. If you know what sort of environment your software will be running in, then it makes sense to capitalize on that and avoid wasting effort - getting your dev system running in a zillion different environments, with ever-so-infuriatingly-slightly different versions of make/bash/whatever will chew up a ton of dev and testing time for no real benefit.

</comment><comment><USER20> I do everything in linux already (development, web surfing, documents, etc), so I would have no problem with using linux at work.

I think there are more Linux users on HN than you realize. I found this poll: <http://news.ycombinator.com/item?id=687267> which seems to indicate that there are roughly the same number of linux users as OSX users.

<comment><USER2> I suspect a lot of people using OS X would be perfectly fine with Linux, but Apple's hardware and support go so far above and beyond what you get from most stock Windows laptop manufacturers, it just feels like you have a better product in your hands when you buy a Macbook Pro than it would if you bought the relative beast of a machine you could get if you went for something non- Apple.

And OS X works well enough (and does things in just a Unix-y enough fashion) that there's no really compelling reason to use Linux on the Apple hardware. Not to mention those of us that do iPhone dev...

<comment><AUTHOR> I agree that for most development projects, OS X will work fine. We've had interns in the past though who failed to get even the basics of our system working in os x. The complete one is guaranteed to not run due to kernel modules we use that are only available for linux.

On the hardware, is not receiving Apple's a dealbreaker? Apples is definitely quite nice - and if we issued someone some low-end netbook I would definitely see a morale issue that could occur. But a Thinkpad T-series is very high end (imo, better than a macbook when using linux)

<comment><USER2> Not at all a dealbreaker, no - if you're buying the systems, it makes sense to buy what you are able to afford and support the best.

I was more responding negatively to the idea that other machines wouldn't be allowed to be used in development at all (personal machines, for instance, which almost every person worth hiring will have at least one of, and in many cases, which they'll vastly prefer to use), but I re-read, and realize that you mentioned security concerns. That changes matters quite a bit, assuming the security issues are really important (having an internally-perceived killer app and worrying about it getting out -> not necessarily very important; working in an industry where competitors regularly steal trade secrets [finance and gambling, for instance], or where regulations/investors demand tight security, -> important!); I would usually be annoyed if I was not allowed to use my personal machine for dev, but if there are legit security requirements, it's a lot more understandable, and I wouldn't have any problems at all using a standardized stack.

Honestly, from my point of view I'd be fine with any OS restriction that's not Windows. It sounds like OS X is not a real option for the work that you need people to do, so it's perfectly reasonable to insist on Linux, and the Thinkpads are very nice machines (I actually quite like the "nub" for mouse control), so I don't think you'll hear too many complaints if you offer them.

</comment></comment></comment></comment><comment><USER21> If you're mandating a specific OS then you're going to risk losing talent that prefers other OSes. On the other hand you will attract people that like said OS.

At our place we don't give a rat's behind about what you run in a VM, but your main OS is either Windows 7 or OSX because it has to run PGP WDE or Becrypt, and neither play nice with multi-boot OSes.

Having said that I know one guy in the office who just boots up his Win7 box, fires up an OpenBSD VM and does everything in there, and no-one has any problems.

Virtualisation on the desktop is mostly free. Let people who have a valid business case for Windows use it, in a VM if you're uncomfortable with bare metal Windows support.

</comment><comment><USER22> it's important to test on the same configuration as production. that said, why not allow virtual machines?

<comment><USER23> Testing, yes... but laptops?. It is important for QA and or Staging environments to match production, but not developer laptops.

<comment><USER24> The real value I've gotten from using a vm is that it's easy to replicate across different developer machines. It's quick to setup and all the developers have matching dev environments. I also don't like messing with my base system all that much just to get a web app running.

</comment></comment></comment><comment><USER25> If it makes sense, I'd have no problem doing it. If I don't see a logical reason behind it, I'd take it as a warning sign that the company wants to control my development OS without cause. If you make it clear in the job posting and you have an actual reason behind it, I don't see any problem.

</comment><comment><USER26> I think you should let your developers choose which OS they prefer to use, with the clause that they have to make it work them selves and warn them that getting help for Linux is a great deal easier.

I have always been able to pick my own OS in the places I have worked so far. I would be suspicious of a place that tried to mandate any OS, even if it happened to be my preferred choice.

</comment><comment><USER27> It would be hard for me to work in another system, so yeah - linux is definitely ok. I even prefer to work on whatever works on the live systems, since I'm basically doing devops kind of work (even if it's not actually called like that) - so when we were on centos, I was on centos, after moving to debian, I was on debian...

On the other hand, how good / responsive is your internal IT support? If I'd have to wait for someone to install some packages on my work PC, I'd end up with half of the system recompiled under my $HOME rather soon. It may not be true for other development environments, but I need to test out a lot of new stuff on my own.

However, I wonder why noone mentioned that using laptops as a main dev machine is a weird idea. Low performance, not ergonomic for long work at the desk, weird straight keyboard, small screen... I didn't know any better previously, but right now, I'd give up lots of other stuff for a MS natural and 2 screens (seriously - that's like a complete minimum for a serious developer).

<comment><USER28> What's to say those laptops aren't supplied with 2 large monitors, a dock, an ergo keyboard and a nice mouse? The advantage of laptops is it gives you the flexibility. You can get beefy laptops.

<comment><USER27> Well... you certainly could do that. Then again, you're not as flexible, since your desktop gets messed up once you disconnect from 2 screens.

I'm pretty sure that a sensible developer's desktop + sensible developer's laptop cost about the same as one beefy dockable laptop which can handle 2 screens. Seriously beefy laptops tend to be not very portable unfortunately because of the size + weight. (I do not consider laptops above 17'' portable anymore - if it doesn't fit in a backpack, it's too large) Also working on the laptop all the time will kill your battery (or you might risk leaving it out for a long time and discharging it completely) - which breaks the flexibility idea again.

Plus, If I had a desktop and a laptop, I'd just use synergy to have 3 screens available ;) Laptop screens are perfect for having terminals with `tail -F some logs` quickly available ;)

<comment><USER28> The tools around docking are pretty good. Much better to have that than 2 separate dev environments (laptop and desktop). In terms of bulk, my laptop is a 13" so not very bulky. It could be a bit more powerful but the main problem is the HDD (not SSD) and the awful corporate virus scan.

</comment></comment></comment></comment><comment><USER29> Honestly, I think of a company like a F1 racing team and the developers as the drivers. It's OK to have policies and processes in place but the devs/drivers are the ones who have to use the equipment the most and will be most in-tune with their nuances. I have always believed in empowering the developers as much as possible because at the end of the day, their productivity is a direct result of their own actions and not the managements'.

I would say have a configuration in place, but if a developer wants a different setup, let them be the ultimate decision maker in the tools they use, even if the management thinks that they have something better.

The only company I've ever worked for (out of 4 web design jobs) that insisted certain hardware/software was an ad agency where the owner had no knowledge of web development but liked apples because they thought they were cool. I had to put up with the first-gen intel macs on OSX for about 9 months before I left.

</comment><comment><USER30> run your dev environment in a VM

<comment><USER24> I second this. My team uses whatever they want. We have Windows users, OS X, and Linux. As long as virtualbox or vmware runs on your system, we don't care what the host OS is.

<comment><AUTHOR> What sort of work do you guys do? Also how bad is the speed hit?

From this: [http://superuser.com/questions/146623/performance-impact- of-...](http://superuser.com/questions/146623/performance-impact-of-running- linux-in-a-virtual-machine-in-windows) it seems like it'd be noticeable (20% I/O hit).

<comment><USER24> We do web dev. The pain point for me is having to use rsync to "deploy" to the vm every time I make a change. That's a pretty decent tradeoff though when the alternative is maintaining tons of different development configurations on your host machine.

Our local deploy process is mostly scripted so it's not much of a pain point to have to redeploy new changes.

<comment><AUTHOR> Is it necessary to sync?

I'm liking the VM ideas people have been talking about here; is it possible to just mount the guest OS' file system on the host (perhaps by running an NFS server in the VM) and develop directly on it?

<comment><USER31> Yes, but this is highly dependent on the VM app you are running and the OS you are running it on. At a previous job I mounted drives over SSH from a windows host to a VMWare linux.

</comment></comment></comment></comment></comment></comment><comment><USER32> Does your live system also run on that particular model of thinkpad? Are you using HD encryption that only works on this model? If not, what's the point? I wouldn't work at the place like this: to me it smells like control freak at work, not some sensible requirement. If I am going to spend at least 8 hours a day in front of something, it better be something I really like and am comfortable with. Which happens to be Mac and OS X. I love linux on servers and would tolerate it on dedktop for work if _really_ needed, but forcing particular make on ne—no, thanks. And how about virtualbox with some standart image?

</comment><comment><USER33> Don't think it's a good idea. OS X works great for all of my development needs, even if the target environment is linux. Also, I tend to believe linux users are especially picky about which distros they prefer.

</comment><comment><USER34> Yes, I would work for a company like that. As long as this configuration of yours makes sense and isn't terribly onerous. In general, I would prefer to work for a company that developed on linux. But that's because I'm a linux user.

I've worked previously at companies that required development environment standardization on a Windows XP machine in the same way you're discussing. That was a little difficult for me. I'd never developed on XP before, I grew up on Mac and switched to Linux in college. But with some help from my coworkers I got used to it. And the standard configuration made sense. It was the configuration our app was intended to run in. The one our fairly small customer base all used. It wouldn't have made any sense to develop in my preferred environment because the application wouldn't have even run in my preferred environment!

If your program runs live only on a system with your particular configuration, such as with web applications, then it makes perfect sense to have the development environment mimic it. In fact, I would want the development environments to minic it as closely as humanly possible. The testing environments on the other hand - are a different story. But I'll assume you have that ironed out too.

</comment><comment><USER23> Teams should be allowed to use whatever tools best suit their work style. We stopped the draconian IT practices a year ago and now allow our developers to have literally whatever they want for a laptop. Productivity went up. 2/3's of the team runs Mac, 1/4 runs PC, and the remaining fraction run Linux. Seems Mac is the clear winner in my shop. Interoperability issues are somewhat a part of life, but the good outweighs the bad.

</comment><comment><USER35> Well i'm a linux guy, use it for desktops and servers and love it, find it a million times easier to deal with than windows or osx, so obviously i'd be fine with a linux based startup, however, i dont think the question is for ready made linuxers.

I've come across this same question from a different angle before, when applying for jobs, at the interview stage i always ask if i'm free to chose my dev environment, the majority of companies are fine with it. I've come across a few that require a windows environment and even some that require eclipse or zend IDE (i prefer gedit) and because of this I have passed on the job whether i have been offered it or not.

While the main reason is because i'm a million times more productive on my setup of choice but its not the only reason, its also a red flag that the company's culture is rigid and probably a shitty place to work.

Obviously there are exceptions, but i think the best rule of thumb is to let the developer choose their own tools, set them a task and get out their way.

</comment><comment><USER36> As an experienced developer I would say don't restrict the team to a single OS. Using different OS's (even different flavours of) forces you to write good quality platform neutral code which can be a great benefit if you should need to switch your deployment platform. Different compilers will expose different compile time bugs and different OSs will expose different runtime bugs. Plus there are no platforms that have ALL the best tools a developer needs.

If you go multi OS you will need a better class of developer though. It's easy to find developers that have no time for cross platform issues believing their platform is king and others are just porting their code. In my experience they are Windows developers with no experience outside of Windows but I'm sure it's a cross platform issue.

If you don't think this will help your business... stuff it, go linux only. Any good developer can develop on ANY platform.

Good luck, I imagine, in the big picture, this is the least of your worries.

</comment><comment><USER37> As a mac user I'd say that I'm more productive using Mac OS X, but that's not to say I wouldn't work somewhere that used Linux.

We have this identical issue and what works very well for us is to use local virtual machines (we use VMWare) because then we can use exactly the same configuration, independent of the development platform. For example, we have Mac and Linux users, but could also easily accommodate Windows users as well. Other benefits include the fact that you can really lock down the VMs to be exactly as production, whereas it's unlikely that a local dev machine would be the same (Does your production machine have Firefox installed?)

Another benefit is that when we change the configuration of production (which is all managed with Puppet) we can just update the dev machines because they were built with Puppet as well, without worrying about screwing up someone's desktop machine.

Plus, you can take snapshots... You can rebuild them easily... etc

Lots of benefits.

</comment><comment><USER38> I wonder how they'd respond to Linux installed on Macbook Pro hardware rather than thinkpads.

It wouldn't bother me, but I agree with others who suggested that a VM approach would be preferable if available. Or, what about a Macbook Pro in dual boot config with vmware to boot up the other partition from OSX for non performance critical stuff?

<comment><AUTHOR> Good point on the hardware/software mix. Does the Mac have much value over Thinkpads without the OS though?

</comment></comment><comment><USER39> I've been using Linux for many years now exactly because of that, same OS on the server as on my dev box. I literally never looked back, in the beginning I used VMWare as an occasional crutch but I haven't fired up a VM in about a year now.

It's not only doable, it's probably a really good solution.

If a developer is so attached to any one species of window manager that they can't switch you have a problem anyway.

The initial productivity hit was definitely visible, but it did not last more than a few weeks.

I also have a mac but hardly use it (it got borrowed to a friend because of that), all three of Mac, Windows and Linux are viable environments these days and a competent developer should not have too much trouble migrating.

Even though OS/X is favorite amongst many developers it actually is the 'odd one out', but if you intend to develop for apples mobile platform you might end up with a few of them anyway.

<comment><USER5> > in the beginning I used VMWare as an occasional crutch but I haven't fired > up a VM in about a year now.

Out of curiosity, did you use the free Vmware player or the paid Vmware products?

I have been using Ubuntu as my personal and work system for sometime now but there are situations when running Vmware would be beneficial. I see that the license prohibits commercial use and I think dev work would be commercial use.

<comment><USER39> The free one (I'm cheap ;) ).

It seemed to do everything I needed it to do.

I've used virtualbox as well for a bit.

</comment></comment></comment><comment><USER40> _All of our systems (development, live, etc.) run Linux with a relatively complex configuration_

Depends on said complexity.

You listed three notes above. (A) is odd. For (B), similar packages should be obtainable unless it's a proprietary package for your startup. (C) Encryption is pretty well supported on OS X and Linux. Scratch Windows.

I'm sure some devs would welcome a new laptop. However, being restricted to just that without good reason will strike most as odd. Trust your devs to be able to setup their own dev environment. Allow other environments if they can make it work.

At the end of the day, it seems like the underlying message is what counts. Does it appear that you are encouraging or dictating ?

<comment><AUTHOR> Thanks for the info.

On the points: A: This may be less necessary than I believe admittedly. I've only worked at companies with 100+ people before, all who gave similar hardware. The advantages were in the ability to swap computers. If your computer dies, you get a spare immediately (you can even swap the HD!) as repairs occur. If someone leaves, the computer can be given to the next hire (or an intern). B: Our dependencies are all open source. The full system though (needed for testing) uses kernel modules which don't have a (fully working) mac port. C: That's good to know. (hopefully easy on OS X -- no one currently in the company uses it).

Finally, again in the companies I worked, it was pretty much expected that company development stayed on company equipment, mostly for security issues. Is it pretty common in companies with < 20 people for devs to bring their own machines?

<comment><USER40> I see where you are getting at.

With A: Standardization is good but it probably takes at most a day to setup a new computer. It takes weeks to learn and master a new environment though. Productivity is probably paramount in a small company more than standardization.

B: Ah, but if your dev could get it working on a mac, would it be ok? If not why? How about BSD, or some other linux distro different from your intended setup?

C: As someone else mentioned elsewhere, enforcing restrictions is easier said than done. The key question to a dev is why? In some ways that just discourages devs away from working on the project as much as they like.

The key point here is that in a small <20 company, you want to attract the best talent that's out there. Someone who's at the top of their game. Most likely they will have their own machine with their own setup. A % of them will likely stick to their own setup instead of using two computers.

You may employ contractors too. That makes it even more likely they prefer their own machine.

Being offered a choice, i.e. _You can use your own computer, and here are some things you need to do too (encryption, etc) or here's a brand new one all setup_ is infinitely better than _You must use this only_

</comment></comment></comment><comment><USER41> Our infrastructure is also totally Linux based. But we don't mandate what the developers use. Personally, I prefer to use a beefy desktop machine with multiple screens instead of a notebook. When it comes to hitting the road, I prefer the MacBook.

Please consider the many suggestions for using virtualisation and the suggestions of _nazism_. Personally, if a developer was fantastic and preferred to use Windows, then as long as he observed security requirements it would be all systems go.

Anyway, most software that runs on Linux is also ported to OS/X and Windows (support levels may differ) so perhaps setting up your dev env on other platforms could be instructive.

</comment><comment><USER42> For the past 10 I've _only_ used linux as my desktop. I was using it pretty frequently before then too.

So my answer would be: If your potential employee refuses to work on Linux, or Windows, or OSX or NeXT or whatever... you probably don't want them.

</comment><comment><USER43> Blocking system configuration is not nice in that it limits freedom, but I think an employee must take responsibility when his tools don't work as expected and fix it at his own expense or just not take the chances and use the standard system. We had one employee who got distracted into his own geeky pursuits and changed his tool settings frequently with no apparent benefit to the development roadmap. In conclusion I think you have a valid right to set certain standards, and may provide freedom to change but at the developers responsibility, and take measures if things are inclined to get out of control.

</comment><comment><USER44> I stopped working for a company because they forced me to use MS Visual tools.

I could work with MS tools, but I want to be able to choose it if appropriate, I want to be the one who takes the decision, not someone that hardly ever codes a line.

BTW, I program mainly on MacOS and Linux, and every piece of software has to be multiplatform (work on windows too). The code is way more robust if you force yourself to compile in several platforms, you discover bugs early with very little work.

In my experience working on only one platform means letting bugs grow that will byte you in the worst moment later. For me is penny wise, dollar foolish strategy.

</comment><comment><USER45> I think companies could mandate what OSes their servers use and standardize some of the software that the development team uses, but to require an OS is pushing it. I understand that many non-technical companies do this, however operating systems tend to be a personal preference. Some people are more efficient on Windows, other on a Mac and others on their Linux distro of choice. If you have to use one OS for work and another at home it just creates a productivity conflict. Big "Take this OS and Shove It" from here.

</comment><comment><USER46> <http://vagrantup.com/>

Others have suggested development in a vm. Vagrant makes things incredibly painless (including lifting your workspace in the vm).

</comment><comment><USER47> If i can customize the Linux to fit my working style, i'd love to. I'm using Linux for work anyway. With a customized Linux i think neither Mac nor Windows can beat the productivity.

</comment><comment><USER48> I already use Linux on a T61, as does two other people in the room I am in. Add two others on x200 and the only guy who doesn't uses a siemens computer.

I doubt Apple is as widely used as you think.

</comment><comment><USER49> VirtualBox, VirtualBox, VirtualBox.

</comment><comment><USER50> Your developers need to be able to work how they're comfortable. Ultimately, setting up their development environment makes them more comfortable with it.

That said, give'em a VM, let them use anything they want, and if they want they can attempt to replicate the VM onto their machine. It's us to them to become competant, not you to say "Well you're probably NOT, so no soup for you!"

</comment><comment><USER51> No, because FreeBSD FTW!

Seriously, as long as the development environment allows me to get things done, I'm not sure I care too much about the underlying OS.

Here everyone is free to pick the laptop OS they want. For the moment it's 100 % Windows 7 + VMWare. Our software is multiplatform (Windows/Linux/FreeBSD).

I submit Windows 7 will keep the high ground for developers because of VS2010.

</comment><comment><USER52> I'm a Mac user, and I probably wouldn't like it terribly but since most of my non-Xcode work is with vim and Terminal I would probably be ok (I can get by with web-based services for everything else).

I would definitely miss things like Homebrew though: <http://github.com/mxcl/homebrew>

</comment><comment><USER53> As a long time GNU+Linux user, I would be fine with being forced to use Linux or FreeBSD. As a matter of general principal, however, I am opposed to such OS requirements when they extend beyond reasonable security and comparability concerns. I wouldn't work for a company that required employees to use Windows, OSX or Solaris.

</comment><comment><USER54> Linux is a plus in general. However, in my experience, standard custom development configurations always suck - my experience is for Eclipse configurations, but I am willing to bet the same holds for Linux or any other predefined and locked down development environment.

</comment><comment><USER55> Personally, I'd like to know why a start _wouldn't_ use Linux without a particularly good reason (e.g. developing for Windows or Mac OS X). I use Linux by preference, both when I'm contract and when I'm working on my own code & products.

<comment><USER29> I develop on a windows platform and try to use IE as much as possible because my job involves being in charge of all of the cross-compatibility issues with different browsers. The only way to truly be an expert on this is to actually use the different browsers on a regular basis since the rendering issues change with every update.

It kinda sucks, but for front-end devs/designers like me it's a necessary evil.

</comment></comment><comment><USER56> Running Linux on Thinkpad is the ideal scenario for me. Though I would like to have a MacBook also, I think I would not prefer it for work.

By the way, I have been drooling over both of them in the past week. Really want one of them :)

</comment><comment><USER57> I develop at a Linux only shop.

I would use whatever OS the job requires. Most jobs [that provide hardware ] don't give you a choice on OS.

If I was a .NET developer, my boss would not let me be the only guy using Mono, while every one else used VS.

</comment><comment><USER58> I would work for a startup that requires Linux on the desktop but only because I'm a fan (I also always buy Thinkpads). If you required me to work on OSX/Windows, as petty as it sounds, I wouldn't be so keen.

</comment><comment><USER59> I already use Linux. So to answer the reverse question: I'd definitely be comfortable coding for work on a Mac, especially if I was allowed to make caps lock an additional escape, use my own .zshrc, etc.

<comment><USER2> Nonsense - everyone knows that the only proper remapping for caps lock is CTRL!

...oh, wait, I get it. You're one of _those_ , aren't you? :P

Editor holy wars aside, on OS X it doesn't appear that you're even able to remap caps lock to escape, at least without some additional add-ons installed. So you might be out of luck.

<comment><USER59> I actually don't use vim much any more, but I'm still used to caps lock as an additional escape (er actually, I think I have caps lock and escaped swapped). It's not a big deal.

</comment></comment></comment><comment><USER60> I already use Linux on a Thinkpad so it's not much of a leap for me (I have a pretty esoteric setup, though) but I'd be cool with a "required" setup if you're providing the hardware.

</comment><comment><USER61> For me, standardization would be huge turn-off (not Linux per-se). My computer / OS choice is very personal thing, just like my clothes, spouse etc.

</comment><comment><USER62> I'd love to work somewhere linux was the standard.

I will not however, work anywhere that requires me to use a mac. I did my time on one for a job once, never again.

</comment><comment><USER63> Most of my career I've been forced to work on Windows, so I could live with it if everything else was ok.

</comment><comment><USER64> Hell yes! Last place I worked forced me to use windows for writing PHP and java code for android.... :(

</comment><comment><USER65> Absolutely, and indeed in the past I have worked for startups who were nearly entirely Linux based.

</comment><comment><USER66> I wouldn't work somewhere that does not allow me to use Linux on my development machine.

</comment><comment><USER67> I doubt I'd work at a startup that didn't require using Linux!

</comment><comment><USER68> To answer the title question: a hundred times yes!

I'm sick of all the start-ups thinking that they need to get money from investors to buy Apple computers, and make great apps in Ruby on Rails.</comment>


Here's Why People Are Backing App.net - <AUTHOR> http://www.readwriteweb.com/archives/heres-why-people-are-backing-appnet.php <comment><USER2> Any time I can transition a service that is important to me to one in which _I_ am the customer, I grab that opportunity quickly.

I'd happily pay gmail $10/month for mail in which I was the customer, and not the advertisers. $4/month for a user supported twitter environment sounds like a bargain - particularly as all the people I suspect I want to "follow" (or whatever the join.app.net terminology will be) - have already pledged their support for app.net.

<comment><USER3> > I'd happily pay gmail $10/month for mail in which I was the customer

It's only $5/user/month and they offer a free trial. No ads, of course, and a SLA.

<http://www.google.com/enterprise/apps/business/pricing.html>

<comment><USER2> Yup - firstname.lastname@example.com has been going to Google Apps for at least 4+ years @$50/year - My break point is about $10/month (or $120/year) - particularly as I get the fairly awesome 2-factor auth from Google.

</comment></comment></comment><comment><USER4> (I'm saying this from a regular user's perspective and not developer): First of all, what's boggling my mind about this app.net thingy is the vague pitch and description. They should explain themselves first as "a paid social network where users own their own data and without any ad disturbance". Then they can elaborate more stuff. I really had hard time to comprehend the importance of this yet-another-social network and spent a lot of time reading others' people blog/HN posts just to understand what it is all about.

Secondly, I see why they charge for it for access; I mean, we are customers when we pay for it. I get it. However, I still don't think people are willing to pay for it. Social network will forever (well may be not, but we'll see) be free because when the stuff is free, we can be sure that we can allure our close friends, relatives, or whoever in our circles to join the social network, thus the social network itself. Even more so when regular users are pretty content with the existing free social networks we have. If there are less users in a social network, the less motivation any developer to develop application on its platform.

</comment><comment><USER5> <https://join.app.net/>

People aren't backing join.app.net. Are they really going to find 300k in a week, when they have raised only just half that after such a long time?

<comment><USER6> Yes, I really wonder how much blogspam and artificial HN buzz they have to make before acknowledging that people are just not interested.

</comment></comment><comment><USER7> App.net strikes me as a half-measure. It's still a centralized system with one company acting ultimately as a gatekeeper.

I want a twitter that acts more like email, on open, distributed systems that leave me in full ownership of my own content. I see very little reason for something like Twitter to go through a centralized party this way.

<comment><USER8> _> It's still a centralized system with one company acting ultimately as a gatekeeper._

USENET was pretty decentralized. If that could me made to update faster, it could be the basis for a decentralized Twitter-like service.

<comment><USER9> The "everyone caches everything" economics of Usenet are all wrong for the modern Internet, though.

</comment></comment></comment><comment><USER10> I backed this almost immediately, and expected them to be a lot closer to the goal than they are now (still more than $300,000 off with only seven days to go). I'm very surprised with the apparent lack of resonance with the idea from people around here.

So what are some of the reasons you aren't backing?

<comment><USER11> The problem with App.net (as it's currently described, anyway) is that it's halfway between what people who love Twitter want and what people who hate Twitter want, which makes it less than an obvious sale for both.

People who love Twitter want... Twitter. App.net doesn't interoperate with Twitter; it's another, separate silo. There's no guarantees that your Twitter friends will move to App.net with you, which limits the appeal if you live in Twitter.

People who hate Twitter hate it for a variety of reasons. App.net doesn't address most of these. If you hate Twitter because they kneecapped their developers, guess what, there's no guarantees App.net won't kneecap their developers five years from now either. If you hate Twitter because it's a centralized, proprietary system, guess what, App.net is centralized and proprietary too. If you hate Twitter because of its scaling problems, guess what, there's no guarantees that App.net (which, as noted, is as centralized as Twitter is) will be any better at dealing with that stuff. And so forth.

Personally, I fall into the latter category; I have _lots_ of problems with Twitter. But nothing about App.net screams to me that here is the solution to those problems. Instead it just feels like Twitter with a different owner and a subscription fee -- which are just about the only ways at this point you could take the idea of Twitter and make it _less_ appealing to me.

<comment><AUTHOR> The guarantee that App.net won't kneecap its developers is that its developers are paying customers.

<comment><USER12> If a service doesn't kneecap its developers, yet those developers have no userbase because nobody uses the service, does it make a sound?

</comment></comment></comment></comment><comment><USER13> I don't think this project will work due to several inherent economic factors. If I understand correctly app.net takes a free service (twitter, fb) has removed the best features of those services and then wants to charge money for that product. Dalton has put himself in the position of a reverse browser war which doesn't seem very viable to me.

<comment><USER14> Well, somebody has to do something, right? He's just trying something.

<comment> k-mcgrady Why does somebody have to do something? Twitter has made some controversial moves recently but the only people they've really annoyed are developers. Users have had no major problems. Why would tens of millions of people start paying for something they already get free and like? I think that this project is a response to the developer community Twitter has annoyed but there is no real market for it. A quick look at how little backing it's got shows that it isn't really needed.

</comment></comment></comment><comment><USER15> They could run it from a non-profit instead of a private company. Would be an interesting experiment!

<comment><USER16> How many instances of groups of very smart people with a great product vision and the technical ability to deliver it are there that set up non-profit companies to give us all their brain-child for free? I'd prefer it if they wanted to do it in a non-profit and give all the excess revenue to 3rd party devs but this is much better than waiting for a unicorn to turn up.

</comment></comment><comment><USER17> I like Twitter. I don't mind the ads. And Twitter is close to letting us download our own archived tweets: [http://searchengineland.com/twitter-tweet- archive-tool-comin...](http://searchengineland.com/twitter-tweet-archive-tool- coming-128537)

If ads interrupted my experience, then maybe it would become a pain point worth addressing or paying for. Until then, I'll stick with the free, ad- supported Twitter.

<comment><USER18> Ads are not the problem, the problem is the implications of being ad- supported. How it affects policy and decision-making.

<comment><USER17> Is that implication really a problem though? I suppose for some it is. That audience is likely quite small, depending on the service of course.

</comment></comment></comment><comment><USER19> It seems like a weird decision that they don't stick to the 140-character limit.

<comment><USER20> They're not making a Twitter clone, they're just cloning some of the features of networks like Twitter and Facebook.

<comment> k-mcgrady The 140 character limit is important though. It's necessary for the service to work over SMS which is hugely important to users in many developing countries. It's also been the key to twitters success in various uprisings in the middle east when internet access was shut down.</comment></comment></comment>