Why I am pro-GPL - <AUTHOR> http://dustycloud.org/blog/why-i-am-pro-gpl/ <comment><USER2> It's worth remembering why the GPL was invented.

Stallman had a printer which had proprietary drivers, and he wanted to fix an issue with the driver. He couldn't. He created the GPL so that, in future, people wouldn't have this problem.

Stallman created the GPL because he cared about user freedom.

<comment><USER3> But on the other hand, VLC was packaged for the iphone at one point to let users of that platform use it. Source was made available to everyone. It was decided that GPL version 3 wouldn't allow GPL software on the iphone so users were not free to use GPL software on their platform. It is available now for iphone so I'm not sure what changed. I thought it was very odd that GPL advocates wanted to limit user freedom in that case.

<comment><USER4> Seriously, most of your facts are wrong. Source: I'm the president of VideoLAN, I did the VLC relicensing[1], and spent a lot of time on GPL/stores compatibility [2].

VLC was GPLv2+ and so was libVLC (the engine library that was spawned from VLC). VLC was put on iOS store as a GPLv2 app, which was not compatible with Apple ToS, and was therefore removed by Apple.

At the same time, libVLC was relicensed over 2 years to LGPLv2.1+ for reasons that were non related to appstores.

As a side-effect, VLC for iOS was rewritten and licensed as MPLv2 to be on the AppStore, with a slight bit less features.

For your information, the main reason that the AppStore is not GPL compatible, is because the AppStore DOES NOT allow you to use an application as you want (even non-open-source ones). This is forbidden by the GPL. Which shows exactly that the GPL tries to enforce the users freedom.

[1] [http://www.jbkempf.com/blog/post/2012/I-did- it](http://www.jbkempf.com/blog/post/2012/I-did-it) [2] [https://archive.fosdem.org/2015/schedule/event/appstores/](https://archive.fosdem.org/2015/schedule/event/appstores/)

<comment><USER5> Thank you for your work. I have a question about copyright assignment. You wrote:

>Unlike a lot of large open source projects, authors of VLC keep all their rights on their code, even if the code is minimal.

[http://www.jbkempf.com/blog/post/2012/How-to-properly- relice...](http://www.jbkempf.com/blog/post/2012/How-to-properly-relicense-a- large-open-source-project)

For an entirely new project, would you rather require all contributors to assign copyright to a single entity which then manages licensing or would you have individuals retain copyright? (Off topic: is this even possible in France?)

<comment><USER4> > For an entirely new project, would you rather require all contributors to > assign copyright to a single entity which then manages licensing or would > you have individuals retain copyright? (Off topic: is this even possible in > France?)

First, there are more than 2 options. I'd say there are 3.

Copyright assignment is ALWAYS the wrong answer. It's a bad idea, and I would even that this is unethical, and illegal in numerous countries.

If you want more control, notably for a potential future license change, do a Copyright agreement that is not an assignment. Explain clearly what is in the agreement and what is not.

Total individual copyright is a great idea, but if you care about an application that will go on an appstore, don't go this route. If you integrate a lot of library, same. But if you do a new cool software, just for fun, yes, keep it like this.

</comment></comment></comment></comment></comment><comment><USER6> Christopher Allen Webber is a FLOSS hero and in my opinion deserves the utmost respect, although I suspect he is probably too humble to agree with that.

I concur with everything he has written in his post... but one thing I'd add to the points he made is my annoyance with the implication made by many that proponents of permissive licensing care about freedom more than people who use copyleft licenses.

People who really care about freedom care about it for EVERYONE, and licensing that maximizes freedom for everyone trumps the "strings attached" in that regard, that is such a simple thing to see that it challenges credulity to think that someone who cares about freedom could say otherwise.

If you want everyone to use permissive licensing because you want to use free software inside of locked down programs you produce and are frustrated that great copyleft software doesn't let you do that, fine. I can respect that position because I've experienced the same problem. But please get over it and find some non-free solution to your problem, instead of trying to undermine the ideology of people who actually care about freedom just because you are jealous of the quality of software that has that ideology attached to it.

<comment><USER7> > If you want everyone to use permissive licensing because you want to use > free software inside of locked down programs you produce and are frustrated > that great copyleft software doesn't let you do that, fine. I can respect > that position because I've experienced the same problem. But please get over > it and find some non-free solution to your problem, instead of trying to > undermine the ideology of people who actually care about freedom just > because you are jealous of the quality of software that has that ideology > attached to it.

Stop pigeonholing people who disagree with you. I'd like everyone to use permissive licensing because I believe copyright (and more generally, intellectual property) is unjust. Copyleft is only possible in a world with a strong IP system.

<comment><USER8> If you are against copyright, support copyleft, which gives even big companies an incentive to dislike copyright!

<comment><USER7> Copyleft depends on copyright.

Additionally, my goal is to make my software as widely usable as possible. Using the GPL runs contrary to this goal.

<comment><USER9> > Using the GPL runs contrary to this goal.

Saying "giving everyone the right to share it" is contrary to the goal of having it be shared widely (aka adopted), is at least a gross oversimplification and at most an absurd statement.

However, RMS sees room for tactically using permissive licenses for the purpose of adoption too, [http://www.gnu.org/philosophy/pragmatic.en.html](http://www.gnu.org/philosophy/pragmatic.en.html)

Getting more adoption as part of proprietary software may or may not lead to more overall adoption. Bsd kernel vs linux kernel is a case for gpl leading to more adoption than permissive. GPL says "allow EVERYONE to share it." And in some cases, more people share it this way! Who would have guessed? And it can lead to more people contributing, because they know everyone will have the right to share their work. The fact that permissive code means it could be shared LESS, because it can't be part of software which makes sharing illegal, is kind of across purposes. I mean, if you just care about adoption, a lot of times, you might get more by keeping it completely proprietary and selling the copyright to a big company. Or you might get more by embedding it into worms and phishing emails and running a botnet.

<comment><USER7> I'm not writing a kernel. The fact remains that if I use the GPL, people will tell me that they can't use it because their legal department forbids it. Alternatively, using it requires approval from their legal team and that requires enough effort not to use my code.

This isn't some theory that you can weasel your way out of using examples. It's based on real experiences I've had.

<comment><USER9> I was not weaseling out of it. I explained how it can go either way.

<comment><USER7> And I'm saying it doesn't in my case. Fewer people would use my code if I made it copyleft.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I work in industry. Anything GPL is a non-starter. I totally understand and appreciate the concerns, but at BigCorp GPL doesn't play.

edit: I'm well aware that some people don't want industry using their code. Great! But that's really limiting the scope of who's going to get involved, and it's probably going to make it harder to get a sufficient community involved to help your project achieve liftoff.

<comment><USER2> OK, so large companies won't extend your software. What's wrong with that?

<comment><USER11> At Microsoft (at least circa 2010) you weren't allowed to even install GPL software, for fear that a developer might wind up using it somehow, and cause the GPL to apply to all of, like, Windows 7.

Sorry for the hyperbole, but the concern was very real, even if poorly defined.

<comment><USER12> This statement is false as a blanket. I worked at MS in 2010, and I had vim and git installed on my machine. What they didn't want me to do was to install (or look at!) the source code.

The amount of FUD from rank-and-file employees was shocking though. Based on ignorance, but they just weren't part of the GPL world, and didn't care to understand it deeply. So I don't doubt that you may have asked someone and been told "Oh god, don't even _look_ at that stuff". But it wasn't any kind of company wide policy.

I did end up talking to folks that were trying to _make_ such a company wide policy, but even then what they were pushing for was some kind of GPL registry, where if you installed any open source software, you had to register it with the powers that be. I don't think that went anywhere though.

<comment><USER13> (nitpick: vim isn't distributed under the GPL)

<comment><USER12> I _knew_ someone was going to notice that! :)

It's true, but it is 'open source', and many of my coworkers were not particularly discriminating among the different interpretations of OSS.

</comment></comment></comment></comment></comment></comment><comment><USER14> A few years from now, when you want to hack on some new gizmo and you find out that the toolchain is a pile of proprietary blobs that only work on Windows and an old version of RHEL, you can thank the "pro-user" supporters of clang and its non-copyleft license.

(I think this is already happening with GPU toolchains but that's not my field.)

<comment><USER2> I mistakenly downvoted you, FWIW.

This is happening with Apple. Apple were so enraged about a GPL compliance lawsuit that they pored tons of resources into LLVM, perhaps just out of spite.

<comment><USER15> They were so spiteful that they offered to license the whole thing under the GPL. But because RMS uses an e-mail client written in the last century he missed the offer.

[https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00...](https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00594.html)

</comment></comment></comment><comment><USER16> _There is no reason to pit permissive and copyleft licensing against each other. Anyone doing so is doing a great disservice to user freedom._

Or, IMHO more likely, has an agenda that benefits from permissive licensing.

<comment><USER17> An agenda such as putting food on the table.

<comment><USER18> This is a perfectly valid agenda, but it doesn't entitle one to doing so using the results of somebody else's labour.

<comment><USER19> Why are you releasing source if you don't want others to use the results of your labor?

<comment><USER20> Copyright holders do all kinds of wacky things. Who are you to judge?

</comment></comment></comment></comment></comment><comment><USER21> I think the GPL license actually makes user freedom worse by encouraging developers to release software as web apps instead of as client applications. This is because a web application that uses GPL software is not required to release its source code whereas a client application would be required to release its source code.

The difference in user freedom between web apps and client apps is much bigger than the difference between a GPL client app and a proprietary client app. With a client app, even a proprietary one - the user at least in theory can see exactly what the application is doing and what data it is transmitting where.

So for the average user - GPL has encouraged loss of user freedom. Of course this doesn't affect Stallman because he does not use any web apps.

<comment><USER22> I also feel the the GPL Affero licence (the GPL response to this, by re- wording it so that you still have to share the source if it's a webapp) is not very clear. I know the company I'm working at is willing to be a good GPL citizen, but refuses to touch GPL affero'd code with a 3 meter pole.

I like it in principle, but I don't feel like it's a good solution in practice, at least until we get some cases going before a judge to see how it gets interpreted.

[http://www.gnu.org/licenses/why-affero- gpl.en.html](http://www.gnu.org/licenses/why-affero-gpl.en.html)

<comment><USER23> AGPL is perfectly clear: if you make source available under AGPL, you are in compliance. There's nothing to worry about. Plus, nobody ever sues you initially over (A)GPL compliance, they just ask you to come into compliance and only sue you if you refuse. Just release the source initially, and you're all set. Why is this hard?

</comment></comment></comment><comment><USER24> I think this article (and possibly the speaker the article responds to; I haven't seen any transcript or recording yet) misses one of the bigger poitns of permissive licensing: the ability for virtually _any_ free software project to reuse your code. As a developer writing a library or somesuch, my concern is often whether or not I'm locking a large number of projects out of making use of my code. Yeah, this means that proprietary software can use it, too, but at least I'm credited for the work (as per the terms of most copyfree/copycenter licenses) and other FOSS projects have the same ability.

This isn't to say that copyleft is automatically bad, but rather that consideration for the general development ecosystem is a worthwhile consideration. If you're a Perl hacker, for example, you're probably going to use "the same license as perl itself" (GPL + Artistic License) or perhaps the Artistic License 2.0 because those are the norms of the Perl community. If you're a Ruby hacker, you're probably going to use the MIT license because that's the most common. If you're writing an Emacs package, you'll probably release it under the GPL. If you're writing an Erlang module, I'd reckon the Apache license nowadays to be the new baseline.

This is also affected by which operating system you're targeting. BSD folks will tend to lean permissive, while GNU/Linux folks will tend to lean copyleft. Windows and OS X folks will tend to lean proprietary or permissive.

In other words, what license to pick really depends on the norms of the platform you're writing for. There's no "wrong" answer here unless the license you choose excessively impedes reusability by the broader community you're operating in, in which case you would be wise to adapt accordingly.

<comment><USER25> Good point on how all OSS developers benefit rather than just FOSS. However, the author did address that by noting the permissive licenses goal was mass adoption and FOSS was pushing their notion of freedom.

<comment><USER24> True. I got the impression that the specific nuance of benefiting FOSS as much as non-FOSS was being a bit glossed over, though.

It's a little bit more nuanced than "mass adoption", too, though. For me (as someone who tends to lean permissive in his software projects), it's more about deduplication of work and making my things as useful as possible for everyone. I'd love for a GPL project or an MPL project or an Apache project or a BSD project or whatever to find enough value in the code I write to not feel that they have to write such code themselves.

<comment><USER25> "True. I got the impression that the specific nuance of benefiting FOSS as much as non-FOSS was being a bit glossed over, though."

In the original article? Yeah, these people often get so worked up about how proprietary products can benefit that they forget the huge amount of open- source, non-GPL efforts that can draw on the work. Despite the fact that the server traditionally running on every Linux box was an Apache-licensed one who's name I can't recall... jk.

In any case, I fully respect your decision to try to help OSS projects avoid wasted work and make something they can all use regardless of license. Similar to those putting work in the public domain. That used to be a badge of pride in developer altruism. Now, the standard license (GPL) for altruism forces the developers will on users of the code. Quite the change OSS went through.

</comment></comment></comment></comment><comment><USER16> I feel like a lot of the comments in this thread are conflating permissively licensed software with closed source software.

If you want to write software and keep it closed so you can make money off it I don't necessarily love the idea but I can respect it.

But we're not talking about closed source here, just the difference between the GPL and permissive licenses like BSD, MIT, etc. I don't see how creating a killer app and releasing it permissively guarantees a developer an income. The opposite is the obvious effect. On the other hand using the GPL as your public license and negotiating a private license with a company like QT does seems like a logical way to provide user freedom, enjoy feedback and improvements from the community and still allow for a revenue stream.

It's definitely a tired argument at this point so I was actually pretty happy when the author went out of his way to reiterate at the end of the article that there are benefits to both approaches, why can't we all just get along...

<comment><USER2> > I feel like a lot of the comments in this thread are conflating permissively > licensed software with closed source software.

They're not. They're saying you can take permissively licensed software and make it proprietary.

</comment></comment><comment><USER26> BSD was not meant to shape a future, it was created to maximize the reach of its software through devaluation.

GPL was created to shape our future and continue to do so. Not just the forseable reach of our little lifes and immediate surroundings (if any).

I see a lot of people looking at their immediate needs. IMO We need need to give time to Time. The problem is not FLOSS licensing or software. This is mostly a solved problem.

</comment><comment><USER27>
      > To return to the arguments made last night, though copyleft
      > defends source, in my view this is merely a strategy towards
      > defending users. And indeed, as in terms of where freedoms
      > lie between those who make use of the source and code side of
      > things vs the end-user-application side of things, one might
      > notice a trend: there are very few permissively licensed projects
      > which aim at end users. Most of them are stepping stones towards
      > further software development. And this is great! I am glad that
      > we have so many development tools available, and it seems that
      > permissive/lax licensing is an excellent strategy here. But when
      > I think of projects I use every day which are programs I actually run
      > (for example, as an artist I use Blender, Gimp and Inkscape
      > regularly), most of these are under the GPL. How many truly major
      > end-user-facing software applications can you think of that
      > are under permissive licenses? I can think of many under copyleft,
      > and very few under permissive licenses. This is no coincidence.
      > Assuming you wish to fight for freedom of the end user, and ensure
      > that your software remains free for that end user, copyleft
      > is an excellent strategy.

This was the key paragraph from my reading anyways. This is not an argument for / against whichever license, it's an argument that different types of code and projects have different licensing trends, and those probably align with how the code is going to be used and the audience that it's targeting.

</comment><comment><USER28> I sympathize with the author, even though I work at a corporation that doesn't like GPL.

I think big part why the GPL has been lately out of fashion is that many developers work for (big) companies, which of course (as correctly stated) benefit lot more from BSD than GPL.

These developers naturally want to use the great software at work they do or use as a hobby, so they are willing to compromise with the powers at be (business leadership) and release their software under a more permissive license (or pressure their peers working on OSS to release it under more permissive license).

Of course, if these developers acted really rationally, they would collectively rise up against such demands; but then they could just establish some sort of anarchist/libertarian/communist (depending on your leanings) commune where everything is fair and just.

So I think it's a lot of small pragmatic decisions that ultimately lead to irrational results.

<comment><USER29> > _These developers naturally want to use the great software at work they do > or use as a hobby, so they are willing to compromise with the powers at be > (business leadership) and release their software under a more permissive > license (or pressure their peers working on OSS to release it under more > permissive license)._

The funny thing is that using the AGPL or GPL would benefit them; the company abides by whatever rules they want since they hold the copyright and the developer gets to use the code for their side projects. The only people who are out of luck are competitors who can't use the code unless they want to abide by the AGPL or GPL.

Basically, using the GPL protects the company. The only concern you should have is if a competitor has enough resources and is unafraid of the GPL or you don't want users to self-host (supposedly eroding the revenue stream in a SaaS, though I don't see it since it takes effort to self-host)

</comment></comment><comment><USER30> I think this quote from the article is what is all qbout. "In Shane's talk last night, he argued against copyleft because software licenses should have "no strings attached". But the very strategy that is advocated above is all about attaching strings! Copyleft's strings say "you can use my stuff, as long as you give back what you make from it". But the proprietary differentiation strategy's strings say "I will use your stuff, and then add terms which forbid you to ever share or modify the things I build on top of it." Don't be fooled: both attach strings. But which strings are worse?"

</comment><comment><USER31> What bothers me both about the article and the comments here that they speak in the context of the pro-GPL/anti-GPL debate, but what actually gets discussed is lax vs. copyleft FOSS licensing.

However, the two topics are not the same. I, for one, like the idea of copyleft licensing (for cases where its appropriate), but don't like GPL. GPL has taken the status of "the real copyleft license", but indeed it's an abuse of the idea of copyleft.

Here's why: create the Merry Mermaid Public License (MMPL) as follows: take the text of the GPL and replace all occurrences of "GNU General Public License" with "Merry Mermaid Public License". Also remove all references to FSF and refer to yourself / another non-profit whenever a legal entity is to be named in the text. MMPL will be essentially the same as GPL, just called differently. However, GPL will condemn MMPL in the sense that the two won't be compatible. You can't mix and distribute code bits where one is GPL and one is MMPL licensed. An aggressive monopolist drive is built in to GPL as it decrees incompatiblity with other licenses not on base of licensing conditions, but on base of not being originated from the FSF.

</comment><comment><USER32> The author gives good reasons for preferring the GPL to BSD-style licenses, but it seems to me that there's an even better license for his ideals: the AGPL.[1] It fulfills the same purpose as the GPL, but it fixes loopholes such as running code on remote servers (most website back-ends).

I've yet to hear a good argument from ideals that prefers the GPL to AGPL. The latter really does give people more freedom over how they can use and modify software.

1\. [https://en.wikipedia.org/wiki/Affero_General_Public_License](https://en.wikipedia.org/wiki/Affero_General_Public_License)

<comment><USER33> The author actually uses the AGPLv3 for MediaGoblin: [http://mediagoblin.org/](http://mediagoblin.org/)

<comment><USER32> Thanks for the info.

This confuses me. He knows about the AGPL. He uses it for his own code. Yet he doesn't even mention it in a post about his favorite license. Why?

<comment><USER33> I found that odd as well. He mentioned using the AGPL for MediaGoblin at LibrePlanet a couple years ago. Not sure why no mention now.

</comment></comment></comment></comment><comment><USER34> I'm very grateful the GPL exists, but I don't like the viral clause of the GPL. I find people sometimes aren't able to use GPLed code in their projects which defeats my purpose for putting it under an open licence in the first place.

Lately I just release stuff under MIT which says you're free to do anything but remove the copyright notice, or sue me because you used my code. Other than that it's free for nearly any purpose.

<comment><USER35> Its good that you have defined a purpose for why you release code. When I see people share a photo on a flikr, a video on youtube, or a song on a band/indy website they also have a purpose for that. Often it is not to allow companies to use it in their proprietary products or incorporate it into commercials, but sometimes they do allow it. Its their choice to decide how viral and restrictives they are when sharing to the public, even if they can't dictate how entitled the recipient will feel towards the conditions.

The goal of the license is thus to define what the author will accept and what they don't. The more authors that actually make an aware choice, the better the result is.

</comment></comment><comment><USER36> I'm torn. I understand the benefits of enforcing user freedom. But it's not clear to me that users aren't better served by the ubiquity of re-use that the more permissive licenses have encouraged.

For example, permissive licenses have helped with the walled garden that is iOS. But would end users be better off if we hadn't had iOS? If it were GPL'd, sure, but in reality it would never have been. So is its existence, and the competition it fostered with Android, net beneficial to users?

Maybe more concretely, I feel that the deliberate hamstringing of GCC wrt a published IR to be, well, wrong. Again, I understand the arguments and I appreciate the reasoning but it's not clear that the end user is best served by this.

For me, at least, it probably comes down to the simple statement that, as much as I value end user freedom, it isn't always the most beneficial thing for the end user.

On a different day, mind, I'd probably argue the other way...

<comment><USER37> >> Maybe more concretely, I feel that the deliberate hamstringing of GCC wrt a published IR to be, well, wrong.

I think hindsight has shown that strategy to be a mistake. But that's a separate issue from the license.

</comment></comment><comment><USER38> If you want freedom don't involve any lawyers. 's why the Trex ate the lawyer first: [https://www.youtube.com/watch?v=VMzfrod7hcE](https://www.youtube.com/watch?v=VMzfrod7hcE)

</comment><comment><USER25> The first half of the article was good and balanced. I especially like the distinction in lay terms: copyleft to push freedom; non-copyleft to push adoption. That's a great way to describe it to a person contemplating what license to choose. Then, the article goes in a different direction that embodies negative qualities that author critiqued in the related presentation. Let's address a bit of this from my pro-consumer, pro-security/quality, pro- OSS, anti-copyleft perspective. Mentioned that just so my bias is clear upfront and why I push adoption-oriented licenses (esp for open hardware & high assurance).

re stepping stone. Yes, this is the common goal of proprietary use of anti- copyleft software. IIRC, copyleft software got its start using the architecture, languages, tools, and platforms of BSD and proprietary offerings. So, even GPL proponents build on existing work. Anyone wanting an open, free version of a given enhancement can similarly produce it starting with the same stepping stones.

re open to closed. We saw this happen with Apple App Store, the QNX source reversal, attempts to combine open code with DRM, and so on. This is bad. However, it almost exclusively happens with companies whose licensing, TOS's, SLA's, etc allow for this sort of thing. That's where the problem is. Avoiding such companies, selecting safest licenses, and/or ensuring certain conditions are perpetual in contracts/licenses are easiest solution. GPL is actually a successful implementation of my claim, although it wasn't good enough. Affero corrected a major deficiency and more evolutions will probably follow. Many more licensing schemes can happen to reduce negative impact of business participation while empowering users.

The common theme in most gripes is what the companies do. The reason we have this problem is that users almost exclusively do business with scumbag companies. They don't care about terms. They don't care about its ethics. Prior abuses rarely make them change companies (see Microsoft and Facebook). They don't try to leverage their buying power to force (existing) or incentivize (startups) companies to negotiate something that's favorable to them and future-proof in main risk areas. Like the old saying, the only thing that was necessary for triumph of evil was that good people did nothing [while evil kept its eye on the ball and its hands/feet in a sprint].

A lot of these problems can be avoided by simply investing in the right organizations. People who pick up Microsoft's server operating system are in for more schemes than those that used FreeBSD with commercial support. Certain small companies behind IDE's and libraries have had _great_ terms for their users for years with minimal hassles unlike the mess that's Microsoft's development tools. Services provided by non-profits, cooperatives, and companies simply focused on customer satisfaction have done great compared to race to bottom in cost or highest shareholder earnings that get many others scheming on customers. Pick the right people/companies/tools, maintain an out to avoid lock-in (open formats/API's help), and invest in that. Double down on it if they use permissive licenses and re-invest back into their communities.

In the end, this is more a problem of incentives than purely a legal one. People trust companies that don't care about them. They get screwed. Stop doing that. Do plenty more of the opposite. On top of it, explore alternatives [1] to popular source-sharing models in case business opportunities arise. Get momentum going in directions other than companies that do lock-in and lock- down. After all, I've done a lot of business with proprietary companies and have mostly avoided being boxed in. Same goes for FOSS use. Imagine that... All about what you use, how, and from whom. Sacrifices will need to be made, though, and now we're getting back to user demand (incentives) driving the negative practices.

Outside a niche, I don't see it happening because market as a whole won't take responsibility to make it happen. The problems are market's fault, as usual. Good that niche commercial, OSS, and FOSS have given us plenty of good stuff to work with. I encourage all of them to keep at it without a need to fight with any. I avoid GPL strictly for economic reasons: certain investments don't happen, esp high assurance or ASIC development, unless they can recover the cost somehow. Additionally, companies adopting high quality components makes stuff more robust over time. Finally, making money allows them to fight inevitable patent suits that will attempt to put them out of business and create more patents for defensive use. So, for economic reasons, I oppose the GPL in some spaces while respecting it and being neutral in others. My OS is GPL, for instance, and I'm grateful to its developers & community. :)

[1] [https://www.schneier.com/blog/archives/2014/05/friday_squid_...](https://www.schneier.com/blog/archives/2014/05/friday_squid_bl_424.html#c6051639)

</comment><comment><USER39> I think the GPL is a little outdated in that it misses the point on what really matters to ensuring the user's freedom.

I think having an open source application is useless to the end user. I mean really useless in and of itself.

What really matters is standarizing the data format and providing tools to convert/export to various other formats.

Say I'm using application X as a free-software word processor. Two years later I decide I'm done with it, for various reasons it's annoying. I want to migrate to some other application Y.

Also suppose that X hasn't been in development for over a year and no one is maintaining it.

Also suppose X is very complicated and no one understands how the code works.

What do I get as a user? What benefit do I get from X being open-source? Almost nothing.

On the other hand, if X came with tools to "liberate" data from itself, and had its data format extensively documented, _then_ I could get some real benefits.

The only thing open source does is allow developers to collectively work on infrastructure tools. Such as git, etc.

<comment><USER40> I think having an open source application is useless to the end user. I mean really useless in and of itself.

What really matters is that the user is alive and healthy.

Say I'm dying of cancer. Two years later I die of cancer.

What do I get as a user? What benefit do I get from X being open-source? Almost nothing.

On the other hand, if X came with a cure for cancer, _then_ I could get some real benefits.

The only thing open source does is allow developers to gain understanding of how it works even if no one understands how it works, and then write tools to "liberate" data from itself and extensive documentation of data formats knowing that it matches the source code. But I suppose you're right, none of that is useful if you're looking for other people to solve your problems.

<comment><USER39> No one is claiming having an open source application will cure cancer.

FSF promotes "free software" as a means of ensuring the user's freedom.

When in fact, if you have a piece of free software that's old and unmaintained and the code is complicated and no one understands it, your software is by all definitions "free", but it doesn't really give you the freedom you are seeking, unless you are a developer yourself.

Most of the time, you will get more freedom if the developers had documented their data formats and provided tools to liberate your data.

<comment><USER40> > No one is claiming having an open source application will cure cancer.

What? I thought they were!!1!

> When in fact, if you have a piece of free software that's old and > unmaintained and the code is complicated and no one understands it, your > software is by all definitions "free", but it doesn't really give you the > freedom you are seeking, unless you are a developer yourself.

Well obviously knowledge is power, but criticizing the GPL for users' lack of education is like criticizing the GPL for users dying of cancer. Actually, it's less reasonable: users are free to fix their own ignorance, while it's a bit harder to fix cancer.

> Most of the time, you will get more freedom if the developers had documented > their data formats and provided tools to liberate your data.

¿Porqué no los dos? I'm not sure why you seem to think that ensuring license freedom is mutually exclusive with documentation and tooling. If anything, I see a positive correlation with open source and well-documented, migratable data. Have you ever tried to pull data out of an Excel spreadsheet into a database?

<comment><USER39> > I'm not sure why you seem to think that ensuring license freedom is mutually > exclusive with documentation and tooling

Really? Where did I ever say it was mutually exclusive? Why would you ever think that?

It's a good thing, but it's _not always necessary_. It's tangential and kind of misses the point.

</comment></comment></comment></comment></comment><comment><USER41> > there are very few permissively licensed projects which aim at end users.

Lack of citation and data noted. I'm assuming good faith and going to approach this as I would a fellow colleague :)

I'm also going to assume you perhaps haven't been introduced to the vibrant ecosystem of permissive licensed software.

The article also doesn't mention how GPL is a show-stopper at some companies where we are building proprietary solutions.

Oracle, IBM, Sony, Apple, Microsoft, Boeing all are monetized empires that profit not just from binary blobs, but from providing a superior product. Also, being the patent holder is lucrative.

How do you intend on running a business and feeding your employees, let alone making investors happy following the virtues of GPL? Consulting and support only goes so far.

> Most of them are stepping stones towards further software development.

Ever hear of DragonEgg? (GCC was used to bootstrap LLVM/clang in it's early days.)

Devs use GPL software to write permissive software. Sometimes they do so because they have no choice but to reinvent the wheel because of GPL's rules.

<comment><USER42> >providing the user with the best products

You've completely missed the point of the article, and the entire purpose of Free Software, if you think this is about 'providing users with products' and generating a return on investment.

<comment><USER41> > if you think this is about 'providing users with products' and generating a > return on investment.

In who's eyes?

Consumers want the best product.

Investors want a payout.

How does GPL satisfy either of these?

GPL doesn't have the nimbleness to be viable with the market. It doesn't respect creativity and time of developers or investors - leaving consumers left to pick a proprietary / permissive alternative.

You don't need to be GPL to be open: You can MIT/BSD/Apache and still volunteer to not give out binary blobs [1]

[1] [https://code.google.com/p/chromium/issues/detail?id=491435](https://code.google.com/p/chromium/issues/detail?id=491435)

<comment><USER43> > You don't need to be GPL to be open: You can MIT/BSD/Apache and still > volunteer to not give out binary blobs

That's fine but it's only one level deep. What about the people that download your source and accept the terms of your license? They are totally free to make binary blobs and refuse to give source to their downloaders or their changes back to you.

The GPL directly addresses that and keeps the code free, no matter who gets it from who. It's really the only way to guarantee software freedom.

</comment></comment></comment></comment><comment><USER44> Free as in "Freedom".

</comment><comment><USER45> My name is zobzu. I fight for the users, and I'm standing up for the GPL. (seriously tho, same license by default, same reasons - feel free to downvote, it won't change my licensing choices)

</comment><comment><USER17> This makes the usual false dichotomy between 'users' and 'developers' and positions GPL advocates as freedom fighters.

Also as usual, there is no mention of how a GPL based economy can work. The reason the GPL is not loved by developers as much as the freedom fighters would like is because we need to earn a living. If GPL advocates can address that, they would be able to stop wasting time with these rants.

<comment><USER46> You seem to be persisting the myth that developers aren't able to make a living under GPL. In the WordPress ecosystem virtually all products are GPL compatible and the economy is worth millions and millions. Developers are doing just fine under it, more than fine actually. I'd like to hear a single case where GPL licensing made a negative difference between financial success and failure (maybe they exist, but examples are never brought up, funnily).

<comment><USER17> You seem to be perpetuating the fallacy that because some software developers can make a living under GPL, all software developers can do so.

Perhaps the market has already chosen the correct balance of GPL vs permissive licenses.

<comment><USER46> I'm not perpetuating this supposed fallacy. Software developers fail with their products for various different reasons, there just seems to be very little evidence that the choice of GPL has impacted economic viability. At least I can say that there is very little evidence of that in the WordPress ecosystem.

If you complain about the lack of an example of how a GPL based economy can work, you simply ignore existing markets. The WordPress ecosystem (worth billions) is almost exclusively GPL and developers are succeeding with successful products and services, operating businesses in all kinds of revenue ranges. Many small teams and even solo developers are regularly netting 6-7 figures a year. They are doing so utilizing a variety of business models, proving that almost any kind of solution can be made to work in some format, provided it's something people will pay for.

There has always been some push back for the GPL, especially by designers, in the WordPress space. Despite that things are working. We have an entire commercial themes market that is selling GPL based themes, with many successful authors raking in money. Some people thought it was crazy, but theme sales are sky high.

The only reason some developers aren't making money there isn't because GPL, it's because the competition is strong and the work is hard and some people can't or won't adapt.

<comment><USER17> You haven't addressed the fallacy which you are in fact making.

<comment><USER46> sigh</comment></comment></comment></comment></comment></comment>


AppNexus Buys Yieldex for $100M - <AUTHOR> http://blogs.wsj.com/moneybeat/2015/03/18/appnexus-buys-yieldex-for-100-million

<comment><AUTHOR> An ad tech company with offices in New York and Colorado made a successful exit via an acquisition by AppNexus.</comment>


Why text messages are limited to 160 characters - <AUTHOR> http://latimesblogs.latimes.com/technology/2009/05/invented-text-messaging.html

<comment><USER2>
      Text messaging has become the prevalent form of mobile communication worldwide.

      an average of 357 texts per month in [Q2 2008 vs] an average of 204 calls

I would think this suggests that calls are still the bigger method of communication. The average call will last much longer than what could be written in 160 characters. Also, a ninety second call discussing something could easily span a number of text messages back and fourth.

 _Edit:_ New point after reading further:

      Just look at your average e-mail today, he noted. Many can be summed up in the subject line, and the rest often contains just a line or two of text asking for a favor or updating about a particular project.

First, I don't accept the premise. Trying to suggest that 160 characters is more or less enough for the average email is laughable. Hell, a lot of the time it's not even enough for an SMS message or tweet.

Second, why are they even being compared? Is SMS meant to be just the same as email but on your phone? Not in my book...

<comment><USER3> > Second, why are they even being compared? Is SMS meant to be just the same > as email but on your phone? Not in my book…

They are both ways to interact with others. The argument here is that most communication do fit in 160 characters when pared down to its essential components, and thus for most communications SMS are sufficient to replace emails.

<comment><USER4> Now say that in 160 characters. :)

<comment><USER3> Both are communication channels. 160 characters is enough for most thought to come across. Therefore SMS can replace email in most cases (though not all).

</comment></comment></comment></comment><comment><USER5> This is kind of a weird article, it almost contradicts itself a bit.

As the article mentions, SMS'es are kind of piggy-backed with control signals sent on the network. At first they found they could tack on a 128 character message, but then reduced the character set further to get to 160 characters.

What isn't clear in the article is when this 'proof' that 160 was enough occurred. Did it occur after they figured out they could jam 160 in, in order to validate that 160 would be useful enough? Or did it really occur in the order that the article talks about, that they first picked 160 characters out of the sky, then managed to jam that into the signal.

I find the latter to much less likely. 160 just happens to be the most you can fit in to the packet, which he then validated was probably enough to be useful.

Anybody know definitely otherwise?

<comment><USER6> Having spent two and a half years of my life getting intimate with GSM-based (ie, not CDMA, though a lot of the protocol stack is the same) SMS messages (I worked for a company that did security, anti spam, anti fraud and other VAS systems (parental control, blacklist, SMS backup etc) for mobile operators)[1], I know a little bit about it. Admitedly I could tell you a lot more about the protocols used by SMS than its history

GSM networks consist of two signalling links: voice and control. The contol is used to, for example, set up or terminate voice calls. This meant that, in practice, the control signalling links were generally idle and so they piggy- backed SMS on it. I don't know anything about the 128 bytes, but the 160 characters comes from the 140 byte payload, when using the 7bit GSM default packed alphabet. I don't know the numbers offhand (been a year since I've worked there now), but quite possibly this is, indeed, the maximum packet size available, though there certainly is a large range of differently sized packets. In fact, a lot of things are piggy backed on the SMS payload. For example, when using concatenated messages (or binary data - there was a range of predefined things that are biggy-backed on SMS as "user data"), the header telling the phone which message it is is placed at the start of the message payload (reducing the maximum characters per text by (I don't remember offhand anymore) ~6 octets. Of course, 160 characters only applies to the 7bit GSM default alphabet. SMS messages also support 8bit and 16bit payloads.

Mobile operators absolutely love SMS as it is probably the most expensive form of communication they offer.

Somebody else below mentioned ubiquitous internet as an SMS replacement. While I think its true for a lot of people in well built-up parts of the world (and who have a smart phone, a lot of people still don't), its certainly not global. Hell, even here in Ireland theres areas where cell phone reception is pretty bad, so while you might manage to send or receive text messages, if you want to go online you're out of luck. Other, poorer, parts of the world are even worse off. Actually, I remember one company at the 2009 GSMA Mobile World Congress in Barcelona was demonstrating a solar panel powered mobile cell tower, for use in places like Africa, which was designed to provide better coverage of mainly SMS to large open spaces.

[1] <http://dublindan.posterous.com/things-ive-worked-on-4> We did a lot using transparent Home Routing <http://en.wikipedia.org/wiki/SMS_home_routing> The wikipedia article says that transparent home oruting is limited. I disagree. At least in the lab, we implemented everything from the technical realization (and then some) on a transparent home routing system. I believe when I left the company, others were working on a non-transparent version too (because it is easier/cheaper to get and install hardware for non-transparent operation than for transparent). But then, we did a lot of non-standard things, we just did them in ways that don't interfere with the rest of the network.

EDIT: comment didn't end up as interesting as it sounded in my head. Hopefully somebody found it useful nontheless.

</comment></comment><comment><USER7> Mr. Hillebrand is not a rich man, although given that the text message is a number 1 overpriced product ([http://www.walletpop.com/2010/09/27/10-most- overpriced-produ...](http://www.walletpop.com/2010/09/27/10-most-overpriced- products-you-should-avoid/)) it seems that his work has made huge amounts of money for the others.

<comment><USER6> I can confirm that mobile operators absolutely LOVE SMS because it is so highly overpriced for the amount of data you get to send. They love it so much, in fact,t hat they are willing on spending large sums of money on services to improve the SMS network in some way (eg, we did anti-fraud and anti-spam stuff, amongst other more niche things).

</comment></comment><comment><USER8> Slightly off-topic, but it's a little mind-boggling that they charge 10 cents per message for something that rides on control signals and gets the lowest priority on the network.

<comment><USER9> Here in Kenya we pay between Kshs 1-2 per message to send.

Receiving is free.

Considering that the exchange rate is Kshs 80 to 1$ a message is about 1.25 to 2.50 cents.

</comment></comment><comment><USER10> In the UK you can combine several texts together seamlessly so this limit is meaningful only with respect to billing, and most plans provide so many free texts that it simply isn't something you think about - is that similar in the US?

<comment><USER11> Yes for modern phones, although I can't say how many free texts is considered enough. If you're not on an unlimited plan and you start texting with someone who is, you can quickly stack up hundreds of texts without realizing it...

<comment><USER10> True, and that is of course applicable here in the UK too, however it is rare, in my experience at least, to see people being too concerned about text length. In the past people would be very anal about using 'text speak' i.e. hi m8, how r u? partly to fit into the char limit.

</comment></comment></comment><comment><USER12> Somehow this reminds me of the story that the length of audio CDs was chosen so that Beethoven's Symphony No. 9 would fit onto one CD (see for example <http://www.snopes.com/music/media/cdlength.asp> )

<comment><USER2> Seems it may actually be more than just a myth.

See the penultimate paragraph on [http://www.dutchaudioclassics.nl/?strPage=Info&strBrand=...](http://www.dutchaudioclassics.nl/?strPage=Info&strBrand=Various&strType=The_cd_laser&blnSefURL=true)

Wikipedia also gives [http://www.aes.org/historical/store/oralhistory/?code=OHP-01...](http://www.aes.org/historical/store/oralhistory/?code=OHP-016-DVD) as a source for the Beethoven story being true, although you have to buy that interview to actually hear it.

</comment></comment><comment><USER13> _U.S. mobile users sent an average of 357 texts per month in the second quarter of 2008 versus an average of 204 calls, the report said._

The average person sends ~ 10 text messages and makes 7 calls a day?

Wow, I'm behind the curve ...

<comment><USER14> the mean isn't a robust statistic. i don't think your inference is correct in this case.

a single user can theoretically throw the mean off from the central tendency completely. i would imagine there are a few users that send a lot more text messages and calling more than most people, biasing the result. it would be more useful to talk about the median in this case, i think.

[http://en.wikipedia.org/wiki/Robust_statistics#Examples_of_r...](http://en.wikipedia.org/wiki/Robust_statistics#Examples_of_robust_and_non- robust_statistics)

<comment><USER15> Agreed. I know many ppl who send 1000 or more texts per month. But I don't think there exist many in the world who make that many calls for personal use.

</comment></comment></comment><comment><USER16> What an anachronistic technology in a world of ubiquitous internet connections. I, for one, _hate_ SMS.

<comment><USER17> _a world of ubiquitous internet connections_

Haha, I dunno what world that is, I regularly travel to places where there's no GPRS/EDGE/whatever but there is good ol' GSM. Or sometimes there is data but it's prohibitively expensive.

Incidentally if you hate SMS you probably just have a crap phone. BlackBerry for one presents the same interface for SMS, IM, whatever, the underlying transport is irrelevant to the experience. I guess iPhone and Android are the same.

<comment><USER16> I can tell you what world that is. It is the 'old world', Europe. I live in Germany. I have an iPhone. I have 'net access virtually everywhere including all of western Europe. I pay 30$ per month for it.

I have lived in the US for a while, and I can tell you: US mobile carriers offer incredibly bad service for incredibly high prices. All of western Europe is _way_ ahead of AT&T or Comcast in these regards. I have not had a single 'dropped call', ever. This problem just does not exist outside the US (except when you enter a tunnel, of course).

Hence, I can always send emails, or even Facebook or Twitter updates from anywhere. Why would I want to send an SMS instead?

<comment><USER18> Your "old world", western Europe, is an outlier. Head out into the middle of nowhere in northern Norway and see how your Facebook works.

<comment><USER16> You could argue that Norway would be 'Northern Europe', but I guess that is hypocritical.

Germany, France, Switzerland, Austria, Netherlands, Belgium and England have very good coverage, though.

<comment><USER18> Those countries combine for approximately 242.63 million people and 1,236,644 km^2, or 3.5% of the world's population and about 0.8% of the world's total land area.

</comment></comment></comment></comment></comment></comment><comment><USER3> They're not limited to 160 characters, _any_ GSM phone is able to create and receive segmented SMS (a single message over multiple segments), up to 255 segments of 134 bytes.

I have read CDMA phones are not able to perform such an amazing feat though.

<comment><USER6> User Data Header => UDH Length + Information Element Identifier + Information Element Length + Concatenated Message reference number + Sequence Number of Part + Number of Parts. Each is one octet, for a total of 6. Hence 134 octets, Note that the user data header can, conceptually (I have not seen it in practice, but the spec allows it) contain multiple information elements of varying sizes.

I don't know much about CDMA, but from the little I did interact with it, the upper levels of the protocol stack (TCAP upwards) looked almost identical to me. Does this mean that CDMA "phones" never implemented this or is it a protocol issue?

<comment><USER3> > Does this mean that CDMA "phones" never implemented this or is it a protocol > issue?

I do not know, I just read recently that CDMA had no segmented SMS (in relation to the CDMA iPhone I believe, but for the life of me I can't remember the source). I just threw it out there in case somebody had the knowledge to infirm or confirm it.

If it was in relation to the CDMA iphone indeed, I'd expect it's either in the baseband or a protocol issue, since GSM iPhone has no issue with segmented SMS (in either production or consumption)

<comment><USER6> It would be very strange if the phones just didn't implement it, so at a guess I'd say its a protocol issue too, but as far as I remember, the upper levels of the protocol stack were the same between GSM and CDMA so I don't see why the protocol wouldn't support it (since the user data is inside the message payload itself and doesn't interact with the rest of the payload. I guess CDMA must not support a user data header for some reason?

I'd be very interested in hearing if this is true or not, if anybody knows.

<comment><USER3> Googling a bit, I found the following on an SMSC's website:

> In CDMA environments, no standard for segmentation exists. Therefore, the > WAP Forum defined its own standard for the sending of segmented WDP messages > in a CDMA environment.

> A key requirement of this standard is that each segment of the message must > use the same CDMA SMS message id. However, the CDMA SMS message id field is > a value that is generated by the SMSC, and cannot be set by an application > that is submitting messages to the SMSC, such as an MMSC or WAP Push Proxy > Gateway.

A number of email threads seem to indicate concatenated SMS are available on some CDMA phones but not others (and most notably appear missing on a number of CDMA Blackberry devices, to the point that there are software built for auto-splitting: [http://www.mobihand.com/product.asp?id=28752&n=Beyond160](http://www.mobihand.com/product.asp?id=28752&n=Beyond160)), I have found no indication on whether the process was as seamless as on GSM, but the quote above seems to indicate the limitations are quite heavy and segmented SMS are _not_ supported by CDMA itself.

<comment><USER6> Oh, interesting. Thanks for that.

I only worked with GSM messages myself, so I don't know how it compares to CDMA. From what little I did see of CDMA I thought they would be fairly similar, but I guess theres more involved. GSM is a pretty versatile system, though.

</comment></comment></comment></comment></comment></comment><comment><USER19> Because cellular providers love massive piles of cash?</comment>


Charming Python: Decorators make magic easy  - <AUTHOR> http://www.ibm.com/developerworks/linux/library/l-cpdecor.html

<comment><USER2> I'm inordinately fond of using decorators for adding metadata attributes as markup on functions:

      def add_example(*args):
        def decorate(fn):
          if not hasattr(fn, 'examples'):
            fn.examples = []
          fn.examples.insert(0, args)
          return fn
        return decorate

I use decorators like this to add extra command-line options to methods, annotate what types to construct from a command-line string, add typed __doc__ extensions, note example input/output for unit testing and documentation, etc.

</comment><comment><USER3> I'm genuinely curious, not trying to start flaming, but does this increase the expressiveness of the underlying language? Or is it mainly useful as a syntactic shortcut for function composition (as the article implies)?

       @dec1
       @dec2
       @dec3
       def some_func(arglist):
          ...

vs.

       some_func = dec1(dec2(dec3(fun some_func(arglist) ...)))

I feel like I'm missing something, but perhaps I'm just used to using other idioms for this.

<comment><USER4> Yes, it is syntactic sugar for composition. It exists to make source code more self-documenting because you can see that a function is "decorated" at the point of its definition, rather than some other location where the conceptual context is lost.

The best common use case I can think of for it is web interfaces with access control:

        @login_required
        def profile(...):
            #...

        @admin_required
        def ban_user(...):
            #...

Decorators have also been used for great justice in unit testing frameworks and GUI libraries.

Your example does look a little overzealous, which is why people don't normally use decorators in that way. Usually you'll only see one decorator per function.

<comment><USER3> > at the point of its definition

Ok, that makes sense, thanks. I guess needing syntax for this is a consequence of Python's quirky lambdas. In languages with full lambdas, you can just wrap an anonymous function at the point of definition.

       profile = login_required(function (...) ...)    -- in Lua

       (define profile (login-required (lambda (...) ...)))    ; in Scheme

       let profile = login_required(fun ... -> ...)     (* in OCaml *)

Putting the decorator on its own line draws attention to it, though. This is probably also another instance of Python's "flat is better than nested" design choice.

</comment></comment></comment><comment><USER5> Nice!

This makes python quite less boring.</comment>


Learning Clojure: dependent types and contract-based programming - <AUTHOR> https://blog.frankel.ch/learning-clojure/4/ <comment><USER2> _This is clearly a dependent type, as it implies checking on values._

This is a value.</comment>


Django 1.4 Released - <AUTHOR> https://www.djangoproject.com/download/

<comment><AUTHOR> The release notes can be found here: <https://docs.djangoproject.com/en/1.4/releases/1.4/></comment>


Ask HN: When Is It Better to Keep the Algorithm to Yourself? - <AUTHOR> Suppose you're competing in a machine learning/coding contest and through your own research come up with a technique that is say, 4% better than the best thing anyone has tried (just pulling numbers out of the air here).
At what point is it better to not claim the prize on said contest and just keep the method secret? At what point should you publish it? Does it ever make sense to just use it in your own capacity analyzing data for companies as a 3rd party?
I mean I'm sure it's all dependent on the money involved but one has to wonder where the breaking point is. What can you make as an independent 3rd party willing to do analysis with proprietary software you aren't releasing?
In such a case, how could you ever provide confidence enough that the methods work? Also, how would you bill if essentially the time spent is mainly runtime? I'd love to hear any speculation, stories, industry standard behavior or history around this sort of thing. <comment><USER2> When you could form your own startup, and capture the profit from that for 5-10 years.</comment>


Ask HN: How to create my own debit card? - <AUTHOR>

I mean how to create a card that acts as a debit card that I can distribute to other people? It's like those student cards university use for on campus food, shops, and internal services. Students would deposit money in, and spend money from the card at participating locations. <comment><USER2> You will need the following three advisors; a lawyer to tell you how to structure it, an insurance broker to help you manage your risk, and a tax accountant to make sure that you are keeping track of the money in a way that the IRS deems acceptable.

Depending on the state you are operating in, you may need to file for a money transmitter license. And yo and your advisors will need to go through <http://www.fincen.gov/financial_institutions/msb/index.html> and determine which, if any of the declarations you need to file and what compliance policies your organization needs to put in place.

You'll also need to ensure that you have enough working capital to cover potential withdrawals, and remember that you will have to keep the funds segregated from the rest of your organizations business.

Oh, and your insurance broker will have to figure out how best to insure you against all the normal risks that face a bank.

</comment><comment><USER3> This is how you do it: (I built exactly what you want)

\- Build a bank

\- Become a visa/mastercard issuer or create your own payment stack (which will have 0 merchants)

How to build a bank (checking, no savings):

\- go to central bank website, you should be able to find the offices where you can apply for that license, call them and ask for law firms that already do that

\- it costs a few hundred thousand of dollars - fees and lawyer expenses

Now the hard part: To become a bank (the type you want) you need a lot of money. 4 years ago it would take around 24mi to do that in the US. That money is usually retained by the central bank. After having that retained you need to retain at least 15% of all checking money in the central bank account, which makes it even harder to get started.

Summarizing: get 30 million, call CB, the lawyer.

Now, the Pro-Tip: A lot of banks can act like a proxy. You create your firm and reach an agreement with an existing bank to operate under it's license and structure. simple.com is just that :D

</comment><comment><USER4> You're going to have to build your own magnetic stripe readers and writers and encode the cards. Then figure out some software to make it work.

To get you started: <http://hackmiami.org/2008/12/21/magnetic-stripe-card- reader/>

<http://stripesnoop.sourceforge.net/> (may be dead)

[http://flashingleds.wordpress.com/2010/11/12/magnetic- swipe-...](http://flashingleds.wordpress.com/2010/11/12/magnetic-swipe-card- spoofers/)

</comment><comment><USER5> You might want to try these out, and let us know how's it going: <https://www.ixaris.com/products/payment-partner> <http://www.payoneer.com/PrepaidMC.aspx> <https://www.payza.com/features/payza-prepaid-card>

</comment><comment><USER6> Wow, totally orthogonal answers, both of which answer an interpretation of the question you were asking. Were you asking (a) how to set up your own debit card that works with the current system, or (b) how to MAKE your own card, from scratch?

(I'm a guessin "(a)").

</comment><comment><USER7> There are companies set up to offer white label debit cards. Using one of them may be your best option but it depends quite a lot on exactly why you're doing this which your original post doesn't cover in nearly enough detail.</comment>


Beijing's mass surveillance of Australia and the world for secrets and scandal - <AUTHOR> https://www.abc.net.au/news/2020-09-14/chinese-data-leak-linked-to-military-names-australians/12656668 <comment><USER2> That would make sense. Maybe they try to help their government prosecuting facebook comments, excuse me, serious hate crimes.</comment>


Spinning Up a Pong AI with Deep Reinforcement Learning - <AUTHOR> https://blog.floydhub.com/spinning-up-with-deep-reinforcement-learning/ <comment><USER2> This seems like a solid example of practicing Deep RL with a few lines of code. With the OpenAI thing you run a program from command-line. Curious if you have any insight about what the algorithm is and how it compares to the Keras one?

<comment><USER3> Both the Keras one and the one from spinning up can be called "vanilla policy gradients". The one in Keras is closer to REINFORCE, and the one from spinning up use actor-critic and a multilayer perceptron.

</comment></comment><comment><USER4> I'd like to see this AI hooked up to an actual Atari machine somehow. Has anyone tried something like that? Could the model process the frames quickly enough to move a robotic arm up or down on a joystick?

<comment><USER3> Hum, have not tried that but I guess the robotic part and the computer vision would be pretty standard, so it would be feasible.

PS:They even have robots playing real Pong! [https://www.youtube.com/watch?v=tIIJME8-au8](https://www.youtube.com/watch?v=tIIJME8-au8)

</comment></comment><comment><USER5> Great post! You mentioned different RL frameworks in the article (Dopamine, Spinningup, Keras-RL, etc...) Which one do you recommend in term of usability?

<comment><USER3> Thanks! I would totally recommend Spinningup, because of the guide and the docs.</comment></comment>


An easy way to break TrueCrypt system disk encryption - <AUTHOR> https://theinvisiblethings.blogspot.com/2009/10/evil-maid-goes-after-truecrypt.html <comment> java-man (2009)</comment>


Andreessen and Mixpanel Call for an End to "Bullshit Metrics" - <AUTHOR> http://allthingsd.com/20121217/andreessen-and-mixpanel-call-for-an-end-to-bullshit-metrics/ <comment><USER2> The truth is that there is no one single metric that rules them all. You have to look at a suite of metrics to fully understand how users are using your product. It might be nice for YouTube to measure numbers of views a video has, but what if the majority of those views come from the same person? What if that person doesn't come back to YouTube? It might also be tempting to just measure the retention of users. But that doesn't give you the whole picture either. Is a user who comes in on Day 1 and drops $99 but never comes back again worse than a user who uses your app everyday but never pays?

For real businesses (read: those with actual business plans) the closest single metric of importance is Customer Lifetime Value. And the equation is very simple. Make your cost of customer acquisition less than your LTV and you will be making money.

<comment><USER3> First of all, they are not saying there is one true metric that rules them all. They said each site will have one key metric, which makes a lot of sense. Each site will most want to measure how users engage with their domain. The example mixpanel offers is that Instagram wants to know how many users uploaded a photo. This matters way more than pageviews, etc. It tells you something about user engagement.

The bigger issue I see in your comment is that sites at different stages in their lifecycle will want to measure different things. Customer lifetime value is the most important number for a mature business but early stage startups are nowhere near getting a realistic number for customer lifetime value. If I am the founder of a startup I want detailed knowledge of how users are interacting with the product I created to address a problem domain. I can get that info immediately after I start acquiring users, well before I have an idea of whether I have a viable business and what my customer lifetime value is going to be.

<comment><USER4> It seems to me, if Instagram could really only chose one metric to track it would be an app visit, not a photo upload. Instagram must have users who are primarily content creators and another larger group (probably a superset) that are content consumers. Not focusing on the actions of the content consumers would seem really bad for business since what early-stage Instagram's investors care about is eyeballs not photographs and what late-stage Instagram's advertisers care about is eyeballs not photographs.

Really Instagram probably has a few OKMs (visits, uploads, hearts, comments, follows). All of those are important and should be tracked. In their documentation and educational videos, I've not seen Mixpanel focus on visits as a key metric. I'm not sure why.

</comment></comment></comment><comment><USER5> I think theres a difference between advertising or celebrating "bullshit" metrics and actually using them.

For our most recent press releases, we reported many of these "bullshit" metrics because thats what gets acclaim and attracts attention to help the company gain the necessary notoriety to thrive. Internally, we still use real, actionable metrics to drive our development. We just don't report them to outsiders because its either sensitive information and likely uninteresting outside of the context modeling or users experience.

<comment><USER6> _Internally, we still use real, actionable metrics to drive our development. We just don't report them to outsiders_

\-- Pretty much how the world works.

</comment></comment><comment><USER7> A little ironic coming from the firm that invested in Groupon, inventor of the "Adjusted consolidated segment operating income".

</comment><comment><USER8> The first most important metric: When it goes up and to the right, it means your company doesn't die.

Death can be alluded in many different ways, depending on the nature of your business, but it usually means making money, hitting a milestone that allows you to raise money, acquiring users, and so forth.

Once your company evolves, and has beaten death for the foreseeable future, a new set of metrics come into play and are now the most important. These may be similar to the death-evading set above, or they may be something new like increasing revenue, retaining users, increasing engagement, optimizing CLV, and so forth.

The point? If a metric means your company is not dying, or your company is growing, it matters. If it doesn't fit into those buckets? Probably doesn't matter.

</comment><comment> throwaway-29382 Good thing they don't use any BS metrics on their about page.

<https://mixpanel.com/about/>

<comment><USER9> We don't. Data points (or actions as we say on the about page) correlate directly with the amount of revenue we make. 85-90% of all data points are paid for by our customers. It's how we make money: <http://mixpanel.com/pricing>

It actually does a better job correlating with our growth than purely the number of customers we have. We've also been public about that.

<comment><USER2> It makes sense that data points correlate to your growth, but what's interesting is that data points do not necessarily mean higher value for your customers. If there was a metric that only required one data point to measure and that metric could be the basis for a successful company, people would probably use less data points and gain more value. But most people don't know what to measure, so they default to measure everything. Thats good for you, but doesn't necessarily mean its good for them.

<comment><USER9> That's a valid point. The thing is, our growth in data largely correlates with customer satisfaction. If a customer finds no value but sends us a lot of data, they stop because they are paying for our product. That causes a decrease in data points.

Admittedly, we do use a different metric to determine how "valuable" our product is in a more honest way. We're talking about non-bullshit metrics that highly correlate to growth. Not all valuable products necessarily grow.

<comment><USER10> What qualifications (or quantifications) do you use to ensure that your value is more honest than someone else's? At the end of the day, value is determined by someone who is not yourself.

This article for more me is pretty straight forward. It's a well crafted PR play (whether made by commercial means or not is irrelevant), that draws readers to putting more importance on what metrics are used to determine valuation. Something that they can draw from using a service such as Mixpanel. The reality is that you, nor I, can definitely provide one metric that clearly correlates to financial valuation. Every case is different and every case warrants negotiation.

Mixpanel appears to be a great service btw. I hope my tone doesn't dictate otherwise.

</comment></comment></comment></comment></comment><comment><USER11> This will not happen. Individuals and corporations use these because they make them look better.

Should companies selling, say, food products be mandated to show pictures of the actual delivered product on advertisements, menus and packaging? That's not going to happen without additional legislation.

Should resumes of individuals highlight workplace weaknesses, medical conditions, personality faults, past failures, major conflicts, etc.?

The web is no different. Unless individuals and corporations are persuaded to do otherwise, they will continue to use metrics as they please.

</comment><comment><USER12> I really love Mixpanel, it is the "best in breed" when it comes to event analytics. I don't think many people would argue with that, it's awesome. In fact, we use it at Zapier for pretty much everything (basic funnels, A/B testing, retention, engagement, etc...) and we haven't even reached our full potential with it yet. But I still have some pretty fundamental beefs with the state of analytics software in general.

About the article, the problem stems from the fact that proper analytics is hard and is (arguably) getting harder with more advanced packages.Shouldn't it be going in the opposite direction?

It is a lot easier to track discrete downloads or pageviews than some other, more insightful metric, so people will naturally gravitate to the cheaper metrics. Until this is reversed, bullshit metrics will reign.

Anyways, my beefs:

 _First_ : how do you decide what data to send into the package?

The more data you send, the better (sure), but at a certain point you are just duplicating your internal datastore, so that is too much, right? But not enough and you'll miss a chance to understand a phenomena that you didn't predict seeing (isn't that the point?). After you decide, then you write a crapton of code to send it all (what about backfilling data when you want to track something new?).

 _Second_ : once you are collecting the data, how do you know what metrics to actively track?

This is definitely existential, but it's back to the core problem: doing analytics properly is _hard_. Why couldn't the software let me define some properties about the _type_ of app I am running and suggest some strategies (you have a subscription SaaS app? Try tracking paid plan retention, signup funnels, etc...). Maybe it could go even further with _reverse_ funnels, as in: what events are the most important and work backwards. I could see some automation and discovery possibilities there.

 _Third_ : do I really have to dig around trying to find something useful?

All the data is there, the software should _tell_ me what is useful or interesting. It's definitely a hard problem, but I would throw money at software that could send me this email: " _Looks like users who experienced event "ABC" also performed your highest priority event "Signup" at a 13% higher rate. This observation is 99% confident._ " Of course, you'd need to investigate a littler deeper to see if that isn't just a fluke or something stupidly obvious (like: people who view a page signup at a higher rate than those who don't), but at least I might learn something.

I know this is certainly a pipe dream as of today, but I vow to shower someone with money if they can do this.

In my opinion, the next generation of analytics software won't just have more bells and whistles, it will fundamentally shorten the time to some sort of real "AHA!" insight.

<comment><USER9> We deal with this every day at Mixpanel. Education is a tough problem to solve. Here's how we think about it with respect to your questions:

"First: how do you decide what data to send into the package?"

My recommendation is you think about this gradually. Don't instrument everything. Start by picking 5 metrics you really, really care about. One of them should be your One Key Metric (OKM) - a metric that you would be the company on if you could only pick one thing to measure. I think the pressure of picking 5 helps you decide what to measure.

"Second: once you are collecting the data, how do you know what metrics to actively track?"

When you start gradually, there isn't much to pay attention to. Stay focused only on a set of metrics. Add more metrics when you want to understand those specific metrics more deeply. Add more data to split those metrics into groups to dig even deeper. Keep driving your OKM up as much as possible--sometimes you have to do it with something that correlates to it.

"Third: do I really have to dig around trying to find something useful?"

Today, the answer is yes. Businesses are fundamentally very different. Analytics is a lot like science experiments in high school: You start with a hypothesis, you test to see if you were right, and if you were then you came up with a conclusion or answer to your experiment. It's hard work to build a good business. I think the first step is for companies like us to help you understand your data. The next step that I think is more important than simply pulling "insights" out automatically is to help you take action on it so you grow.

<comment><USER12> Thanks for the response.

I just signed up fresh to Mixpanel to play around and you guys have solid technical on-boarding around just installing and collecting _any_ data, but not a lot of details on _what_ to collect. I'm sure that getting someone to collect _just anything_ is a better first step than some sort of high level tutorial, which is why you do it that way.

I like the OKM idea a lot. Perhaps that could be a pretty solid center stone for on-boarding a new user. I just remember being overwhelmed by the blank slate every time I signed up for any analytics package.

<comment><USER9> We generally reach out on the support side proactively to help. Anyone on our team is happy to think it through for you.

If you want to learn more in the abstract we recently came out with an education series: <http://mixpanel.com/education>

</comment></comment></comment></comment><comment><USER13> People will always be measuring everything by the numbers. Look at your number of Facebook friends, your LinkedIn connections, your GPA in college, your annual income. It's always a rational argument to say that bigger is better. In a world where metrics are quantified like this, this is the natural way of thinking. It's going to be difficult to seep through the bullshit metrics, especially when you're such a small startup with other numbers that are too embarrassing to display to the world -- but, really, when you think about it this is the only way to find and fix the problems that you have.

</comment><comment><USER14> I would have liked the article to pony up what the companies own 'non BS' metrics are. Seemed a little flat to 'call BS' on everyone else then not deliver the goods itself.

</comment><comment><USER15> Actually, I find that a lot of the metrics mentioned like uniques and pageviews are the ones that affect revenue for ad-driven startups. That's as real as it gets with metrics.

When it comes to ad-driven startups, you could actually say that the "real" metrics suggested, like active users and engagement, are the actual bullshit metrics. For many ad companies like Google(search) or YouTube, high engagement by the users adds nothing to the bottom line.

</comment><comment><USER16> So they call to replace one bullshit metrics with other bullshit metrics. Nice.

Not once in this article there were the words "Profit" or "Revenue" and yet they talk about business and companies.

Here is a surprise for you. Real companies are interested in real profits from real revenue and you count revenue and profit only after the money is actually in your bank account.

Otherwise one day you get the kind of terms of service just like Instragram these days.

<comment><USER17> Yeh, if there is one true metric it would be profit

</comment></comment><comment><USER18> Analytics only matter if they help you make better decisions. Anything else, is, indeed, just vanity.

</comment><comment><USER19> This article inspired me to create a twitter handle to highlight the best(?) examples of this: <http://twitter.com/bullshitmetrics>

Anything recent come to mind?

</comment><comment><USER20> An example in the article, number of pictures uploaded on Instagram, it is not clear that this is a good metric, at least until they work out a way for each additional image to bring in more revenue.

</comment><comment><USER21> This seems to be focused on web app start ups. What the most important metrics to track for eCommerce?

<comment><USER9> It depends on what you're willing to be public about. I think your OKM is people buying something and looking at all the metrics around that.

Great metrics for e-commerce are churn, lifetime value, repetition of purchases, average revenue per user. On the marketing side, I think it's useful to understand what kinds of marketing produce certain kinds of repeat revenue.

Publicly, I think understanding how many customers purchased something in the past 30 days is useful. Potentially, the number of customers that purchased something above $X.

<comment><USER22> OKM for eCommerce is revenue growth TY/LY by week, closely followed by average order value, average items per order, and conversion rate

</comment></comment></comment><comment><USER23> Gaming companies have been doing this already for years.

</comment><comment> joe-mccann The need for new metrics! Written about extensively here months ago:

<http://subprint.com/blog/the-need-for-new-metrics>

</comment><comment><USER24> Everything except bottom line profitability is a bullshit metric.

<comment><USER25> Until you can't make payroll because the deals that you booked as profit two months ago haven't paid you any money yet.

Then cash flow suddenly becomes essential.</comment></comment>


Compressing Skeletal Animation Data - <AUTHOR> http://engineering.riotgames.com/news/compressing-skeletal-animation-data <comment><USER2> Really cool! Animation compression is a fascinating, under-discussed, subject.

However, I'm surprised he didn't tackle two important techniques:

In most cases, a quaternion can easily fit in 15 bits if it expresses a quantized delta from the previous key. Keep that 16th bit for "is compressed" and you are good to go.

He also didn't mention that many joints (knees, elbows) are often only rotating around a given axis, which allows for way deeper compression.

Honestly, I'd tackle these two low-hanging fruits before looking at curve fitting, which is going to be a massive CPU hog at decompression time.

<comment><USER3> There should be virtually no overhead from decompression, since, if I understand this correctly, there isn't any actual compression going on in the sense of e.g. ZIP etc. It's just a matter of lossy data reduction, by e.g decreasing a 32bit float to 15bit while keeping the original value as closely as possible. Same with the curves, they are still regular uncompressed curves with fewer keyframes than before, the "compression" is done by efficiently placing these keyframes and letting the interpolation between them take care of the rest. So I guess speaking of data reduction instead of compression would be closer to the thing? In any case, I really liked the article.

<comment><USER2> Well, without going into too much detail, once you start curve-fitting, you kinda have to do it on a per-bone basis, so your animation poses aren't going to be sequentially placed in the data-stream. That means that your poses have to be re-formed before they can be blended into the higher parts of the animation system.

When all your keys are aligned, your keys are effectively poses themselves, so blending them together can be done as you do the inter-animation blending, which is a lot more efficient.

Again, it's totally worth it, especially if you have memory contraints, but not what I'd have tackled, given what they described.

Edit: in the context of this article, compression and data-reduction are interchangeable terms. Converting a quantized value into 4 floats isn't free and constitutes the "decompression cost", same goes ith interpolation.

</comment></comment></comment><comment><USER4> Neat. I've written keyframe compression data before by removing keys that can be reconstructed by linear/cubic interpolation of the remaining keys -- this is an interactive process (key removing keys) that works fairly well. Although I guess it doesn't shift around existing keys thus it won't be quite as efficient as the curve fitting approach but it is a lot easier to implement.</comment>