Database or spreadsheet?

Sometimes we use spreadsheet to store data as table just like database. Especially the features provided like sorting and filtering. This allows us to look at the data easily without the knowledge of SQL (structured query language). Furthermore, we can add in the rows easily, do calculation using formulae, and also copy-paste the data to any cell. Comparing to database, the data needs to be filled row by row, this is the main drawback. This is why spreadsheet is easier to use.

We can also use spreadsheet to detect duplicated value using sorting, followed by a new column to check the value with the previous row, eg “=if(A2=A1)”, then we can remove all the duplicated row. Besides that, there are other functions that can be used such as concatenate().

However, there are some cases which must be done in database. For example, if there are two sheets of data, namely sheet A and sheet B. The sheet A contains some user information such as (user ID, username, email address); sheet B contains (user ID, gender, contact no.). If both sheet A and sheet B has the same number of rows and matched user ID, then both sheets can be combined easily using spreadsheet by using sorting. However, if the number of rows is different, or the user ID are not matched, what is the solution?

The above problem can be understood using the set theory, where the sheet A and sheet B are the set A and set B. If the set operation is converted into the programming, it will be exhaustive because we need to compare the user ID for set A and set B programmatically. The easier and better solution is using database SQL. Based on the output we need, we can use JOIN clause as the set operations. This is the wonderfulness of database SQL.

There is another problem, that is converting the spreadsheet to database and vice versa. Converting the LibreOffice Calc format to LibreOffice Base format can work. But I didn’t try this before. Therefore, my best solution is to use the MySQL, using phpMyAdmin interface. This is because phpMyAdmin allows us to import the OpenDocument Spreadsheet (ods) format, and even export to OpenDocument Spreadsheet format. Yes, this is how I solved the spreadsheet problems and perform the set operations using JOIN clauses in MySQL.

The best desktop environment

The best desktop environment I mentioned here, doesn’t mean the DE such as KDE, GNOME, Xfce, LXDE, etc. The purpose of this post is to express the best desktop environment, that is, the features and functionalities.

You can called me old fashion, does not able to follow the latest technology. Whatever it is, the followings are my opinions on the features:

Taskbar as in Windows XP, or task list as in Xfce.

The taskbar in Windows 7, which groups them all, not user friendly for me. At least two actions needed: mouse over (or click) to show the whole group, then click again into the window of interested. The best is ungrouped, zero level, all windows showed. The sorting can based on time or window name, at least the users will know how to find the window based on some rules. The DE like GNOME 3 or Unity are too bad for me. Group the windows or applications in workspace, difficult to switch between the windows.

Menu of applications (like Windows start menu)

Not necessary like the Windows start menu or Xfce Application menu. At least can get a list of applications installed. Can be something like PCManFM, which has an Applications menu in the file manager. Or the menu can appear in the context menu like OpenBox. This allows us to run the application if we cannot remember what the application name is.

Application launcher

Windows 7 (or even Vista), in the start menu we can type and search the application or file. It is easier to launch an application. If look for the application from the menu, we need to look for the names of categories, click the category, then click again for the application. It is slower. With the application launcher such as GNOME Do or less powerful gmrun, it is faster to call our favourite applications with name.

Command-line shell (or terminal)

A good desktop environment must provide command-line shell. This provides extra features than application launcher. It can be used to call the applications. It can also be used to do batch processing. It can do something GUI cannot do. In Linux, there are GNOME Terminal, Terminal (from Xfce), lxterminal, and Konsole.

Windows cmd.exe is too useless because lack of powerful commands. However, Windows has an alternative, that is, PowerShell. Yet, I personally prefer UNIX commands. This can be done with Cygwin.

Task manager

Running several applications, an application might freeze, to close it or kill it, task manager is too useful. The usefulness of task manager is not only let us kill the process (running application), but also list all the processes, check the memory and CPU usage. Furthermore, task manager normally allows us to run a command.

File manager

The file manager is a need for a computer, to organise the files. Rename, copy, delete, move, create directory, create empty files, click to open the files, these are the most commonly used functions. Though the command-line is powerful, manage the files using GUI is faster and convenient.

The file managers support the tabs are the best, such as Nautilus and PCManFM. When we copy the file, we can also copy the file path, and paste the path to the text area will reduce a lot of unnecessary typing.

Notification area (or system tray)

With the taskbar, but without notification area, the users cannot know some of the status of the computers, especially battery, volume, date and time, internet connection, and even some applications. Though it is nice to display all the applications in the taskbar, some of the applications, especially the applications startup with the OS and shutdown with the OS, they are better to be placed in the notification area.

Others

Screensaver which can lock the computer is also important. Call the screensaver with a hotkey is a need for a user.

Any desktop environment provides the above feature is considered my favourite DE. Therefore, if using Linux without the DE like KDE, GNOME, Xfce, or LXDE, I can use OpenBox (window manager), oblogout (logout menu), gmrun (as application launcher), tint2 (taskbar), volumeicon, PCManFM (file manager), lxterminal (command-line shell), lxtask (task manager), xscreensaver (screen saver to lock screen), and LXDM, to provide these features.