Open Source Software

Have you ever been to an amateur concert or theatre performance and come away thinking that it was every bit as good as a professional performance? Quite possibly you have and the reason is probably quite simple, namely that the people were doing it for the sheer love of what they were doing rather than just as a job. If you are wondering why I ask this question, I will come back to it a little later.

Most of us are used to using proprietary software, namely that which has been produced by a commercial company and sold at a price. The Windows operating system is a case in point, as are many other products some of which, like Microsoft Office and Adobe Photoshop, dominate the market and may be seen as state of the art. A commercial product will normally come with strict licensing restrictions, e.g. limiting its installation and use to a single user and/or a given number of computers.

Many of you will have heard of open source software but may not be totally familiar with the idea. Open source software is fundamentally different from commercial software. The most obvious difference is that it is free, which means free to use and free to distribute free of charge. The term “open source” indicates another important attribute, namely that the program source code is made available to the user, and the user is free to change this for his/her own requirements given the necessary skills and is free to distribute the modified version. A well known case in point is the Linux operating system. Open source software still normally comes with a licence, but with the main prohibition that the one thing that the user is not allowed to do is to sell it.

The fact that a program is free does not necessarily mean that it is lacking in quality. This is where my illustration of the amateur performance comes in. In the same way there are programmers out there, doing it for the love of what they are doing and/or serving the community at large. I am a strong supporter of the concept of open source software. Don’t get me wrong here however – I fully appreciate that by buying commercial software, one is putting money into the economy and helping to keep people in jobs. The professional environment will no doubt continue to do that, in order to enjoy the full benefit of the high end facilities of programs like Office and Photoshop.

There is however another side to all of this. In the world of computing and internet, which is becoming increasingly dominated by large corporations such as Microsoft, Goggle & Apple, open source software is all about freedom of choice to the user. For example, why should everyone have to use Windows and be forced down a route of doing things just the way that Microsoft wants? I appreciate that for the average home user, the easiest option is going to be to buy a computer off the shelf, pre-installed with Windows, but for the more serious user the things I have discussed here are definitely worth some consideration.

I will discuss in a subsequent article more about how I have put this into practice on my own computer.

As a Christian I have always found it helpful to use everyday things and situations to illustrate spiritual truths. Click here to read my follow-on article from this one about open source software.

Protecting Data Against Malware

Before I proceed any further please be warned that you will need some knowledge of Linux to understand some of the finer points. Even if you don’t you may still be able to grasp the basic ideas. Also please note that the terms ‘folder’ and ‘directory’ are used interchangeably – the former tends to be used by Windows and the latter by Linux.

In recent times we have seen a rise in malware that attacks the user’s own data. Something like Cryptolocker will encrypt files on the user’s computer and then make a ransom demand to pay for the required unlocking code. Malware has been associated with big time crime for a long time now and yet I feel there is something more sinister about this than say stealing a person’s credit card details. In the case of the latter, it tends at least to be the bank that loses out (not that I am making any excuses – even if the banking industry is far too rich, theft is still theft!). On the other hand if you are a serious computer user, then your computer data is a highly valuable asset, be it your documents, photos or music collection, and to lose it could be very costly in terms of years of work or memories.

I am going to look briefly at the idea of installing a Linux server on your network and using certain features of Linux to protect files from being attacked from within the Windows network. The server can be used to store photos and music as well as data backups from your working computers. A relatively old machine will often suffice for this purpose, though you may need to install a decent sized hard drive (e.g. 1TB).

Here are some examples of things that can be done.

  1. Share a directory via Samba with read-only access. This is good for the likes of photos and music that will never need to be modified once uploaded. Material can be uploaded via either FTP or a hidden symbolic link (see item 3 below).
  2. Some files (e.g. data backups) may need to be regularly updated from a computer, in which case full read-write access will be required. Ideally there needs to be a way of hiding the folder from someone/something idly browsing the network, while still making the folder accessible to an application that knows its path. This can be done by placing the real folder inside a hidden folder on a read-write Samba share. Any file or directory whose name starts with a period ( ‘.’) is hidden in Linux, though when sharing via Samba it will be visible by default on the Windows network. To fully hide it you will need to add the following line in the settings for the given share within the smb.conf file and restart the Samba service.
    veto files = /.*/

    As a result, the folder being hidden will itself become invisible to anything or anyone browsing the network, but given the full path of the sub-folder (i.e. the real folder containing your data), it is still possible to make direct access from within Windows. (N.B. You can’t browse the hidden folder itself, even given its path, but you can browse any folder under it, given the full path thereof.)

  3. Following on from the above, you can also put a symbolic link inside a hidden directory, pointing it to a directory that is otherwise contained within a read-only share. This provides a secret ‘back door’ route to provide read-write access to an otherwise read-only folder.
  4. If you want to protect individual directories and/or files within a Samba share that is otherwise read-write, you can do so using Linux file permissions. The best way is probably to set the owner to ‘root’ and then set the permissions to 644 for data files or 755 for executables and directories.

On a final note, if you are making backups via a read-write link, make sure that your backup system keeps some sort of rolling history and not just a constant overwrite of the same files – otherwise malicious damage to data could go unnoticed and be copied to the one and only backup!


Copying Photos to a Tablet

I have always been very hot on backing up computer data, even to the extent that when taking a camera on holiday I like to be able to back up my pictures to a separate device on a daily basis in case anything goes wrong with the camera or memory card. I have always resisted the idea of taking a laptop on holiday as computing is my livelihood and the laptop constitutes too much of a work item! As a result, when we got an iPad I bought a camera dongle to transfer photos on to the device from the memory card. Whilst this fulfils the need to back up the pictures and also makes them available for instant viewing, I find the whole setup on the iPad very user unfriendly in terms of organising and managing photos compared to a traditional desktop platform, added to which I have also found the camera dongles to be somewhat temperamental at times.

So maybe it is better to take the laptop away after all as a backup device, but even so it is good to be able to transfer the photos on to a tablet for viewing. As well as the iPad I now also have a Kindle Fire, an Android based device.

If photos are to be initially stored and organised on a computer, how then do we go about transferring them to a tablet? I’ve actually found it to be very easy, but there are a few useful things to consider.

File sizes. A tablet device will typically have much less storage space than a computer. At the same time a photo from a modern digital camera will have a pixel count much bigger than a tablet screen. For example a 12 megapixel camera with a 4:3 ratio will generate images of 4000×3000 pixels, whereas a full size iPad screen is only 2048×1536 pixels (i.e. only about 26% the size of the 12MP image). It would therefore make sense to reduce the size of each image for the purpose of uploading to a tablet. Personally I use IrfanView, which has a very good batch processing facility included, and it is free. I have always found that when saving JPEG images for screen viewing, saving at 90% quality gives a good compromise between storage size and quality.

Copying and syncing. On the Kindle Fire it has proved very simple. Just copy folders of photos from the computer directly into the “Internal Storage/Pictures” folder on the device and albums will immediately appear in the photos section with names corresponding to those of the associated sub-folders. With an iPad, the same can be done in principle but not by the same method of directly copying the folders. Instead you will need to use iTunes to carry out the synchronisation, but the end result is basically the same.

Photo order. The photos should normally display in chronological order (i.e. by date/time taken) and this is done using the Exif data from the files (standard metadata tags held in an image file). After uploading my photos I initially found that in some of the older albums there were a number of photos out of order. On further investigation it turned out that the offending items were those pictures that happened to be taken in portrait mode. This is because at the time, the images had been rotated by a method that caused the Exif data to be lost. Very frustrating but all is not lost. Exiftool is a very handy tool for editing the Exif data in a file. It is a command based utility and I have a written a small DOS batch file (download here) that uses it to resequence all the JPEG image files in a given folder. The batch file works on the assumption that the filename sequence matches the chronological order of the photos (likely to be the case more often than not). On running it you need to specify the folder and provide a date and base time. The image files are then all resequenced in one second increments. The batch file can easily be modified to do things differently if required. (N.B. The DOS command prompt still exists on the more modern versions of Windows!)

Hope there are some useful hints here. Enjoy your photos.