Fun Stuff at OSCON 2005 153
Mike Shaver's talk on writing Firefox extensions was packed to the walls. If you've been wanting to try it, Firefox 1.5 makes development easier, and should be out soon, so now's a good time. This talk and the tutorial on Ajax persuaded me to start using the DOM Inspector and debugging some JavaScript to get a better understanding of webpage manipulation.
Aaron Boodman's talk on his extension Greasemonkey was a walkthrough of writing a simple GM user script, a discussion of what's coming up, and some Q&A. Greasemonkey 0.5 ("Now With Security!") is in beta: there are multiple security changes that suggest someone really has sat down and thought the whole model through. GM works with Firefox, Seamonkey, Opera, and Windows MSIE (but not, oh please somebody correct this oversight, Safari).
Ruby on Rails is hot; if you want to develop a web app quickly you can't ignore it. It stresses "convention over configuration" with reasonable defaults. The tutorial went from installation to the "hello world" of the web, a blog (!), in a few hours. Anyone have a real-world example of Rails scaling to a large project and lots of traffic?
DarwinBuild is an open-source project from Apple that aids in building the open-source components of Darwin/Mac OS X. Given a build number of Mac OS X, it will fetch and build the software for that version, allowing you to modify the source as needed, making it easy for any developer to modify everything from the kernel to various utilities (just remember to reapply the modifications after running Software Update, if necessary). You can read more about it from, in addition to the web site, the presentation slides.
Google and O'Reilly gave out the 2005 open source awards, with $5000 attached to each. Congratulations to the winners.
Tony Baxter's Shtoom is a cross-platform VoIP client and software framework, written in Python, for writing your own phone applications.
Novell is still moving its employees from Windows to Linux, which we first heard at last year's OSCON. The migration from Microsoft Office to OpenOffice is complete, and the big step, from Windows to Linux, is 50% complete, projected to be 80% by November. Miguel de Icaza gave flashy demos of some Linux desktop applications that didn't impress this cynical observer very much.
PlaceSite is an open-source project looking to bring physical proximity awareness to Internet access at coffeeshops and other meetingplaces: think "local-only Friendster" and you're not far off. They got feedback from a monthlong trial earlier this year and are working on a new version that will be easy to deploy. Could be neat.
In a great 2-hour session on Wednesday, we got to hear from representatives of four leading open source databases about what they've been working on lately. Here are the summaries...
Ingres r3 has an impressive list of big features. Ingres was just open-sourced by Computer Associates this summer, and it's gotten a lot of attention for being a full-featured enterprise database. Ingres supports table partitioning that can be either range-based or hash-based, which can greatly improve performance in many cases. Its optimizer can now come up with parallel execution plans, which can be useful even on single-CPU machines and non-partitioned tables. There's also federated data storage (one can access data stored in another RDBMS through Ingres) and replication. And they're working on a concurrent access cluster, to allow data to be manipulated not just by multiple threads on one machine, but multiple machines.
A side note: Computer Associates was invited by O'Reilly to talk about its recently open-sourcing Ingres. Its representative, while confessing that introducing a new license was "probably the wrong thing to do," said that other licenses wouldn't have worked for them (the GPL "was seen as viral"). The one question that the audience had time to ask was "is Ingres a dump" -- is CA making it open-source to transfer the responsibility of support from the company to the community? The three-part "no" answer was that there are more CA developers working on Ingres now, that Ingres is at the core of their new releases, and that they've sponsored a "million-dollar challenge" to foster community interest. Time will tell I guess.
Firebird 2.0 has been in alpha since January and a beta is expected soon. Since 2000 much of their development has been aimed at making the product easy to install, and making the code easy for a distributed group of developers to work on. This year they're building features on that groundwork. Their design includes 2-phase commits (since the beginning), cooperative garbage collection (as a transaction encounters unneeded data, it removes it) and self-balancing indexes. Backup has been improved. When 2.0 gets to beta, I'm going to check this out, it sounds like very interesting technology (and apparently it will install with four clicks!).
MySQL 5.0 is in beta, and has been feature-frozen since April. Back in 4.1, its abstracted table-type has been put to advantage with odd engines like Archive (only insert, no update); Blackhole for fast replication; and an improvement to MyISAM for logging (allowing concurrent selects with inserts-at-table-end). Their Connector/MXJ lets you run a native MySQL server embedded inside a Java application. In 5.0 we're seeing stored procedures per the SQL:2003 standard, triggers, updatable views, XA (distribution transaction), SAP R/3 compatible server side cursors, fast precision math, a federated storage engine, a greedy optimizer for better handling of many-table joins, and an optional "strict mode" to turn some of MySQL's friendly nonstandard warnings into compliant errors. And they're working on partitioning, ODBC, and letting MySQL Cluster's non-indexed columns to be stored on disk.
PostgreSQL 8.1 is expected to be released in November or December, after a feature-freeze in July -- and it's an impressive list of new features. Their optimizer will make use of multiple indexes when appropriate, which is pretty darn exciting. The recommendation will be that in most cases it will be most efficient to have only single-column indexes and let the optimizer figure out which combination to use. They're implementing a 2-phase commit, they're bringing the automatic vacuum into the core code, and they removed a global shared buffer lock so they're now getting "almost linear" SMP performance scaling. I've never felt the need for Postgres, but I'm definitely going to look at 8.1.
What everybody missed: (Score:2)
He looks awfully cheery for having no body and a set of crap headphones, doesn't he?
I know i'll get modded down for this, but ontopic: That Darwinbuild stuff looks pretty handy for say, upgrades in time without having to wait for Apple to stream then in via OS updates like th
RoR large scale? (Score:4, Informative)
While theres no sites i know off with massive traffic that run rails, theres a few large projects. TextDrive [textdrive.com] run StrongSpace [strongspace.com] which is basiclly online storage using SFTP and RoR. Also theres a few from the creators of RoR, BaseCamp [basecamphq.com], BackPack [backpackit.com]...
Re:RoR large scale? (Score:3, Informative)
http://en.wikipedia.org/wiki/43_Things [wikipedia.org]
http://www.43places.com/ [43places.com]
Re:RoR large scale? (Score:2)
There is no downside to using ruby on rails. Closest thing to a silver bullet since the web came out.
Re:RoR large scale? (Score:5, Insightful)
There are several significant downsides to using Ruby on Rails.
Firstly, the way that ActiveRecord works by default - generating classes at run-time based on database tables - is considered by many (well, me at least!) to be a very backward step, as it makes code vunerable to changes in those tables, and also makes portability of code between different databases non-trivial. There are far better ways to do this - the Python ORM Dejavu (in in which the data model is expressed as classes) is an example. Almost all modern development languages work this way - with the exception of RoR!
Secondly, Ruby is slow. There may be future JIT systems that help deal with this, but they are not there yet.
Thirdly, Ruby is changing, and it is likely (from what I read) that the next version will not be fully compatible, so any major project developed now in Rails will have upgrading issues.
So Ruby on Rails is very far from a silver bullet. It may a neat way to get small (in terms of code) websites up quickly.
Re:RoR large scale? (Score:2)
Re:RoR large scale? (Score:2)
I have to fundamentally disagree here. Even Oracle, who have a huge vested interest in relational theory, are putting a huge amount of work into class-> table interpretation with projects like TopLink.
This is a straw-man. Ruby most emphatically is not slow.
It emphatically is! Try benchmar
Re:RoR large scale? (Score:2)
Re:RoR large scale? (Score:2)
I prefer to assume that Oracle know what they are doing. I have been using both object-based and relational approaches for decades. Use of one does not preclude the use of the other. They can work well together.
Class models are inherently tied to a single application or a small class of applications. Database models are far more flexible *and should be*. Any monkey can design a class model that can be used in a single application.
Re:RoR large scale? (Score:2)
If you give me data in a usable form, I can *always* build or rebuild processes and code around that. If you give me code, it will take me far longer to build the data. Your fundamen
Re:RoR large scale? (Score:2)
where did I say that?
The fact that businesses survived for centuries without computers indicates that your fundament is disagreeing with reality.
Not at all. For those centuries business have combined information with business processes to handle it. Both are essential.
It is mostly when data has been lost without any way of reconstructing the processes surrounding the data that companies have run into trouble.
I agree.
If you give me data in a usab
Re:RoR large scale? (Score:5, Insightful)
-1, Troll. Please. There are people running real, large-scale web sites on Ruby-on-Rails. Tobias just named several.
This has no relevance to whether or not Ruby on Rails is a fundamentally good design for long-term support and growth of any given software project. We all know that poor designs have been used in large projects!
The issue of database-dependence is a real and important one, and should not be trivially dismissed as 'trolling'. The idea of working dynamically from database tables is great for getting things up and running fast, but is not great for long term use, as at some future date the database may need to be modified or shared with other applications. The changes that result may break existing Ruby on Rails applications. More mature ORM systems have a mapping layer that can help isolate code from such changes. By abandoning that layer as the default setup, Ruby on Rails loses (in my view) an important feature.
Re:RoR large scale? (Score:2)
That part of your post wasn't FUD, it's opinion/hypothesis. But you followed it with troll FUD:
Secondly, Ruby is slow. There may be future JIT systems that help deal with this, but they are not there yet.
Thirdly, Ruby is changing, and it is likely (from what I read) that the next version will not be fully compatible, so any major project developed now in Rails will have upgrading issues.
Re:RoR large scale? (Score:2)
OK, let's deal with these issues you consider FUD.
"Secondly, Ruby is slow. There may be future JIT systems that help deal with this, but they are not there yet."
This is not FUD, it is simple fact. Ruby is certainly fast enough for very many uses, but it is still an interpreted language. If there were not speed issues, there would be no JIT project. As for the 'not there yet' - there are no such projects that I k
Re:But... (Score:2)
There are things that one can do where Ruby outperforms both Python and Perl.
This isn't saying that Ruby can't be faster, but making it clear that simply saying "Ruby is slow" or "Ruby is slower..." isn't necessarily true.
One also has to compare development costs (high) with deployment costs (variable). If I can develop several times faster with Ruby, the cost difference may be significant.
Re:But... (Score:2)
My experience is that the time spend trying to get the required performance for the 10% of code where this matters can outweigh the time saved in using a concise language.
Re:But... (Score:2)
If you're arguing about 10% of total coding effort, then why are you arguing this point at all?
As yet, I have not needed to drop down to Ruby's C-level API to implement any of my basic logic. I *have* used interfaces to libraries that others have written (mostly interfaces that have been written for the core, e.g., zlib and syck/YAML), but I have yet to need to write a C-level implementation of code, especially because of speed concerns.
For that 10% of code, you may be right. But that 10% of code doesn't
Re:But... (Score:2)
I am not arguing that. I am saying that 10% of the code (or even less) may require a considerable amount of the development time (far more than 10%) if things like performance become an issue.
And, from personal experience, telling a client that 'performance will get better when the language gets faster, and I'm doing this in a really neat new language' is not going to impress
As yet, I have not needed to drop d
Actually... (Score:2)
You can specify that an ActiveRecord is made up of all sorts of different non-default things. It's just rare at this point, because people are mostly using it for "green field," from-scratch, new project development.
Now you can argue that since the mapping layer is in the code (with statements like "set_table_name
Re:Actually... (Score:2)
You can specify that an ActiveRecord is made up of all sorts of different non-default things. It's just rare at this point, because people are mostly using it for "green field," from-scratch, new project development.
A good point; I realise this. My problem is that the default 'out of the box' way that ActiveRecord works encourages things that, in my opinion, are bad practice - such as generation of classes on
Re:RoR large scale? (Score:2)
And some of us think this has it exactly backwards. The biggest problem for most modern applications is that they canNOT react to changes in the database design without explicitly changing code, often in multiple places. Your approach also doesn't take into account the utility of
Re:RoR large scale? (Score:2)
There is absolutely no conflict between an application having an object m
Re:RoR large scale? (Score:2)
Non sequitur; I never said there was. What I said was that having an application layer that reacts to changes in the database doesn't *necessarily* mean that every change to a base table need be reflected in a change in the application layer.
As for ORM, I am not a fan of it, but that is because of the coupling thing I mentioned. I prefer an orthogon
Re:RoR large scale? (Score:2)
True. I regret this comment, and apologise.
Of course, I know that an application's *data* can be maintained in multiple places, but I argue that the core logic should be in one place (federated database systems are a good example). Yes, it is possible for the application layer or even multiple application layers to maintain the logic, and just use the database as a mere repository. Fine, do that, but in the end any truly sophisticated system of that nature
Re:RoR large scale? (Score:2)
First of all, based on what research? There are incredibly large systems based on keeping business logic in the database. Just last week at OSCON I met several people who are running primary systems on PostgreSQL, some inserting several GB a day of new data. That seems pretty high-load to me.
What magic is there that means re-implementing constraints in Java would be somehow faster than the implementation of most serious DBMSs,
Re:RoR large scale? (Score:2)
First of all, based on what research?
Real websites.
There are incredibly large systems based on keeping business logic in the database. Just last week at OSCON I met several people who are running primary systems on PostgreSQL, some inserting several GB a day of new data. That seems pretty high-load to me.
That is not high load! I am talking about sites that have have thousands or tens of thousands of concurrent users, all re
Re:RoR large scale? (Score:2)
set_table_name
That merely maps table names. A mapping layer defines how columns relate to instance variable names within classes, and allow the possibility of some columns being ignored.
This is very important if there are subsequent changes to a table - some user may add additional columns and data to a table;
Re:RoR large scale? (Score:2)
I would prefer this kind of thing to be available easily in the default setup.
I consider column-based mapping to be very useful as a form of protection for my code - it means my application can easily check for someone having done something silly to the schema.
It also means that I could potentially transfer the database between different types (MySQL -> PostgreSQL or Oracle) without
Re:RoR large scale? (Score:2)
Re:RoR large scale? (Score:2)
No it won't. Unless I am seriously misunderstanding things (which is a possibility), ActiveRecord will automatically add those columns to classes which inherit from ActiveRecord::Base when they are constructed.
Re:RoR large scale? (Score:2)
Re:RoR large scale? (Score:2)
Again, correct me if I am wrong, but I don't believe this is competely true. By default ActiveRecord uses a 'SELECT *' when fetching records. This will fetch ALL columns into memory. They may not be actually used by Ruby code, but they are still there. This can result in major memory issues, particularly in commonly used databases which
Re:RoR large scale? (Score:2)
Yes. This approach is often used. For example, there is a Java API for storing objects called JDO. All the major vendors who provide JDO tools (both commercial and open source) allow the generation o
Re:RoR large scale? (Score:2)
Desktop didn't impress cynical observer (Score:4, Interesting)
Re:Desktop didn't impress cynical observer (Score:2)
I'm probably missing something, but how does that follow from Novell's demo of flashy new desktop technology that doesn't impress cynics?
Re:Desktop didn't impress cynical observer (Score:2)
MySQL w/ XA (Score:3, Informative)
Re:MySQL w/ XA (Score:3, Insightful)
They had a nice niche with the small developer, where they worked out cheaper (maybe 1 or 2 clients in-house) plus they had the hobbyist/GPL market of course but going for the bigger market is going to backfire on them unless they change their pricing stru
Re:MySQL w/ XA (Score:4, Informative)
Thanks!
Re:MySQL w/ XA (Score:4, Insightful)
XA support has been committed into the upcomming PostgreSQL release and is already supported by Firebird. Considering their licensing, both are better choices.
Re:MySQL w/ XA (Score:2)
Re:MySQL w/ XA (Score:3, Informative)
We provide XA both via SQL and the JDBC driver currently.
Ruby On Rails (Score:3, Informative)
Been playing around with it for a while now, there's a fair few sites using it
Plus the (small) site I'm working on for a friend Slap My Belly [slapmybelly.com]
my brother attended and blogged it (Score:4, Informative)
Ruby on Rails (Score:2, Interesting)
Re:Ruby on Rails (Score:1)
Re:Ruby on Rails (Score:1)
Re:Ruby on Rails (Score:3, Insightful)
Re:Ruby on Rails (Score:3, Informative)
It takes a little work to get from some of the simplistic tutorials on the web to larger-scale apps, especially if you are working with an existing database schema as I was. However, I've found that RoR really offers huge productivity gains.
Compared to the J2EE project I was working on, where I was evaluating persistence frameworks, J2EE vs. Spring IoC for the business logic, presentation/templ
Re:Ruby on Rails (Score:2)
But even if you don't care about Ruby, Rails is amazing because... well, instead of bogging you down with boring hype, I'll point to the videos on the official page [rubyonrails.org] (they're much cooler hype). Seriously, watch them.
Oh! (Score:1, Offtopic)
I was there... (Score:5, Informative)
...and blogged the conference, some of the more interesting bits below,
Amazing conference, if you weren't there, you should have been...
Al.No State of the Onion? (Score:2)
Re:No State of the Onion? (Score:2)
Did Larry Wall give a State of the Onion this year? I can't find any reference to it.
Yes, Larry gave a State of the Onion [babilim.co.uk] talk during the Tuesday Night Extravaganza.
Al.CA doesn't get it re: GPL and "viral" (Score:3, Interesting)
What a disappointing response by the CA representative. Can CA really be that clueless, since a simple Google search on "GPL viral" will find plenty of information (including past articles on /.) that show the GPL is NOT viral? Or is CA just pushing that FUD for some other reason? I don't know, but it's disappointing to see them resort to that tired excuse for their actions.
If you use a GPL'ed database tool, the GPL does not come into play with regard to your software, any more than using the GIMP to create a picture doesn't GPL your software in the process. The GPL comes into play if you were to grab some GPL code and put it into your software product, and then you release the result as your own product under a different licensing scheme. You are then given a choice: Release it under the GPL or not release that code. There is always a third option: Don't take someone else's code without honoring its license terms in the first place. Write it yourself, if you want to release under a different license.
But none of this applies to using a DB program. The GPL isn't viral in the first place, and it certainly doesn't apply to the end-user use of a software package.
Re:CA doesn't get it re: GPL and "viral" (Score:1)
I'm seriously not trolling here: how is that not viral? If you release the code you are forced to use the GPL
Re:CA doesn't get it re: GPL and "viral" (Score:3, Informative)
Viral means you get infected whether you take action or not. Someone coughs and next thing you know you get sick. But the only way you get to the stage where you face the choice I describe is if you take deliberate steps to appropriate some GPL code into your own product, combined with the next deliberate step to release the new product, combined with the next deliberat
New definition of viral? (Score:2)
Where does this definition come from?
This isn't part of the biological definition of viruses, or else viruses that are hard enough to transmit that they require fluid exchange (such as STDs) wouldn't be considered "viral".
This isn't part of the computer definition of viruses, or else only things like email worms would be considered "viral". In fact, computer malware that transmits whether you take action or not are generally referred to as "worms".
Re:New definition of viral? (Score:2)
This is absolutely not possible with GPL code. The only way the so-called "viral" behavior can occur with GPL code is if you take several deliberate steps that are expressly forbidden in the GPL. Guess what? You get a fishing license and you violate the terms of the license, that license gets taken
Re:New definition of viral? (Score:2)
Viruses in general are quite fragile, and most need a liquid medium to propogate. Even highly contagious viruses usually require physical contact of contaminated liquids with an open wound or mucous membranes, which is why face masks are used... they prevent droplets of infected fluids from coming into con
Re:New definition of viral? (Score:2)
My point was, and is, that you do not have to take any deliberate steps to become infected. Just standing near someone else who is coughing can conceivably be enough. It's the person-to-person contact that doesn't translate
Re:New definition of viral? (Score:2)
I agree with you on AIDS and discrimination. That happens to be one of the harder viruses to transmit, so for you to read what I originally wrote (mistakenly) would indeed be offensive, for much prejudice has developed from those misconceptions. I hear you loud and clear.
That isn't what I meant, and isn't what I believe. As I already corrected to you. W
Re:New definition of viral? (Score:2)
And I have already pointed out that your followup didn't significantly change what you wrote. Some viruses can be easily spread through droplet infection, which is what you described, but most (including AIDS) aren't among them.
I don't know what you believe. I only know what you wrote.
If people are arguing that the GPL is not a virus because it's "too hard to contract" (whic
Re:New definition of viral? (Score:2)
I did not, and do no, intend to minimize the very real sociological issues involve biologica
Re:New definition of viral? (Score:2)
Re:New definition of viral? (Score:2)
If you want to use GPL code in your own product, you follow the license terms. If you don't want to fol
Re:New definition of viral? (Score:2)
Great, wonderful. So instead of keeping it in teh real m of viruses by talking about viruses and how the GPL isn't like them, you'll take some other tack?
PS: you know, I don't think I've said one word through this entire exchange about whether people should know about the GPL or whether people are doing something illegal or whether the GPL is good or bad. You don't have to bring that up in every message, it's not relevant to
Re:New definition of viral? (Score:2)
Well, I think we can safely say that you are not a virologist, nor do you play one on TV. For something to be considered viral, it should display the properties of a virus -- among which we would not include the ability to invade a passive host (using your connotation of passive). While this is true for
Re:New definition of viral? (Score:2)
Re:New definition of viral? (Score:2)
For example, opening an macro-virus-infected Word file will spread a virus. You're takin
NOT TRUE AT ALL. (Score:2)
2. There IS a provision in the text of the GPL that says you can aggregate a GPL'd library with other, proprietary code.
3. There is NOT ONE caselaw -- neither in the US nor elsewhere -- that ruled otherwise, AFAIK.
Feel free to contradict me.
The whole whining "cannot write proprietary programs for KDE" is FUD.
HTH
Re:NOT TRUE AT ALL. (Score:2)
You're right that there is no case law. Last I checked, there was no case law relating to the GPL whatsoever. Everything seems to get settled out of court. However, there is plenty of case law about whether one piece of code using parts of another as occurs in
There is a lot of GPL case law (Score:2)
"there is plenty of case law about whether one piece of code using parts of another as occurs in a library situation constitutes a derivative work". You have cited none. In a library situation, dynamic-linking, code does NOT include parts of other code; they interact as separate, independent, entities (just as I can, in my book, say "oh, god, this is just like the third chapter from Harry Potter and the half-blooded-prince" and I would not be infringing on J.K.Rowlings -- ev
Re:There is a lot of GPL case law (Score:2)
Re:CA doesn't get it re: GPL and "viral" (Score:2)
Mo
Re:CA doesn't get it re: GPL and "viral" (Score:2)
Re:CA doesn't get it re: GPL and "viral" (Score:2)
MySql makes no such exception.. in fact it extends the GPL:
"If you develop and distribute a commercial application and as part of utilizing your application, the end-user must download a copy of MySQL; for each derivative work, you (or, in some cases, your end-user) need a commercial license for the MySQL server and/or MySQL client libraries."
ie. If I even provide MySql
Re:CA doesn't get it re: GPL and "viral" (Score:2)
Re:CA doesn't get it re: GPL and "viral" (Score:2)
Re:CA doesn't get it re: GPL and "viral" (Score:2)
Since that won't fly legally (since it's not you doing the linking, and a 3rd party can't force you to change your license) it means that no GPL app can link to your application.
Re:CA doesn't get it re: GPL and "viral" (Score:3, Insightful)
Um, correct me if I'm wrong, but isn't this exactly what CA has done?
Re:CA doesn't get it re: GPL and "viral" (Score:2)
Re:CA doesn't get it re: GPL and "viral" (Score:2)
Translation: I read an argument here (and perhaps somewhere else) that said that the GPL wasn't viral, and I agree with it. Therefore, this tired old myth has been debunked and everyone who claims otherwise is wrong.
Refutation: You (presumably) understand the GPL, and don't think it's viral. Other people, who also understand it, do. Since 'viral' as i
Re:CA doesn't get it re: GPL and "viral" (Score:3, Interesting)
No, I think the CA stand in the exhibit hall made it very clear that CA just "doesn't get it", they were treating OSCON like a normal industry trade show rather than trying to sell themselves technically, which is pretty much the only way to do it at OSCON.
Of course, if their exhibit hall stand didn't show it, their awful keynote [babilim.co.uk] talk surely did...
Al.Re:CA doesn't get it re: GPL and "viral" (Score:1)
See my reply to docflan in this thread.
DHH (Score:2)
The programmer of Ruby on Rails also got the 2005 "Best Hacker" award by O'Railly and Google [loudthinking.com].
This years OSCON was all about ruby.. amazing stuff.
Greasemonkey Presentation at OSCON (Score:1)
I question Novell's 100% switch away from Office (Score:3, Interesting)
Further, he indicated that they were not going to be forced to switch. I wonder if that 100% change that Miguel indicated was for the technical and support staff only.
Anyhow, I decided to download and try out NLD when I got back from the conference. It failed to recognize my monitor (19" Dell flat panel with DVI interface) and sound didn't work even though it recognized the card. On recommendation from a friend, I tried Ubuntu the other night and it worked with everything (except the printer needs some driver change to work which I haven't done yet).
O/T Sig Fun (Score:2)
Is THAT why IBM puts a little red nipple in the middle of their keyboards?
-fred
Ingres (Score:4, Informative)
Drupal (Score:2, Informative)
One of the highlights for me was the talk by Dries Buytaert, founder of Drupal, on Thursday.
Drupal is way ahead of Ruby on Rails in terms of flexibility, scalability and implementation, IMO. They work in different spaces (Ruby hosting is scarce, though there are a few) but the clean architecture and extensibility of Drupal while remaining fast and small is exciting.
The Drupal BOF was well-attended (they even had a full buffet!). Both http://www.bryght.com/ [bryght.com] and http://civicspacelabs.org/home/ [civicspacelabs.org] were repres
What's all the hype? (Score:2, Interesting)
Although I applaud Ruby at finally getting an MVC-based framework together, I don't see what all the hype is lately. MVC-based frameworks have been around for a long time, and MVC-based frameworks in other OSS languages have been around since RoR came to be as well.
Java has Struts and others, Perl has an excellent Framework called Catalyst based on another MVC framework by Simon Cozens called Maypole - see Jesse Sheidlower's article [perl.com] on O'Reilly for building an AJAX-based framework in 30-lines of code or
Re:What's all the hype? (Score:2)
Re:What's all the hype? (Score:2)
And you have been able to do this for years with other languages.
Also I just don't see the beauty in Ruby. For example, having prefixes to variable names to indicate scope ($ for globals, @ for instance vars) is (in my view) ugly and can prevent code re-use in different contexts. Other dynamic languages manage fine without this kind of thing.
Videos? (Score:2)
OSCON Aggregator (Score:3, Informative)
PostgreSQL is not slowing down. (Score:4, Interesting)
The things in the works for 8.1 and 8.2 are looking very interesting indeed. Besides 2-phase commit and bitmap indexes:
- Full multi-master replication with Slony 2 (Slony 1 is single-master)
- IN/OUT paramater declaration for more flexibility in functions (making PL/PgSQL even more like PL/SQL)
- Much more useable and flexible custom datatype creation. "Complex" dataypes may not seem too useful for standard business databases, but they have all sorts of applications in areas like mapping, engineering, scientific analysis, etc... (Not to mention which, you might even want to think in terms of mapping custom datatypes to classes in your applications.)
- Horizontal partitioning: this is a concept used in very large tables, where you might want different groups of rows from one table stored in different locations, such as different physical disks, SANs, etc... This sort of thing is actually already being done informally by leveraging PostgreSQL's table inheritance features and tablespaces, but in the future (8.2 or 8.3?) it should become a standard feature.
Speaking of which, how many people caught Josh Berkus and Joe Conway's talk on "Terabytes of Business Intelligence"? Very interesting insights on how to handle very large databases in PostgreSQL. For example, Joe Conway's project gathers statistics from industrial equipment around the world, receiving several GB a day of data on the central server, an 8-CPU XEON, storing the data on a SAN array via NFS mount configured for jumbo frames. To handle the super-large main table, he created a partitioning schema where there are 12 sub-tables, each holding the data for one month of the year, and then creating a main table via inheritance [postgresql.org] from these tables to present a unified relation of all this data. In some ways this may sound like a view from a UNION query, but the implementation has much better performance and maintenance implications.
All this means PostgreSQL is steadily gaining ground on the Big 3 database vendors, and in some ways surpassing them, as far as the quality of the implementation. Many of the distinctions now are in external areas, such as application servers and federated systems. (You can do either of these things in PostgreSQL, but there is no official standardized method)
We all know that the main DB vendors don't allow anyone to publish benchmarks without permission, so of course there are no easily accessible benchmarks between PostgreSQL and Oracle, for instance. But, in informal talks at OSCON, I found at least a couple companies who had done their own internal benchmarks and PostgreSQL came out ahead surprisingly often.
Oh great, Micro$oft with a dollar sign (Score:1, Funny)
Re:Ruby on Rails is good for prototyping, but... (Score:2)
Ruby does prize programmer productivity, but nothing says that it doesn't prize a sturdy interface or prize execution speed. I challenge you to actually prove your FUD as fact.