Canonical Begins To Open-Source Launchpad 65
kripkenstein writes "Canonical, the corporation behind Ubuntu, has begun to open-source Launchpad. Canonical has been criticized for not doing so earlier. The first component of Launchpad to be open-sourced is Storm, described as an 'object-relational mapper for Python.' A tutorial with many examples is available. The license for Storm is the LGPL 2.1. Inspection of the source files shows they contain the common phrase, 'either version 2.1 of the License, or (at your option) any later version,' meaning that Storm is LGPLv3-compatible."
It's Always a Choice (Score:5, Insightful)
Now, you might be wondering why anyone would open source anything at all. And my simple answer to that is this: Prior to today, if someone said 'Launchpad' to me, it would be the Ducktales character. As soon as this application is open source, it's going to become something I installed on my box and played around with for a while. And that's the difference, if it's proprietary, you better be prepared to sell it or it's going to die a death of obscurity without anyone even hearing about it.
People have the choice not to open source software and oftentimes, it's for very good reasons. I don't think this case is any different as the Wikipedia article states:
Canonical isn't stupid and, yes, they're making money. According to Wikipedia [wikipedia.org], their 50 person company has an annual revenue of $10 million. Which isn't too shabby. I think these guys are genuinely interested in being both an active member of the open source (Ubunutu) and commercial (Project Landscape) worlds. Isn't it obvious who their thinking of when they put:
Re:It's Always a Choice (Score:5, Insightful)
Part of the reason Canonical was in no hurry to ready Launchpad for open source was that it wasn't really meant to be hosted on a variety of different servers or instanced for each project, like Trac; it's a centralized system designed to host many projects concurrently, like SourceForge. In short, there was only supposed to be one Launchpad.
The fact that people wanted Launchpad open source to host their own projects meant that Canonical first had to design standards for communication between different instances of the software. This should allow you to, say, host your own project on your own Launchpad, but still have bug reports communicated automatically with Ubuntu.
Re: (Score:2)
Re: (Score:3, Informative)
Or, maybe the component contains code that's only available under a license that's not GPL 3.0 compatible.
Re: (Score:2)
Re: (Score:1)
Re: (Score:3, Informative)
their 50 person company has an annual revenue of $10 million.
revenue isn't profit. Sure they are generating quite a bit of revenue for the relatively small staff, but there's no indication of what their operational cost is. Considering they do stuff like mailing out free CDs to anyone that requests it and likely many other nice gestures for the community, their operational cost is probably also high.
Having said that, I do sincerely hope they are and can remain in the black.
Re: (Score:1)
So? (Score:3)
Eventually yes but making it open source will not make insure that will not happen.
There are probably billions of lines of proprietary software out there. A lot of it was written to do one specific job. Not everybody is going to take the time to release code as FOSS because it takes a lot of work to release code as FOSS and to manage the project.
Re: (Score:1)
missed you trill
ORM == good (Score:3)
Re: (Score:1)
Seriously. ORM is sooooooo niiiiiiiice.
Re:ORM == good (Score:5, Insightful)
I love ORM for smaller applications, but there's always a point where heading down the hall to say "hi" to the local DBA is a good idea. And beware, redesigning the DB from the ORM to your own schema can be extremely painful. How close the ORM schema is to "pleasant" depends highly upon the package you use.
This is from someone who is trying to perform queries on someone else's database designed with Hibernate. One that has 12 million rows (average row size, 9KB). Which has been running my simple query for 40 minutes.
Re: (Score:2)
Re:ORM == good (Score:4, Informative)
> This is from someone who is trying to perform queries on someone else's database designed with Hibernate. One that has 12 million rows (average row size, 9KB). Which has been running my simple query for 40 minutes.
Don't get me wrong, bad database design is bad database design whether it is ORM or any other technology. Something tells me that based on the average row size of 9KB, I'm thinking this table does not really follow good relational design principles (1st normal form, I'm guessing). I've had a project where the data grew quite quickly, quicker than we had anticipated and the database needed optimized. Fortunately, since we were using Spring backed with Hibernate, we had interfaces defined for all of our persistent objects. Our solution was to use iBATIS to get some more granularity with our database queries, build some stored procedures (so that the query plan would be compiled) and add an index or two. The iBATIS classes were retro-fitted to implement the interfaces for the hibernate objects and then all we had to do was tell Spring to use the iBATIS objects rather than the Hibernate objects. Surprisingly, all of the unit tests passed and post-install, we increased our performance quite drastically. The whole project went as smooth as you could hope and I was pleasantly surprised because I really didn't think it would work out. I've been a fan-boy ever since. I still start with hibernate because it does help cut-down the design time, and I believe that "premature optimization is the root of all evil" (Knuth) -Wes
Re:ORM == good (Score:5, Informative)
Decent ORMs do nothing but map object operations into SQL statements. SQL from an ORM tool is not going to magically work more faster or slower than a hand-written one.
Again, decent DB schemas (i.e. fairly normalized ones) map nicely into object models (hell, ER-diagrams used to model relational tables map directly into object diagrams). It's the databases with weird tables without PKs and strange stored procs which do not map well.
I've worked with Hibernate application handling OLAP operations on 10 terabytes of data without any problems.
Re: (Score:3, Insightful)
Everybody's so quick to throw that 'stupid' word around.
I have on more than one occasion run into code that looks like this (pseudo-code):
This works a hell of a lot slower than a SELECT, and this is just a stupid example. You're much more likely to run into it when people are building big honking summaries: they run a ton fa
Re: (Score:1)
That aside, ORM alone won't make anyone a great programmer. It's a tool that does a lot of boring stuff so the man that operates the keyboard doesn't have to; it won't cure cancer and bring world peace just because you
Re: (Score:2)
Re: (Score:2)
This code you posted, though, would be bad regardless of using an ORM or not. I've seen the same thing using regular SQL to grab all the rows and then filtering them out in a c
Re: (Score:2)
But in my experience, 90% of queries are simple "SELECT blah.blah,... FROM blah WHERE blah.blah=?" and ORMs allow to forget about this simple CRUD.
Re: (Score:2)
RecordSet r=db.query("SELECT * FROM product");
while(r.hasMoreRows())
{
Row row=r.nextRow();
if (row.get(0)<2.99)
myResults.push(row[0],row[1],row[2]);
}
I've seen enough of such WTFs, usually in PHP programs.
Re: (Score:2)
As I understand it, a procedure in an application making a series of SQL calls to a database to achieve some result may in certain circumstances be much slower than a a single SQL call to the database which executes a stored procedure which does all the work.
But I don't think the size of the database (or table, which seems to be the real issu
Re: (Score:2)
Re:ORM == good (Score:4, Informative)
Incorrect Usage: Human writes an object spec. ORM auto-generates SQL schema. Human blindly uses machine-generated ORM bindings without understanding underlying SQL. Database gets mildly large, then human complains "the stupid thing is slow".
If ORM is done for convenience, great! That's what I use it for.
If ORM is used in lieu of understanding how SQL works, you could be headed for trouble.
Re: (Score:2)
Re: (Score:3, Interesting)
In Python, it already is. I'll be amazed if Storm is even nearly as good as SQLAlchemy. My guess is it's closer to SQLObject, and even SQLObject has had many years to shake out any issues it has. Unless Storm is radically different, it's just another Not Invented Here framework of dubious utility.
ORMs are all right, but I wish I could express relations more succinctly in the lan
Re: (Score:3, Interesting)
Re: (Score:3, Informative)
Re: (Score:1)
http://divmod.org/trac/wiki/DivmodAxiom [divmod.org]
Storm? (Score:4, Informative)
Oh, wow! (Score:5, Funny)
Re: (Score:2)
Re: (Score:3)
Re: (Score:1)
One Launchpad to rule them all.. (Score:5, Informative)
Re: (Score:2)
Re:One Launchpad to rule them all.. (Score:5, Informative)
Re: (Score:2, Informative)
Re: (Score:2)
I've read all that before and it sounds just like Sourceforge. So again, it sounds like they are worried about redundant versions of their redundant project management system.
Not that I have a problem with them creating another management system with better/different features, I'm just perplexed by their explanation for keeping it closed.
Re:One Launchpad to rule them all.. (Score:4, Informative)
Re: (Score:1)
Check this out: https://bugs.launchpad.net/ubuntu/+source/gramps/
It will stay open forever, until upstream of gtkspell decides to fix it.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Cudoes to Canonical, better late than never. (Score:1)
We shall remember rosetta bug #44 (Score:2, Informative)
Rosetta Bug #44,
"Translations should be searchable"
first reported on 2005-01-10
Today it completes exactly 2,5 years of waiting and nothing!
https://bugs.launchpad.net/rosetta/+bug/44 [launchpad.net]
begins? (Score:1)
Re: (Score:3, Informative)
http://www.markshuttleworth.com/archives/103 [markshuttleworth.com]
Lead by example (Score:4, Insightful)
Thank you, Canonical, for doing what you do.
Sincerely,
A proud GNU/Linux user.
Re: (Score:2)
Re: (Score:1)
While you could argue about what the best place is to define the structure of the data, I think it is always desirable to have the structure defined
I'm a fan of launchpad (Score:2, Insightful)
Re: (Score:2, Interesting)