Take a look at this excellent single page web site – Python strftime reference. It does exactly what it says on the tin. Good work.
20th August, 2010
27th June, 2010
What’s new in this release? The most important changes are fixes to a number of issues identified by users of SQLPython. Gerald was appearing to take a long time to collect large schemas but was actually failing silently. I added test cases to show the problem and then fixed the code. This shouldn’t happen any more.
I applied a couple of patches supplied by Catherine Devlin to cope with columns without defined lengths and to not get DBA objects in Oracle schemas.
I slipped in some new features as well; I implemented the
compare methods on the
CodeObject class, and Gerald now supports views in MySQL (as long as you are running 5.1 or above).
Finally, I changed the project documentation to use Sphinx.
If you find any problems or want to contribute any code just send me an email.
1st June, 2010
I wanted to quickly and easily convert a series of reStructured text documents into HTML equivalents. For reasons too dull to discuss here I couldn’t just use rst2html.py and didn’t want to go to the trouble of remembering enough bash syntax to write a shell script.
So I thought that as long as docutils is written in Python it would only take a moment or two to knock up a script to do what I needed. Well yes, and no. The script itself is fairly simple;
from docutils import core def convert_files(name_pattern): for file_name in glob.glob(name_pattern): source = open(file_name, 'r') file_dest = file_name[:-4] + '.html' destination = open(file_dest, 'w') core.publish_file(source=source, destination=destination, writer_name='html') source.close() destination.close()
The most useful line being the one where I call core.publish_file. But it wasn’t immediately obvious from the docutils documentation what series of incantations would achieve my desired results. Luckily, after some time spent perusing the documents I came across this dissection of rst2html.py. This, in turn, lead me to the description of the Docutils Publisher, which lists the convenience functions available to work with the engine.
The end result isn’t particularly elegant but it does get the job done and I thought I would share it in case anyone else has a similar need in the future.
14th February, 2010
This release was at the request of the sqlpython project and contains only one change. A new convenience method connect has been added to the Schema class. This enables a schema to be initiated and then later have a database connection associated with it. Because this changes the public API of gerald I’ve released this under a new version number.
The next release will be 0.4. Exactly what will make up that release is still evolving, although it is likely to feature SQL Server support as I have just started a new job and all of the systems there use it. To see what else is in the release and to track progress take a look at the version 0.4 roadmap.
1st February, 2010
Dear lazyweb, I unsubscribed from the distutils-sig mailing list a while back and consequently I’m not up to date with the latest to-ings and fro-ings. But, I have a problem. As reported by someone today Gerald eggs won’t install on Windows.
Everything is fine on my Ubuntu virtual machine, but on my shiny new work laptop I have Python 2.6 and today I downloaded and installed setuptools version 06.c11. When I try and install Gerald I get an error complaining about a lack of a setup.py file;
(TEST) C:WorkvirtualenvsTEST>easy_install gerald Searching for gerald Reading http://pypi.python.org/simple/gerald/ Reading http://halfcooked.com/code/gerald/ Reading http://sourceforge.net/project/showfiles.php?group_id=53184&package_id=109623 Reading http://sourceforge.net/projects/halfcooked/files Best match: gerald 0.3.5 Downloading http://sourceforge.net/projects/halfcooked/files/gerald/0.3.5/gerald-0.3.5-py2.6.egg/download Processing download error: Couldn't find a setup script in c:docume~1andy~1.todlocals~1tempeasy_install-woqly0download (TEST) C:WorkvirtualenvsTEST>
The only thing that I can find different is that my Ubuntu virtual machine is running version 0.6c9 of setuptools. Has the function changed between two release candidates?
Needless to say this means that Gerald won’t install under Windows using easy_install until I figure this out. All help and suggestions warmly received.
30th January, 2010
I’ve always said that the appeal of any operating system – for me – is that I can fire up a terminal window and tinker around. When I say that many people look at me like I’ve got rocks in my head. But I’m glad I am not alone.
28th January, 2010
I just read a fascinating article by Ed Smith called “Are We Too Professional?” which, although it is ostensibly about cricket, covers too many interesting topics to disect here. But it did prompt a couple of observations.
One is that he is bang on the money and that some of the best performances – at work, play or scientific endeavour – come from those who don’t always follow the proscribed practices. But this then lead me on to the thought that professionalism, especially in the contexts that Ed quotes it in the article, is often just used as an excuse to implement restrictions on people who are perfectly capable of thinking for themselves and shouldn’t need them. But for whatever reason those in authority don’t trust and think that without these controls there will be chaos. This is illustrated by the example he quotes of teachers having to plan their lessons in 3 minute chunks. Some of my favourite teachers at school often couldn’t plan how to get to their classrooms from the staff room, heaven help them if they had had to go into this level of lesson planning.
The other observation is that, as with many other things, the devil is in the details. Professionalism itself isn’t a bad thing, as long as you don’t confuse it with being good at what you are supposed to be achieving. Sure, having a “mission statement” can be a bad thing. Especially if it is as bad as –
“ICI’s vision is to be the leader in creating value for customers and shareholders through market leadership, technological edge and a world competitive cost base.”
After reading that I still don’t know what it is that they do. What is wrong there is not trying to define the purpose of the organisation, it’s how they have gone about doing it. Maybe they should have gone for “Be the best chemical producer in the world”. Just a thought.
Anyway, enough of my rambling, go and read the article.
21st January, 2010
This last weekend I released version 0.3.5 of gerald.
The major component of this release was to add a ‘User’ class to the oracle_schema module. This is similar to the ‘Schema’ class but whilst that shows all of the objects a database user owns the ‘User’ class contains details of all of the objects they can access, including those owned by other database users. This was requested by the sqlpython project to enable them to use gerald for database introspection.
The only other change was to ensure that the NotImplementedError exception is raised in all of the super type methods that are just stubs. This is mainly in the Schema.py module and thus meant that I had to add a set of tests for this module.
The next release will be 0.4. Exactly what will make up that release is still evolving. To see what is in the release and to track progress take a look at the version 0.4 roadmap.
25th November, 2009
Everyone, say hello to version 0.3.1 of gerald. This is a minor update that fixed some issues introduced in release 0.3 In summary these are:
- Ticket 17 – Views have been converted to dictionaries from tuples
- Ticket 18 – Reading an Oracle sequence updates it’s current value
- Ticket 19 – Postgres primary keys were not represented properly when read from the database
The next release will be 0.3.5 and will introduce the concept of a ‘User’. This is similar to a ‘Schema’ but will reference all of the objects a database user can see even if they don’t own them. You can track progress for the release using the version 0.3.5 roadmap.
8th September, 2009
I had a bit of an epiphany over the weekend. Luckily I managed to clean up afterwards. Actually, it was whilst I was cleaning up that I had the thought.
As I removed the plastic wrapper from the latest set of phone books, dutifully placed it in the bin and then took the books themselves and put them straight into the recycling I realised that I haven’t used a phone book in nearly ten years.
I don’t need phone books any more. I have White Pages, and Yellow Pages. In this country both of these web sites are provided by Sensis, who also publish the paper books that land on my doorstep only to be put straight in the bin. But then I realised that I don’t use those sites either.
If I want the number for a business I Google them and look for a number on their web site. Because these days everybody has a web site, right? If they don’t have a web site they generally don’t get my business. Which is harsh, but who wants to open up a big book and find a business, or even worse figure out what category to look up and find an advert for an appropriate business on one of several pages in a directory.
For people my approach is just as simple. If I want to call someone I generally have their mobile number. Failing that I’ll have their email address and I’ll send them an email asking for their number.
Thinking about it I rarely ring more than a handful of people on their home or other fixed line phones. There are people that I’ve known for years who’s home telephone numbers are a complete mystery to me.
It would seem that I am not alone in this either. There was a big story in the Fairfax press only a day after I had chucked my phone books away – Millions set to disconnect their fixed-line phones – and even the Telegraph in the UK had this issue as number 8 in their list of 50 things that are being killed by the internet.
As I think about this I struggle to think of any reason why I would need a printed phone directory ever again. Is there a way to tell Sensis not to send me them any more?