SQL Developer 1.1

The latest release of SQL Developer slipped out yesterday. I've been trying the pre-release version and its starting to become a really useful tool. My copy of 1.1 final is downloading as I type. Update: When I got to work this morning I tried automatically updating the copy of 1.0 on my work machine. It doesn't appear to work. It looks like you have to download a copy of 1.1 and install it yourself.

Dont Use Default Roles in Oracle Databases

The admonition (since the Oracle 6 days if my memory serves) for good DBAs is to never use the default roles when granting privileges to users in Oracle databases. Always grant users the specific privileges they require and never rely on 'CONNECT' or 'RESOURCE', because they generally grant more rights than you really want. Oracle seems to have addressed this in 10g2, at least according to this this blog post and my observation. Now, granting the 'CONNECT' role is exactly the same as explicitly granting the 'CREATE SESSION' privilege and the 'RESOURCE' role has a more reasonable list of privileges. I'd still be wary of them though, because through sheer laziness I granted these roles to a user in my development database and then got an ORA-01031 error when I tried to create a view. That's right, the 'RESOURCE' role doesn't (and as far as I can tell never did) contain the privilege to create a view. How strange. So this advice would appear to still be valid - only grant those privileges that your users need and do it explicitly.

Sydney Python at OSDC 2006

CRW_6324.jpg As my inaugural photo post I could have picked something sensible and sober. But I eschewed that in favour of the two convenors of the Sydney Python group at Caulfield station last night.

You'll be shocked to hear that just prior to this we had been indulging in what was referred to as a beer BOF

OSDC 2006

OSDC 2006 in Melbourne is now into its second day. I'm not writing much because I'm still tinkering with my presentation. I am taking photos though, and you can see them here. You can also see other peoples pictures from the conference on flickr using the osdc and osdcmelb2006 tags.

In Praise

In Praise of Other Peoples Work

Looking back over recent postings there has been a fair bit of snark on these pages. Today I'm countering with a barrage of approbation.

In no particular order, here are the things making my life better at the moment;

Screen

I know I'm late to the party here, but thanks to a mention at O'Reilly and a tutorial at Kuro5hin I'm learning to love GNU Screen more and more each day. It truly is the swiss army knife of command line utilities. Allowing me to have a shell, iPython and a couple of database sessions running at the same time is really useful as I'm always switching between them. Not only that but everything is keyboard driven and I found myself more and more avoiding the mouse where it is possible. Not that I don't like my mouse, in fact I praised it only last month but I find that not having to move my hands too much is a great productivity boost.

I don't spend a large amount of time logging into servers and mucking about at the command line but when I do screen is a real help. With the ability to detach and re-attach sessions at will I can just pick up where I left off and don't have to stop and think what I was doing last time I logged on.

The other advantage I get from using screen is having several sessions running in the same window, allowing me to save precious screen real estate. Being a consultant I don't get a 20 inch monitor and I usually have to work on a laptop, saving screen space is therefore a very useful feature of any application I use.

Its even better when you combine it with;

Visor

Another insanely good piece of software from the genius behind Quicksilver, Visor is a simple extension to the standard terminal software supplied with Mac OS X. From the home page;

Visor provides a system wide terminal window accessible via a hotkey, much like the consoles found in games such as Quake.

So instead of having to switch between applications to find a terminal window and then typing commands I can just hit Ctrl-F1 and be right there.

S5

I'm presenting at OSDC this week. Thanks to s5 I don't need to worry about having a particular operating system or software version to show my slides. All I need is a computer and a web browser. Simple, direct and to the point, s5 is a great piece of software.

Of course, the other half of my presentation is going to use Bruce so I'm stuck with a particular software dependency, but lets not let circumstances take away from just how good s5 is.

Adobe Lightroom

In preparation for OSDC I've had some business cards printed up. In my defence I'm not there on behalf of my employer so I'm not taking any of their business cards and I wanted to be able to hand over something with my email address when I talk to other attendees.

Anyway, these business cards have a tagline saying "Python, Databases and Photography" so I had better start practicing what I preach and include some photographic mentions on this blog.

Everyone who has a passing interest in photography eventually starts talking about workflow. The process of getting pictures from your camera to a printed form or displayed on the web. I'm no different and have been tinkering with mine ever since I first bought a digital camera in 2002.

With the arrival of Adobe Lightroom I think I've got it cracked.

In combination with Dim to get the photos off my camera and the Gimp for fine editing Lightroom does everything else, and does it very, very well. Its an organiser, raw converter and image adjuster par excellence. Its one of those rare software applications that just works. My experience has been that whenever I've wanted to do something with Lightroom I've gone to what I think is the appropriate menu or control and the solution is there. An immense amount of thought has gone into this application, and it shows. It's only a beta release at the moment but as soon as it goes production I shall be rushing to the shops to buy a copy. Not something I'd ever think to say about other commercial software, especially anything originating from Redwood Shores.

And thats it for now, hopefully I'll be posting from Melbourne later this week and should be full of positive vibes. I expect OSDC this year like last will be full of smart people sharing great ideas, prompting me to make promises to myself to look into things that I won't have time to keep.

Who Do I Sue?

Via John Naughton comes an interesting analysis of the new Microsoft Vista EULA. Whenever I suggest using Free or Open Source software in a professional capacity my colleagues or managers usually claim that its not possible because it isn't backed by a 'reputable' company. What they mean by this is that there isn't anyone to sue if the software somehow misbehaves and causes some form of loss. As Mark Rasch so eloquently argues in his article if you've agreed to this kind of agreement you have no rights anyway. At any point your 'rights' to use software licensed in this fashion can be taken from you, no questions asked. And just try suing for any sort of loss caused by software licensed in this fashion. If there isn't a better reason to use Free/Open Source Software I don't know of it - but please feel free to educate me via the comments. The next time my boss tells me that we can't use Python or PostgreSQL because there isn't anyone to sue I'll print out a copy of the article and give it to him. Why paper? Because he doesn't read anything on a computer screen.

November Sydney Python Pub Night

The notice is a bit short, but if anyone reading this is in the harbour city and fancies a cold beverage or two this evening we are getting together from 6:30pm at the Grace Hotel. Details are in the meeting post at upcoming.

Oracle Warehouse Builder Not Much Cop

This won't come as a surprise to people who have used the tool but I'm getting to the end of my tether with Oracle Warehouse Builder. Architecturally it stinks. We've got a number of mappings which we use to populate a reporting mart in our Oracle Applications system. We are upgrading our Oracle Applications sytem. Part of this is a database upgrade to the latest shiny Oracle database. Because we've done that we have to upgrade from Oracle Warehouse Builder 9.2 to 10.1. I've upgraded the repository successfully, but every time we create a new applications environment we have to install the full version of OWB onto the server and run one script against the target database to upgrade the runtime repository. In this age of network ubiquity Oracle are forcing me to install a full server product. My DBA is not going to be a happy bunny. It wouldn't be so much of a problem if this was an isolated issue, but every time we clone our environment or want to make even a simple change to a mapping OWB just gets in the way. My back of a fag packet estimate is that I would have saved about fifty person days if we had just developed our extracts in plain old fashioned PL/SQL. Update: I stand corrected. There is, as referenced on the first page of the installation and upgrade manual, a script to upgrade a runtime repository in place. You'll be unsurprised to hear that we can't get it to work. Or that Oracle's support site (MetaLink) has nothing on the error messages we are seeing.

Unit Testing PL/SQL

I've been getting rather test infected recently and it feels good. I've been using py.test to write unit tests for gerald which had been rather neglected of late. Actually putting the tests together helped me figure out what I need to work on next, more news on that in the near future (I hope). Emboldened by this spark of activity I am trying to introduce my colleagues to the delights of unit testing. Because they are predominantly PL/SQL developers I need a native unit testing toolkit to get them started. Exhaustive searching brings me to utPLSQL. Which looks good, but for the life of me I can't get it to install into my 10gR2 database. Has anyone got any pointers to help me out?