Tuesday, 10 September 2013

XML Tree Editor version 0.1.0.23

The last version of tree view XML editor features drag and drop for Replicate / Move node operations and some minor improvements.

As usually installation files for Windows and Ubuntu can be found SourceForge.Net along with the source code.


Tuesday, 5 March 2013

XML Tree Editor ver 0.1.0.15 released

Last week I released the latest version of XML Tree Editor - a tool for creating/editing XML files represented as tree views.






New version features some bug fixes as well as improved usability and simplicity. Full release notes can be found on the project download page.

Installation packages are provided for Windows XP/7/8 and Ubuntu/Debian Linux. There is also source code avaialble for download along with two Pascal units for developers. The units provide support for XML configuration files in Delphi (uXMLConfig.pas) and Lazarus/Free Pascal (xmlfile.pas) applications. They are pretty much similar to well-known INI files with much richer functionality. The project is licensed under terms of GPL 2.0 or higher license.

Project page at SourceForge.net is http://sourceforge.net/projects/xmltreeeditor

Thursday, 31 January 2013

XML Tree Editor

I published a new small project recently called XML Tree Editor. It's an utility, which represents an XML file in a treeview and allows creating and editing it in this mode, without dealing with XML syntax.
The screenshot below shows the main screen with the tree view and preview pane at the bottom, Edit node window and multi-line editor on the foreground.


The list of commands includes Add Child Node (as reference to the selected node on the tree), Add Above and Add Below, Add Comment, Edit Node (which applies to both XML tags and comments) and Delete Node. There is also commands to move node with all its child nodes to a new position and to replicate (clone) nodes.

The second XML file can be opened in read-only mode in the separate window at the same time; it's called Reference File. The whole node (with all its children) can be copied from this file into main editable XML document.

This is an open source free software, hosted at SourceForge.net. The application is developed in Lazarus Free Pascal, the source codes are available for download along with installation packages for Windows and Linux (GTK2+).

Starting a new project at work I became the active user of XML Tree Editor myself. So I discovered some areas of improvement. The proposed changes in the emerging new version 0.1.0.15, apart from minor bug fixes, will include:
  • show all parents of the selected node mode
  • options window
  • keyboard shortcuts for all actions
XML Tree Editor available for download from here.


Monday, 15 June 2009

Learn English

Here is the link to a new approach in learning languages - www.effortlessenglishclub.com

The method is based on the idea, supported by following research, that adults have difficulties in learning second languages not because they lost some talent, which children still possess, but because they learn it in a wrong way, what children cannot do. That is why when the family moved to another country, children soon speak the new language fluently, while their parents after many years may still have serious difficulties.

Now I am trying to learn English following seven rules. Let's see if it helps.

Friday, 1 May 2009

Gnome Debian Package Finder 0.1.8 released

Recently a new version of Gnome Debian Package Finder became available to the public. This program is positioned for people either new to Linux or those who came with Windows experience and used to work with Graphical User Interface rather than type commands in the terminal.

There is a big difference between Windows and Linux on how software is distributed. Searching in the Internet and downloading from unknown web-sites, as Windows users used to do, is not suggested for Linux users, because most of the software can be found in the official repositories. So if one wants to find a music player for example, it is better to check what is available from the repositories first. That is where Gnome Debian Package Finder can help.

The major improvements comparing with the first release are:
  • changed window layout to better fit small screens of netbooks (I tested it on my Asus EEE PC 701 with 800 x 480 screen resolution)
  • more functionality available via right-click popup menus
  • drag-and-drop facility


To my surprise when I googled for "Debian Package Finder" I found this article about my program at Linux.com. The review outlines some problems with user interface, which I hope I will fix in future releases, and also shows one my obvious mistake: I had never mentioned anywhere that the program window had two horizontal splitters, so this feature remained un-noticed. As for its functionality I don't target package maintainers or Linux geeks as its primary users, so some features of command-line programs, like search for maintainers, will likely never been implemented.

The program is still in its beta stage and available for downloading from
GTK_APPS.ORG
Softpedia.com

Tuesday, 14 April 2009

Advanced Tone-mapping with GIMP

Most compact photo-cameras cannot handle contrast scenes properly. Here a plugin for GIMP (GNU Image Manipulation Program - a popular open-source alternative for PhotoShop, available for Windows, Linux and Mac OS), called Advanced Tone Mapping comes to the rescue. The script processes a single image, unlike High Dynamic Range technique, which requires at least two shots, increasing its local contrast and reducing total one. In a plain language it makes dark parts of the image lighter and bright parts darker. Obviously, the picture should not be overexposed, because nothing can get any information from the white sky, as it is completely lost.

Let start with the example.



I took this photo at South Head, the Kaipara Harbour entrance, not far from Auckland, New Zealand. In order to preserve the sky I set up exposure compensation to -2/3, so the whole picture became too dark. The sand is dark indeed, as it contains black volcanic ash, but pieces of broken sandstone on the foreground should be same colour like the background cliff.

One disadvantage of the script is that it takes a while to process a picture and there is no preview available, so nobody can tell you what values should be set as the parameters (four ones in total). Thus the idea of the explained technique is to over-process the picture, then to reduce the effect to get the desired result. So I opened the picture in GIMP, clicked Filters - Enchance - Advanced Tone Mapping and set the parameters as follows:
  • Gauss. Blur: 10% - the default value
  • Opacity of blurred layer - 100 or near
  • Opacity of merged layer - 100 or near
  • Copies of merged layer - 3
The result is shown below.



I definitely got what I wanted, but the result is far from ideal. The colours are un-real, and halos are strong and clearly visible. This new image appeared as a second layer above the original image, and this is very handy, as what I have to do now is just to change some parameters of this new layer.

So I switched to the Channels, Paths, Undo, Layers - ... dialog and selected Layers tab. The new layer is called tmapd: with some numbers, it should be already selected. I changed the layer mode to Value (the last in the list) and adjusted its opacity until I considered the result as satisfactory; the final opacity value for this image was about 60%. This is the interactive process and the changes are reflected on the image (almost :) immediately.



As you can see the clouds became more impressive, the background is now brighter; there is still some halo above the forest, but it is not so obvious.

This technique increases the noise level, especially in brighter parts of the image. This is because they contain less information, higher local contrast means small variations of brightness becomes more visible; it usually affects the blue sky. One can try to improve this by applying another plugin - GREYCstoration to the resulting and flattened image.

Tuesday, 24 March 2009

EEE PC as Photo Frame - Slideshow selection dialogue

After your slide show is up and running you may want to add some improvements - the ability to create as many slideshows as you like and choose one as you clicked on the icon.



To make this possible our slideshow script should be able to:
  1. find slideshows located under some base folder
  2. display the list where we can choose one from
  3. pass our choice to the viewer program (qiv)
The resulting script is shown below:

#!/bin/sh
ssPath="/home/user/MMC-SD/partition1/DCIM/"
cd $ssPath
ssList=$(ls -dx *)
ssFolder=$(zenity --list --title="Choose Slideshow" --column="Folder" $ssList)
if [ -n "$ssFolder" ] ; then
xset s off -dpms
# mpg321 --random --quiet /home/user/MMC-SD/partition1/MISC/audio/*.mp3 &
qiv -sfmir -d 8 $ssPath$ssFolder/*
# killall mpg321
xset s on +dpms
fi
As you may have noticed I commented the commands related to background music.

To implement new features, mentioned above, I introduced three variables:
  • ssPath - my base folder, each its sub-folder is a slideshow (you must change its value to your actual location)
  • ssList - the list of all found slideshows
  • ssFolder - what I chose from ssList
Look at the picture below.



It shows a file manager, which displays my directory tree. The address bar shows my base folder - "/home/user/MMC-SD/partition1/DCIM/", this value is directly assigned to ssPath.
ssPath="/home/user/MMC-SD/partition1/DCIM/"
The folder DCIM contains only sub-folders, every one of them is a separate slideshow. The command
ls -dx *
lists them in a single row, and this is assigned to ssList:
ssList=$(ls -dx *)

Then I use the command zenity which displays a nice dialog, as shown on the first picture. The result (my choice) is assigned to ssFolder:
ssFolder=$(zenity --list --title="Choose Slideshow" --column="Folder" $ssList)
Zenity was installed on my computer by default, so I think it should be same on yours.

The next step is to make sure ssFolder is not empty, so the rest of the script is executed if the below command returned TRUE:
if [ -n "$ssFolder" ] ; then
The rest is pretty much similar to what I explained in the previous post. The only difference is this command:
qiv -sfmir -d 8 $ssPath$ssFolder/*
qiv should play all files in my selected folder ($ssFolder), attached to the full path (the base folder ssPath). You should avoid having non-image files in that folder, or you may try -n option, which tells qiv to filter files by their magic numbers instead of extensions.

Enjoy!