Saturday, July 17. 2010I hardly gnu, you?
This morning I was browsing some twitter, when I came across this tweet:
"Everyone who bitches about the GPL ... I'd like them to remove all the GPL software from their computers, and see how they get on." Now, this is all apart of some brouhaha over Wordpress and it's templates or something. I personally don't care about any of that (I've long moved past Wordpress, as I find them to be bad open source citizens), but it did get me to thinking, as a person who does think the BSD license is a better open source license than the GPL, just how much of an inconveneince would this be? I certainly do rely on a bunch of gnu software that I'd just as soon not live without, like my playstation, or our dvr, and probably our router too. However I don't really have a choice in these things, and to be fair I don't think there is anything perticularly special about linux that makes it better for a dvr than you could do with BSD. But let's consider things where I do have a choice, where most software developers have a choice, which is in the tools we work with and things we work on. This is pretty broard, so let's just consider the classic LAMP stack that most people work on. Apache is of course, available under the Apache license, so it's already in the clear. While I like Linux, I've long replaced it in my life with a mix of OSX, *Solaris, and *BSD, for computers where I get to choose the OS. Yes, our eeepc does run Linux, but I could probably switch that to some BSD system if needed. Likewise MySQL has always had the backseat next to Postgres or Oracle, and even the NoSQL fanboys have plenty of non-gpl options (Couch, Hadoop, Cassandra, Voldemort, etc...) to pick from. And finally, whether your P is Perl, PHP, or Python, all of those languages are available under non-GPL licenses. So, I guess the "LAMP" stack could go on. Surely there must be some things though right? I started to think about other tools I work with regularly, like X and vim, and while I'm sure there are some tools that might be gpl, certainly many are not, and I'd guess between Solaris and BSD, I could make a GPL-free stack that I'd be comfortable working on, with software that is already available. This isn't to say I wouldn't miss anything. I love my recursive grep, find the -P argument for xargs amazing, and find BSD tar just crippling to work with. None of those would be as bad as losing screen, which is a must have for any serious server work. Of course there are alternatives for all of these (not that I know anyone who uses tmux), and I'd bet some of these features could be easily re-implemented in a BSD version if needed. I think where this really get's you is in the software that has been built upon these base tools, perticularly in the area of PHP software development. A lot of people over that last 10 years have produced GPL lciense software, like Drupal, PHP-Nuke, phpBB, phpMyAdmin, and more. I think most people didn't really think about there license choices back then (perhaps not now either); "if it's good enough for Linus". It's too bad, I know I'd much rather license phpPgAdmin under the BSD than GPL, but I think we're pretty much stuck at this point. I have noticed some newer projects (Habari for instance) have chosen non-GPL licenses; I don't know if that is a trend or anything, but it wouldn't hurt if it was. Thursday, June 11. 2009The Asynchronous Services Analogy
Today I had a chance to sit through a sneak preview of Theo Schlossnagle's new talk Scalable Internet Architectures, to be delivered next week at Velocity 2009 (Dev sessions are an underrated side benefit of working at OmniTI). As always Theo packs a lot of good information into his talks; I could probably do blog entries on half a dozen ideas I jotted down; but I wanted to highlight something that he mentioned with regards to scaling websites via asynchronous services.
Continue reading "The Asynchronous Services Analogy" Saturday, May 9. 2009IUCN Wildlife group needs development help
Passing this forward for a good cause, hopefully some of you can help out.
The African Elephant Specialist Group (with the Asian Elephant Specialist Group) is working on the redesign of the AED to become a multi-species database, the first version of which is the African and Asian Elephant Database. With funding from USFWS we are hiring a developer to undertake the project. I've put a copy of the TOR and Functional Specification on my site, but for more information, please contact: Note that the deadline for applications is May 11th, 2009. Saturday, November 8. 2008Beijing Perl Workshop 2008 SummarySaturday morning we got up a little later than we should have, so we skipped the breakfast at the hotel and headed out with subway directions in hand with hopes of grabbing food along the way and also not getting lost. This seemed likely to be more successful than trying to explain to a cabbie where we wanted to go, give a lack of Chinese language or address. Turns out this was a good idea. We grab some food from a street vendor that was cooked bread with a fried egg, some lettuce, and some mystery sauce, all of which was pretty tasty. The subway system proved pretty easy to navigate as well; consider it took me less time to find the conference building than it did to find my hotel in Toronto a couple years ago. (Maybe my subway skills have improved since moving out of Florida, where you can't actually dig underground without hitting sand and water?) Once we arrived at the conference, I signed in and got a nice little Perl China t-shirt. I say little because this has to be the smallest XXL shirt I have ever seen (it would make a Bangladeshi proud). We'll see if I can squeeze in, if not there might be a free shirt available soon... There were two rooms at the conference, with two talks running simultaneously. In the room where my talk was originally scheduled (I had been bumped to the afternoon to accommodate another speaker), there was a presentation on using Sequoia with EnterpriseDB. In Chinese. Hard to follow, but kind of interesting. Of the rest of the talks that followed (most with some reference to Perl and Postgres), I think my favorite was Jesse Vincent's "Everything But the Secret Sauce" talk, which I would seriously recommend any Perl programmer read through those slides and investigate the tools he's laid out. (Not sure where the specific slides are, but there are some versions available via the google). Toward the end of the day was my talk "The Essential postgresql.conf", which is a talk based on some work by Greg Smith and I, which we gave a version of at a BWPUG meeting a few months ago. The basic idea behind the talk is that while there are close to 200 parameters in the postgresql.conf, most people really only need to know about 20 of those to get proper performance. I also add in some up front information about how the postgresql.conf works, and some gotchas about managing your conf file. I think for the most part people were able to follow along, there was some nodding in the crowd as I went through the list which seemed like a good sign. One problem I had was that the microphone we had kept cutting out on me, which through me off a little (it had actually caused trouble all day, giving other static, or feedback, or just dieing), but I think folks were happy. I've put the slides on slideshare, which should be pretty handy for those who need to follow-up. After the conference, we went out for dinner with the other speakers and organizers for a Chinese Hot Pot dinner. The cab ride from the conference center to the restaurant was honestly quite frightening; our cab driver was not constraint by silly things like lanes; several times he used shoulders, on ramps, and sometimes even drove into opposing traffic to zing us on through the city. (I know Robert the 3rd is thinking "you have to earn your boost somehow"). It's good that we can laugh about it now, but in the future I think I will try to avoid cabs with racing grip steering wheels and drivers with formula 1 jackets one (honest!). Anyway, the dinner itself consists of a big table with a large, hot, pot in the middle, with boiling water into which you hold your food to cook it, community style. Interestingly, the place was apparently owned by Muslims (we found a nice plaque on the wall extolling the virtues of Allah), so I think the meat consisted of beef and lamb, but no pork. The food was good, the company was good, and the conversation good as well (guess what, the folks in Beijing can't find good perl programmers either). We also talked a bit about the PostgreSQL community within China, which is growing well, though the language barrier has prevented a lot of interaction with the larger community. There is interest to forming some regional user groups, but right now they seem pretty happy coordinating on a more national level, and also working with the strong ties they have in the Perl community. We should definitely expect to see more conferences and other activities going forward though. All said it was a nice conference and I'm glad to have had the opportunity to come and meet a bunch of enthusiastic postgres folks, and hope to work with them more in the future. As we have focused mostly on open source and tech so far, we hope to spend the next couple of days sight seeing, which I'm sure will be awesome as well. We have had to deal with some dodgey internet at times, but expect photos to go up on line sometime soon. Thanks again to everyone involved for an awesome event. Tuesday, November 20. 2007tracking plperl shared variables
If you use as much Perl and PostgreSQL as we do at OmniTI, you're bound to start building complex software solutions using [http://www.postgresql.org/docs/current/interactive/plperl.html plperl]. One of our latest projects (internally known as abyss) involves long term storage and archiving of email inside of PostgreSQL. That part isn't interesting. The interesting part is how we make use of a bunch of custom perl modules we wrote, inside of plperl, to parse, digest, and dissect the information inside of those emails, transforming the data into something that can be analyzed more thoroughly by normal database tools; essentially giving structure to the semi-structured data inside of email.
One of the parts that makes plperl so handy is it's ability to use shared variables, to pass data from one function to another inside of a backend session. Using this technique, you can really start to do some interesting things, but it does present one problem when your trying to debug, specifically how to see the values that are getting passed around in a session. Luckily the solution is a lot simpler than you would think. CREATE OR REPLACE FUNCTION dump_shared()As you can see, we use the perl "[http://search.cpan.org/~ilyam/Data-Dumper-2.121/Dumper.pm Dumper]" module to dump out all of the shared variables you might be looking at, in a fairly oragnized manner. Woohoo! Incidentally, we're hiring Perl developers to work on things like this, as well as some other big projects using Perl and PostgreSQL, among other stuff, so if you think you have what it takes, check out our [http://www.omniti.com/people/jobs#webdev job posting] and send in that resume! Thursday, September 6. 2007Out parameters in plperl
One evening last week, I got some suspcious IM's from Theo, asking me questions like what is the syntax of an out parameter? (out param datatype), and what return type needs to be used wrt out params (generally setof record). A few minutes later he asked me how one returns the rows from such a function in plperl, to which I sheepishly replied "I think you have to build an array and then return each row that way", which I thought was close but honestly was more of an educated guess.
A guess because I couldn't remember anyone ever using out params in plperl. And that got me thinking that, maybe plperl didn't support out params? A quick google search turned up an article on plperl and postgresql 8.1 by Andrew Dunstan, who noted that IN/OUT params for plperl were still on the TODO list. So I did a quick scan of the 8.2 release notes, and found nothing there about IN/OUT support added to pl/perl. One last check, I popped on to #postgresql, and located David Fetter, a noted plperl advocate, and asked him if PostgreSQL supported OUT params for plperl. His reply? "If it does, it's undocumented". Drat. As I was on my way home anyway, I swung by Theo's office and told him that I wasn't sure if plperl actually supported OUT parameters, to which he replied "Oh no problem, I already have it working". Never doubt what a person can accomplish when they don't know they can't do something. So, for all of that, ISTM a good idea to post a simple example of how it actually works, so that others trying to figure out the syntax might have something to look at. This example is about as dead simple as it gets, we just iterate through some numbers, and spit out two columns for each item. CREATE OR REPLACE FUNCTION setof_plperl(out number integer, out oddoreven text)There you go! Hopefully that basic example will be enough to get you started. On a side note, I spoke with David after this "discovery" and he said that he has investigated things and found a couple ways to do this, and has promised to submit a doc patch for 8.3, so hopefully this will get even easier. Thursday, June 15. 2006OnLamp Article Published
Just a quick heads up that I've had a new article published at OnLamp.com. The article shows how to [http://www.onlamp.com/pub/a/onlamp/2006/06/15/aim-answerbot.html build your own question and answer bot] for AIM using a bit of perl and some postgresql. The best part is the cool little image they made for it [[image /xzilla/templates/default/img/emoticons/smile.png alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /]]
[[image /xzilla/uploads/onlamp_answerbot.gif border="1" alt="Cute Little AnswerBot. Image Copyright 2006 O'Reilly Inc. Used without permission"]]
(Page 1 of 2, totaling 8 entries)
» next page
|
QuicksearchThis is the weblog of Robert Treat (bio | writings). I lead the Database Operations Group at OmniTI, where we work on some of todays largest database challenges. Hire me! Need help with your database? We are available for large scale or short term engagements. Hire you! If you have experience with Postgres, MySQL, or Oracle, we are looking for people to join our team. Upcoming Events
OSCon 2010 July 19th - 23rd At Portland, Oregon Surge 2010 Sept 30th - Oct 1st At Baltimore, Maryland Syndicate This BlogBlog Administration |

You were saying?
Fri, 23.07.2010 15:26
Yeah, I talked with the Veraci ty guys at OSCon, they are def initely on a good track (it al so includes integrated d [...]
Mon, 19.07.2010 06:22
A lot of specialists state tha t loan help a lot of people to live the way they want, becau se they can feel free to [...]
Sun, 18.07.2010 19:15
Veracity (http://www.ericsink. com/entries/veracity_early.htm l) is supposed to be released under Apache 2.0 License [...]