News for hackers. Stuff that matters.

tentonova

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @03:40PM (#1029091)
You're introducing a logical non-sequitur. That there is a niche isn't the issue, it's what the niche is.

Enterprise services.

The fact that they're also not actually selling GPL software (ie, an indirect business model), this all doesn't really disprove my point -- or the original authors.

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @03:32PM (#1029068)
I think you and I are wasting time. You care about making things easier for software users. Software users don't make more software; software authors do.

Actually, I think "users" should pay for software as that's all they're able to contribute, and I don't think that the GPL dual-licensing model users by some enterprise vendors can actually work for most consumer software.

If I produce developer-oriented software that's outside of our core business -- but perhaps enables our core business -- I am very likely to release it under the MIT/BSD license to help aid in wide adoption and external contribution from funding business interests.

If I produce software that is our core business, then I won't MIT/BSD license it. I might GPL it, but only if there's a clear value (ie, leveraging the 'open source' name, aiding in widespread adoption by hobbyists while targeting enterprise users, etc) in doing so.

The business benefits of the GPL are so compelling that I don't think they need my cheerleading.

The benefits are only compelling for --some-- business models. And this doesn't disprove the author's point.

As for other business models, especially around commoditized software, the BSD license often provides the most compelling business benefits as corporates are free to pool resources on code they are free to link against without having to release the entirety of their products under a copyleft license.

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @03:29PM (#1029060)
I'm not sure what your point is, or how it counters the author's original point, which is that what's good for the goose is very much not good for the gander.
Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @03:27PM (#1029053)
Why not talk about SourceFire, Sleepycat, Splunk, Hyperic, Zimbra, and Astaro

All selling services and products around a very specific type of software, selling to a very specific market niche, leveraging both trademarks and non-GPL licensing to do so.

They're not selling the GPL software itself.

Take your Sourcefire example. They fund development by selling proprietary hardware and proprietary licensed IDS rulesets under trademarked names to an enterprise market niche.

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @03:24PM (#1029049)
I agree that the GPL is primarily useful as a vehicle for making money off software that is also released as open source. Since open source commercial software is strictly better than closed source commercial software, I don't have a hard time using words like "benevolent" to describe that practice

I'm not sure I understand your use of "strictly better" here. If my goal is to solve a specific problem, then isn't the software that solves that problem the best strictly better software?

As far as benevolence, why ascribe primarily altruistic motives to clear business decisions? MySQL's use of the GPL allowed for pervasive adoption, which increased demand for commercial licensing and support services.

Finally, your third graf is profoundly disingenuous. Most GPL software is noncommercial. Everything we use to post on HN is traceable in some way back to GCC, which isn't making money for anyone.

How do you think GCC development is paid for? Just take a look at the (closed source, proprietary, et al) companies providing the primary funding ongoing GCC development (although many are moving to or looking at LLVM, since its licensing provides a better model for this sort of shared OSS funding).

It always comes down to money and either commercial interests or government funding.

Re:Why Save MySQL Now? on Sunday January 03, 2010 @03:16PM (#1029035)
You're arguing that users don't believe the current situation is a fair trade, and would rather enter into a GPL quodque pro quo agreement if they were not restricted by the purchasing department?

Well -- I for one am happy with the licensing status of Mac OS X, and think I've received a perfectly fair trade.

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @03:12PM (#1029025)
As I said below, I'm surprised by the emotional arguments engendered in your word choices -- "fairness", "benevolence", etc.

This is simply business, not ideology. In terms of ideology, I think there's a simply check for whether Sourcefire meets the criteria of "I love the GPL. Except when it applies to me": Sourcefire could not ever include anyone else's GPL code in their own product without breaking their business model.

Re:Why Save MySQL Now? on Sunday January 03, 2010 @03:08PM (#1029020)
I agree -- and I think Monty has no business taking umbrage with the bed he's made -- but it's worth exploring why this is the case.
Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @03:06PM (#1029017)
I'm surprised at the appeals to emotion engendered in your word choices -- "fairness" and "benevolence".

I don't think either applies. The GPL is primarily useful as a means to maintain a very specific business model that relies on selling commercial licenses. There's nothing moralistic or benevolent or "fair" about it -- it's simply business.

The only moral argument I could possibly make is that it's disingenuous if not outright hypocritical to claim that the GPL is about "freedom" when its used as merely a business tool that leverages the closed-source work of others to fund ongoing development.

Re:Why Save MySQL Now? on Sunday January 03, 2010 @02:56PM (#1028994)
The only freedom GPL denies a developer is to close up software that was once free.

You can't "close up" software that was free. The software remains free.

The only freedom the allegedly "more open" licenses give developers is to deny freedoms to their users.

It gives developers the freedom to create an aggregate product without also releasing their own code under the GPL, allowing them to pursue a business model that they feel will fund the ongoing R&D necessary to produce that product.

For the users (and software freedom is about them), those licenses give nothing.

If users do not feel that a product does not provide a fair trade, they are under no obligation to purchase or use it, and the original code remains to do with what they will. However, as indicated by vast market success, users do feel that these licenses and the products produced using them do provide something of value.

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @02:51PM (#1028986)
Yes, the BSD license sure is better for software users.

It's also better for software contributors who want to leverage the code in their own products, and use the resulting revenue to contribute back their changes (but not their entire product).

But, for the most part, I think using the BSD license means you're not going to care about the commercial value of your code, because if it's valuable, people will freeload.

Some people will free-load. Many won't. Look at the Apache project, where a vast majority of development is funded by corporations using the software in their closed source products while contributing improvements back to the original product.

In my industry, the GPL has done a servicable job protecting some key software projects (Snort, Nessus, Wireshark).

How do you define "protecting", and what evidence would you use to demonstrate that protection? What would you say those projects were protected from?

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @02:46PM (#1028977)
I'm not sure how I understand how a commercial license is "strictly more restrictive" than the AGPL, which requires that you also release your code under the AGPL. Whether or not it's "strictly more restrictive" rather depends on whether you want to also release all the source to your own code as well.

I also don't understand how the AGPL's objectives are "benevolent" when the primary purpose of those objectives as applied by commercial interests is to ensure a revenue stream via commercial license.

You yourself said: "GPL-style licenses make it harder for competing companies to use your code. GPL is therefore an easier sell inside of a company."

How is that benevolent? (charitable, intending or showing kindness).

Re:Why Save MySQL Now? on Sunday January 03, 2010 @02:43PM (#1028972)
I'm firmly disagree with Monty's duplicity, but I'll try to shed some light on it.

The "big deal" is that only two things provide a revenue stream around MySQL sufficient to support the heavy R&D costs associated with building a database product:

- The name ("MySQL")

- The copyright.

If you own the name, you can sell branded binaries and services. If you own the copyright, you can sell non-GPL licenses to commercial interests. Without these, creating a viable revenue stream is incredibly difficult.

I think this ties into this discussion, as well: http://news.ycombinator.com/item?id=1028638 -- I Love the GPL (Except When it Applies to Me)

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @02:43PM (#1028970)
In contrast, as a company looking to use and contribute to open-source software, BSD licensed code is an easier sell because you aren't locked to purchasing a commercial non-OSS license from the copyright holders (see: Oracle/Sun/Monty regarding MySQL).
Re:Why git is so fast (or why Java is not as fast as C) on Sunday January 03, 2010 @12:53PM (#1028746)
Merging.

Subversion 1.5, released in June of 2008, supports merge tracking.

If you're using the limitations of your VCS to manage team communication then you have bigger problems.

A simple but sufficiently powerful solution leads to simplified communication. If you're using the complexity of your VCS to hinder team communication and support cowboy coding, then you have bigger problems.

Frankly, a lot of the arguments against DVCS smack of the same sort of ignorance that the Java zealots were leveraging against Ruby back when Rails started picking up steam in 2005/2006 ... But I think the past few years have borne out the fact that mediocre and merely-competent programmers can make strong use of these tools without leading to disaster.

Nobody (intelligent) said there'd be disaster because of the "powerful features", just that operating in that manner would be more expensive than the much simpler alternatives.

Expending more effort with more powerful tools isn't actually an improvement, it's just busy-work -- constantly working on your muscle car instead of driving it.

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @12:34PM (#1028716)
My reading was that he was presenting the GPL as an inherently flawed dream unable to survive in the reality of the economic marketplace. In succeeding in market adoption, the proliferation of the GPL actually leads to its own failure due to its knocking the legs out of most of the higher-margin business models required to fund the R&D necessary to produce software.

That might also be my own bias showing.

Re:I Love the GPL (Except When it Applies to Me) on Sunday January 03, 2010 @12:31PM (#1028714)
The GPL was invented to leverage network effects to win in the market place, ensuring an exceptionally high entry barrier to non-GPL market entrants (a natural monopoly) should the GPL be successful in this goal.

It hasn't won in the market place -- and it won't -- primarily due to the fact that the coupling between funding and licensing is so indirect -- it's very difficult to earn a high margin on writing GPL licensed code, and most revenue models require an indirect and complex approach to earning money from the software without charging directly for the software itself.

(Yes, you can charge for GPL software. No, that's not a sustainable business model. No, RedHat is not a counter-example. RedHat charges for support and their trademarks, not the software itself, and in doing so appeals to a very specific niche enterprise market.)

Re:Balsamiq Makes 1.6 Million with 70% Profit in 2009 on Sunday January 03, 2010 @12:28PM (#1028707)
Tarsnap does block-based differentials, in addition to its fancy crypto footwork. You can't set that up with bash, truecrypt, and S3.
Re:Balsamiq Makes 1.6 Million with 70% Profit in 2009 on Sunday January 03, 2010 @11:41AM (#1028661)
You should consider partnering with (or contracting out) to someone already well familiar with OS X and interested in writing a GUI.

Tarsnap has one of the technically best back-end implementations available, but the barrier to entry for an interested customer is incredibly high -- not just on OS X, but on UNIX as well.

Even on UNIX, producing a working backup setup requires writing custom scripts to do so, and implementing anything like snapshot-based backups is complicated enough that even I spent a couple hours getting everything working/tested, and I'm very familiar with this area.

I'll be bold: You solved the backup problem, now the number one hinderance to your growth is solving the user experience problem.

The UNIX utility should have an exceptionally easy way to configure backup schedules. Possibly even an optional web UI.

A Mac release must have a native OS X GUI (no qt!), be easy to use/configure, and be well-integrated into system services.

After the first iteration on the above you should consider implementing support for network-based backup administration, so that we can control backups/restores across all of our desktop/server installations from a centralized administration console.

If the above is not your forte -- if you're only interested in the crypto and backup issues -- then you need to find a parter or contractor who can step in and solve them for you.

Re:Why git is so fast (or why Java is not as fast as C) on Sunday January 03, 2010 @01:14AM (#1028278)
In subversion, yes, you don't go through the hassle of creating a branch for all these reasons.

svn cp ^/trunk ^/branches/tentonova-bugfix-x

svn co ^/branches/tentonova ~/branch

I wouldn't call this a technical "hassle", and I'm not sure what organizational issues would arise here.

The vast majority of branches are never seen by more than one developer, they are simply an organizational tool to be used at your discretion without imposing any overhead on anyone unless you have good reason to.

Hiding your development branches on a shared codebase often incurs either communication overhead, or the costs of lack of communication.

Re:Why git is so fast (or why Java is not as fast as C) on Sunday January 03, 2010 @01:09AM (#1028273)
This still feels like the sort of statement that comes from having not worked with a (D)VCS that does branching well.

I've worked with both git and hg.

There is no "inherent organizational complexity" in me having a private branch that I share with no one and which is only used for an hour or two while I work on a critical bug fix.

What's the value of this private branch beyond simply committing to the actual branch?

If it's just a bug fix, how big can it be?

If it's more than a bug fix, why am I hiding this code from the team by implementing it on a private, local, non-backed up, non-code-reviewed, non-centralized branch?

Typical branch lifetimes are more like hours or days, rather than weeks or months. There are exceptions, but by-and-large, branches are just used differently in git.

Why wouldn't I just commit this work incrementally to the actual upstream branch, rather than hiding it for "hours or days" from the rest of the team?

Re:Maven builds are an infinite cycle of despair on Saturday January 02, 2010 @03:04PM (#1027578)
... if you forget to specify a version number for one of the dependencies, doesn't maven just default to the latest version at build time, thus becoming nondeterministic?

No.

... if you want your build to be deterministic, and of course you do, you still have to specify bar and baz explicitly

If you declare a dependency on non-snapshot foo, then it will also declare a dependency on non-snapshot bar, ergo, reproducible build.

Your comments seem to be the standard "I don't understand Maven, but I hear that it's broken."

Re:Why git is so fast (or why Java is not as fast as C) on Saturday January 02, 2010 @03:01PM (#1027573)
What type of work do you do that you never have urgent bug fixes and/or never have features that take more than a day to complete?

I've always worked to constrain non-linear development to the absolute minimum required because the technical costs are easily dwarfed by the human communication overhead and inherent organizational complexity engendered in multiple disparate branches of development.

Re:Why git is so fast (or why Java is not as fast as C) on Saturday January 02, 2010 @12:54PM (#1027419)
As well as use it as a library API, and integrate it with their other libraries/services/etc.
Re:Myths about code comments on Saturday January 02, 2010 @01:51AM (#1026898)
And since it's Steve Yegge, it must be right?

His "over-commented" example is clearly extreme hyperbole.

His under-commented counter-example is extremely poorly commented code which fails to explain the "why", ensuring that nobody can make sense of the code path without actually stopping to read the entire expression and possibly the expressions to which it refers.

Re:Myths about code comments on Friday January 01, 2010 @08:20PM (#1026540)
However, if someone is over-commenting (which is possible in my opinion), chances are that it's because they believe that what they are doing is correct.

I've yet to work with anyone outside of an undergraduate class that over-commented their code.

It takes effort to over-comment code, and those that do are invariably writing both poor code and poor comments.

A much more prevalent malaise is that of developers with an unduly high opinion of their code's readability grossly under-commenting their code. This increases the long-term maintenance overhead and sometimes leads to forced rewrites by follow-up maintainers (which may be the author himself).

Re:Maven builds are an infinite cycle of despair on Friday January 01, 2010 @05:51PM (#1026396)
The java build world is perverse. Maven and Ant are imperative, highly limited, domain specific languages using XML for syntax.

Maven is declarative, not imperative.

Ant is broken in many respects, but your provided example is not true. Ant only attempts re-encoding of a file if you specify text filters (aka variable/string replacement). It shouldn't be a surprise to anyone that string replacement breaks on binary files.

Re:XML Sucks on Friday January 01, 2010 @05:37PM (#1026375)
Having just spent the past two days reverse engineering an API that used protocol buffers, I can tell you I would have much rather done it against XML.

Why didn't you have the descriptor files? Optimizing for ease of external reverse engineering seems rather counter to the authoring organization's actual goals.

If you want third parties to be able to interoperate, give them the descriptors you use.

As for parsing, I guess I don't get what the big deal is.

Writing lots of code to read and parse data types as text, especially when no schema is available, is time consuming.

Protobuf is necessarily validated. The input types are known-correct, conversion to the domain model is direct and straight-forward, and it's exceptionally easy to generate code or otherwise automatically deserialize to native representations.

Re:Maven builds are an infinite cycle of despair on Friday January 01, 2010 @05:23PM (#1026354)
You don't need to toss out maven, you need to spend the effort learning a system with which you're unfamiliar to actually understand why your build is misconfigured and failing.
Re:Maven builds are an infinite cycle of despair on Friday January 01, 2010 @05:21PM (#1026349)
This. You need to be able to check in your build tools, and use them as they were to precisely repeat any build you've ever done, or you're risking bit rot.

It's not non-deterministic if your dependencies include an explicit version. You should not be using unversioned -SNAPSHOT dependencies for release builds.

And if I want my dependencies to be preinstalled rather than checked in and bundled, I'd rather use yum so the rest of the world can reuse them too. Does Maven even support dependencies upon native (non-JVM) apps and libraries which are available for a given platform?

No. Maven is intended to support easy-to-use bundled code dependencies, not to operate as a complete replacement UNIX packaging system.

Older »