Technology Tales

Adventures in consumer and enterprise technology

Twin-pane Windows file managers

7th May 2007

When Microsoft moved away from its two pane file manager with the advent of Windows 95, I was one of those who thought it to be a retrograde step. While two Windows Explorer instances can be tiled on a desktop, the old two-pane paradigm still has its uses and there are third party purveyors of such things. Salamander from ALTAP is one such option, as is SpeedProject's SpeedCommander. While I have been using the latter for most of a year now and would gladly pay for it but for the fact that SpeedProject's payment system isn't working. It's just as well that the demo continues to function fully following the expiry of its evaluation period. It even takes the twin pane paradigm further by adding sub-panes within each of these, but that isn't all to this major update to the Norton Commander concept. Recently, I downloaded the free version of Salamander to have a look and, though basic, it does a lot of what I ask of it, so I might continue to see how it performs and may even evaluate the commercial version to see how it goes.

Updating Oracle data tables that have associated sequence objects

3rd May 2007

Here’s something that I want to put somewhere for future reference before I forget it: keep sequences associated with Oracle data tables up to date while adding records. Given that it took me a while to find it, it might come in useful for someone else too.

The first thing is to update the sequence itself:

SELECT TABLE_SEQ.NEXTVAL FROM DUAL;

Dual is a handy single record table that you can use to update sequences. Use the actual associated table itself if you like to see that sequence number rocket…

The next thing is to use the new value to assign a table ID as part of an INSERT statement:

INSERT INTO “TABLE” VALUES (TABLE_SEQ.CURRVAL, 1, ‘Test value’);

Quoted strings in Oracle SQL

2nd May 2007

Here's a gotcha that caught up with me on my journey into the world of Oracle SQL: string quoting. Anything enclosed in double-quotes (") is the name of an Oracle object (variable, table and so on) while values are enclosed in single quotes ('). The reason that this one caught me out is that I have a preference for double quotes because of my SAS programming background; SAS macro variables resolve only when enclosed in double-quotes, hence the convention.

WordPress.com and user registration

1st May 2007

While I don’t know whether it’s me or not, I seem to remember there being a Register link on the Meta widget that you see here. Anyway, its absence prompted me to go doing a spot of fiddling to (re)introduce it. My motivation for doing this is my preference for allowing only registered users to post comments so that I don’t encounter too much comment spam.

Speaking of widget functionality, it did take me longer than it should for me to work out how to configure widgets; the button in the widget with lines in it does the trick. Once this twigged, I built a register widget from a text one so that you can get an account with the WordPress.com empire and use it for blogging or commenting as you choose. Registering here allows comment posting on any WordPress.com blog.

Speaking of widgets, the latest WordPress.com ones allow bloggers like me to use tag clouds and even convert archive and category lists to drop down menus. I am not sure about tag clouds but making a dropdown menu of the monthly archives certainly took my fancy, as you can see here.

Uses for symbolic links

24th April 2007

UNIX (and Linux) does a wonderful trick with its file and folder shortcuts; it effectively treats them as file and folder transporters that transfer associate a file or folder that exists in one folder hierarchy with another, and it is treated as if it exists in that hierarchy too. For example, the folder named images under /www/htdocs/blog can have a link under /www/htdocs/ that makes it appear that its contents exist in both places without any file duplication. For instance, the pwd command cannot tell a folder from a folder shortcut. To achieve this, I use what are called symbolic links and the following command achieves the outcome in the example:

ln -s /www/htdocs/blog/images /www/htdocs/images

The first file path is the destination for the link, while the second one is that for the link itself. Once, I had a problem with Google Reader not showing up images in its feed displays, so symbolic links rode to the rescue as they did for resolving a similar conundrum that I was encountering when editing posts in my hillwalking blog.

Checking existence of files and directories on UNIX using shell scripting

23rd April 2007

Having had a UNIX shell script attempt to copy a non-existent file, I decided to take another look for ways to test the existence of a file. For directory existence checking, I was testing for the return code from the cd command, and I suppose that the ls command might help for files. However, I did find a better way:

if [ -f $filename ]
then
    echo "This filename [$filename] exists"
elif [ -d $dirname ]
then
    echo "This dirname [$dirname] exists"
else
    echo "Neither [$dirname] or [$filename] exist"
fi

The -d and -f flags within the evaluation expressions test for the existence of directories and files, respectively. One gotcha is that those spaces within the brackets are important too, but it is a very way of doing what I wanted.

Google Reader

22nd April 2007

Going through the stats for my other blog, I noticed some activity from Google Reader and decided to investigate. What I discovered was a very capable feed reader, much better than Technorati's equivalent. The interface feels a little like an email client, with a different entry in the sidebar for each feed. It also gives you full text and pictures for each blog article that it picks up, though it messes with my hillwalking blog for some reason... As a feed aggregator, it performs very well and makes my blog surveying a lot more effortless. I know that Outlook 2007 has aggregation functionality too, but the portability of Google's little online offering makes it worth taking further, especially as you wouldn't need to pay for it anyway.

Update: Google Reader also allows you to share items from your feeds.

Learning about Oracle

20th April 2007

My work in the last week has put me on something of a learning about Oracle. This is down to my needing to add file metadata to a database as part of an application that I am developing. Since the application is written in SAS, I am using SAS/Access for Oracle to update the database using SQL pass-through statements written in Oracle SQL. I am used to SAS SQL and there is commonality between it and Oracle’s implementation, which is a big help. Nevertheless, there, of course, are things specific to the Oracle world about which I have needed to learn. My experiences have introduced me to concepts like triggers, sequences, constraints, primary keys, foreign keys and the like. In addition, I have also seen the results of database normalisation at first hand.

Using Oracle’s SQL Developer has been a great help in my endeavours, thanks to its online help and the way that you can view database objects in an easy-to-use manner. It also runs SQL scripts, giving you a feel for how Oracle works, and anyone can download it for free upon registration on the Oracle website. Additionally, I have installed the Oracle 10g database Express edition at home, which serves as a valuable personal learning resource. That is another free download from Oracle’s website.

My Safari bookshelf has been another invaluable resource, providing access to O’ Reilly’s Oracle books. Of these, Mastering Oracle SQL has proved particularly useful, and I made a journey to Manchester after work this evening (Waterstones on Deansgate is open until 21:00 on weekdays) to see if I could acquire a copy. While that quest was to prove fruitless, I now have got the doorstop that is Oracle Database 10g: The Complete Reference from The Oracle Press, an imprint of Osborne and McGraw Hill. Since I needed a broader grounding in all things Oracle, this should help. Usefully, it also covers SQL, but the aforementioned O’ Reilly volume could return to the wish list if that provision is insufficient.

Oracle SQL Developer and MySQL

17th April 2007

Because of my work, I recently have had a bit of exposure to Oracle SQL Developer, which I have been using as part of application development and testing activities. For further investigation, I decided to have a copy at home for further perusal (it's a free download) and it was with some interest that I found out that it could access MySQL databases. To accomplish this, you need Connector/J for MySQL so that communication can occur between the two. Though you quickly notice the differences in feature sets between Oracle and MySQL, it seems a good tool for exploring MySQL data tables and issuing queries.

Oracle SQL Developer

Return to Elements

4th April 2007

After a session with Photoshop CS2 and a preview of CS3’s capabilities, I went and got myself a permanent copy of Elements 5 after seeing the similarities between Scott Kelby’s books on Elements 5 and CS2. In any event, I fail to justify the cost of CS2 with CS3 being imminent and the attractions of Elements 5 were too much to ignore. I may yet go for CS3, but I’ll stick with Elements 5 for now.

The similarities between the different members of the Photoshop family are eerie. Once I got used to finding some things in different places from where they are in CS2, I quickly found myself at home in Elements. The biggest miss that I found was the lack of an adjustment layer for editing curves. Otherwise, everything else is as I would hope to find it, and the sliders for curves adjustment in Elements make up for the absence of an associated adjustment layer. Bicubic resampling, an enhancement since Photoshop 7, is as per CS2 and my new workflow worked without too many changes. I took advantage of Kelby’s advice when using Camera Raw and used the Adjust Sharpness feature in place of the Unsharp Mask to get what I perceive to be good results. Everything seemed to work fine for the test digital photo that I was processing for my other blog. I am not totally abandoning my examinations of Elements’ big brother, though; the smart layers feature looks interesting, especially for non-destructive sharpening.

  • The content, images, and materials on this website are protected by copyright law and may not be reproduced, distributed, transmitted, displayed, or published in any form without the prior written permission of the copyright holder. All trademarks, logos, and brand names mentioned on this website are the property of their respective owners. Unauthorised use or duplication of these materials may violate copyright, trademark and other applicable laws, and could result in criminal or civil penalties.

  • All comments on this website are moderated and should contribute meaningfully to the discussion. We welcome diverse viewpoints expressed respectfully, but reserve the right to remove any comments containing hate speech, profanity, personal attacks, spam, promotional content or other inappropriate material without notice. Please note that comment moderation may take up to 24 hours, and that repeatedly violating these guidelines may result in being banned from future participation.

  • By submitting a comment, you grant us the right to publish and edit it as needed, whilst retaining your ownership of the content. Your email address will never be published or shared, though it is required for moderation purposes.