random technical thoughts from the Nominet technical team

JAOO 2007 - Day Three

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4 out of 5)
Loading ... Loading ...
Posted by chris on Sep 28th, 2007

This is the third instalment of my experiences at JAOO 2007, following on from my previous description of day two.

Once again, here are some quotes from the sessions I attended so that you can get a flavour of the day without having to read all of my notes:

  • Kevlin Henney - With Economy and Elegance - “Our job is to turn a general purpose machine into a specific one”
  • Laurent Bossavit - The Journeyman’s Tale - “You are a 17th Century Cathedral Builder!”
  • Michael Feathers - The Ethics of Error Prevention - “Quality is in the intangibles”
  • Pete McBreen - Applying Craftsmanship - “Software should be a pleasure to use, or we’re doing it wrong”
  • Closing Panel hosted by Martin Fowler - “Iterative development is a constant cycle of failure”

Continue Reading »

Oracle Job Scheduling (dbms_scheduler)

1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 4.4 out of 5)
Loading ... Loading ...
Posted by patrick on Sep 28th, 2007

In version 10g of the Oracle Database the Oracle Scheduler (dbms_scheduler package) was introduced. This allows the scheduling of jobs within an Oracle database and has many more features than the older dbms_job package, which is still available in Oracle 10g.

You can schedule jobs to run at a designated date and time or upon the occurrence of an event. You can set priorities for and dependencies between jobs.

Continue Reading »

Fixed MS Word crashing regularly on OSX

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Posted by jay on Sep 28th, 2007

My MS Word on OSX has been crashing regularly for months, normally when I do something foolish like open a document, especially one that has been emailed to me.

I was also getting another problem that I did not realise was related.  Occasionally I would print out a document only to find that every character had been replaced with a random different character from the full character palette.  So letters, symbols, characters from other languages and so on.  Yet the formatting of the document was not affected.

In addition to that I very occasionally opened a document in Preview that was similarly affected, with all the character replaced.

One of my colleagues had the same issue and managed to track it down.  Looking in the Console he came across numerous references to ATS.framework at the time of the crashes.  ATS is the Apple Type (as in typefaces) Server and I then put two and two together to get the solution.

It turns out that OSX has things called font caches and they can get corrupt.  When they do MS Word crashes a lot and other things can get unhappy.  To clear the problem you can use a simple tool called Font Finagler.  This deletes your corrupted font caches (glyphs at various points sizes?) and the problem goes away.

Printers not appearing in OSX printer driver list

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Posted by jay on Sep 27th, 2007

It is rare that the OSX interaction designers get it wrong, but this is one of those cases and it is a whopper.

We have an HP DesignJet 120nr in the office, basically a big (A0) printer, networked up for us to share.  I’d only ever used it from a Windows box before but I needed to set it up on OSX.  My first step was to open System Preferences then Print and Fax and press the + to add a new printer.  Then I selected LPD printing and typed in the queue name, which it duly recognised as a valid queue.

However it did not auto-detect the printer type and decided it was a Generic Postscript Printer.  So I dropped down the list of drivers, found HP on the list, but I could not see the DesignJet 120nr on that list.

This seemed pretty obvious to fix, just install the drivers.  I downloaded those after a bit of hassle because HP make you register to get them (so old-fashioned) and installed them.  But still the printer did not appear in the list.

I then spent ages looking at files like hpdjPM.plugin and trying to work out how it all fitted together but got nowhere.  I could clearly see from the installer log that the right driver was installed in :Libary:Printers:hp:deskjet:hpdjPM.plugin:Contents:Resources:XMLData:Printers:designjet_120nr.xml but it would not appear in that list.  I tried fixing disk permissions, which found a lot of errors around there but that still did not work.

Finally I spotted a clue on the web that gave me an idea as to how it works.

I went to the same screen but instead of filling anything in, just pressed the ‘More Printers …’ button.  Then I selected ‘HP IP Printing’ from the drop down at the top.  The screen then has two tabs, Auto and Manual.  Auto was blank so I guess that uses a local subnet broadcast and Manual asks for an IP address.  After all this fiddle using dig to get the printer’s IP address is trivial but still something I should not have to do.  Anyway I did that, entered the IP address and pressed Add.  After a several second delay it flipped back to the printer screen with my new printer correctly identified as a DesignJet 120nr and even had the right icon.

What a fuss.

JAOO 2007 - Day Two

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4 out of 5)
Loading ... Loading ...
Posted by chris on Sep 26th, 2007

These are my notes from the second day of the JAOO conference in Århus in Denmark. They follow on from my notes from day one. I didn’t think this day was as good as the first, but then it never looked as interesting on paper, so I wasn’t surprised. Once again, since this is a long post, I will give a quote or summary from each session and you can click through if you want to read more

  • Erik Meijer - Democratizing the Cloud - “Can we take an ordinary 1 tier app and stretch it over 3 tiers?”
  • Jean Bezivin - Models that work - “MDE, MDA, MDSD, DSM, ADM…”
  • Eric Evans - Strategic Design - “In software there are no pleasant surprises”
  • Trygve Reenskaug - Things your mother didn’t tell you… - “A computer amplifies your brain like the soundbox of a guitar”
  • Glenn Vanderburg - The Overlooked Power of JavaScript - “Ajax is a gateway drug for JavaScript”

Continue Reading »

JAOO 2007 - Day One

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 4.67 out of 5)
Loading ... Loading ...
Posted by chris on Sep 25th, 2007

These are my notes from the JAOO conference in Århus in Denmark. Since this is a long post, I will start with a list of the sessions I went to and the best quote from each. If you think this is worth reading, you can click through to read the whole thing.

  • Bob Martin - Clean Code - “Avoid Turgid Viscous Architectures”
  • Charles Nutter and Tom Enebo - JRuby - “Struts is the redheaded stepchild that everyone picks on”
  • Joe Armstrong - Erlang - “When x=x+1 is not deterministic, programming is really difficult”
  • Justin Gehtland - Ruby in the Enterprise - “This stuff is not rocket surgery”
  • Diana Larsen - Agile Retrospectives - “Software developers are smart people who are good at thinking individually, but not necessarily together

Continue Reading »

Lotus Notes 8 on Debian

1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 4.6 out of 5)
Loading ... Loading ...
Posted by tom on Sep 20th, 2007

I’ve been running Notes 7 on Debian using WINE for some time but I thought it was time to try out the native Notes 8. I use KDE so to get things running I had to install the following new packages (names may change and this may not be an exhaustive list)

apt-get install libgnome-desktop-2 libgnome-keyring0 libgnome-menu2 libgnome-window-settings1 libgnome2-0 libgnome2-common
libgnomecanvas2-0 libgnomecanvas2-common libgnomecups1.0-1 libgnomeprint2.2-0 libgnomeprint2.2-data libgnomeprintui2.2-0
libgnomeprintui2.2-common libgnomeui-0 libgnomeui-common libgnomevfs2-0 libgnomevfs2-common libeel2-2 libeel2-data
gnome-terminal

In addition, I had to create a symlink /usr/lib/libeel-2.so.2 -> /usr/lib/libeel-2-2.16.so and had to set MOZILLA_FIVE_HOME=/usr/lib/iceape (it complains but seems to work). I’d also recommend running Notes from a terminal as the error messages quickly highlight any other missing components.
Unfortuately this new version feels like it is still in beta. Most problems seem to be glitches in the user interface but the biggest issue for me is printing which seems to be mostly broken. The only message I can see is

(:26287): Pango-WARNING **: failed to create cairo scaled font, expect ugly output. the offending font is 'DejaVu Sans 0'

Although Debian isn’t a supported platform many of the same problems seem to be present on SUSE.
On a more positive note, some of the new features are quite nice (compared to notes 7) and my biggest issue, search, now seems to work a lot better (I think this was a WINE specific issue). I think I’ll stick with version 8 for the moment in the hope that I may be able to find some workarounds for my problems.

Oracle Optimizer mode & full table scans

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 1 out of 5)
Loading ... Loading ...
Posted by jason on Sep 20th, 2007

Our main production database is mostly OLTP but we have a set of crucial batch jobs as well. A good recommendation for OLTP systems is to set your optimizer_mode to be FIRST_ROWS_X where is X is a number, we have it currently set to 10. This is basically saying for any particular query a user is only interested in seeing the first few results and will not page through screen fulls of data. Therefore the optimizer works out the path to get the first few rows back quickest, even though overall execution time may be slower. On the other hand batch jobs tend to have to process all rows so setting the optimizer_mode to be ALL_ROWS may be of benefit. What I never realised was the different optimizer modes give differing values for the cost of a full table scan.


SQL> alter session set optimizer_mode='FIRST_ROWS_10';

SQL> explain plan for select * from users.test;

SQL>  @?/rdbms/admin/utlxpls 

 PLAN_TABLE_OUTPUT 

Plan hash value: 488834895
————————————————————————————-
| Id  | Operation         | Name    | Rows  | Bytes | Cost (%CPU)| Time      |
|   0 | SELECT STATEMENT   |          |10 |  1570 |     2   (0)| 00:00:01     |
|   1 |   TABLE ACCESS FULL| TEST  |    10 |  1570 |     2   (0)| 00:00:01     |
————————————————————————————-

SQL> alter session set optimizer_mode = ‘ALL_ROWS’;
SQL> select * from users.test;

SQL> @?/rdbms/admin/utlxpls

PLAN_TABLE_OUTPUT
Plan hash value: 488834895
—————————————————————————–
| Id  | Operation         | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
|   0 | SELECT STATEMENT  |         |  6034K|   903M| 25705   (2)| 00:05:09 |
|   1 |   TABLE ACCESS FULL| TEST |    6034K|   903M| 25705   (2)| 00:05:09 |
—————————————————————————–

It is a big difference in terms of cost but of course no matter what optimizer mode you are using you still have to perform the same amount of work if you are doing the same operation. To be clear, a full table scan of the same table will take the same amount of time (assuming the same level of caching) no matter what your optimizer is set to.

This can have the effect of favouring a full table scan when in fact index access would be cheaper.

High Availability JMS with Open Message Queue and Spring

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Posted by tom on Sep 4th, 2007

I’ve just started to look in to the various message queuing servers for our applications and first up is Sun’s Open Message Queue. I’m drawn to this as it is open source, has C and Java client APIs and also has high availability features using a persistent store.

Setting up a test environment was quite straight forward, as was using it from Spring. Here’s how I did it…
Continue Reading »

Recent Posts

Highest Rated

Categories

Archives

Meta: