2008-08-31

It is not because Linux is hard to use

by Forrest Sheng Bao http://fsbao.net

In this article, Linux could be: 1) an operating system kernel, which is not used by a common user 2) a general name for many Linux-based computing environment, a.k.a., distributions, i.e. Ubuntu, openSuSE.

There are many people complaining Linux is hard to use. But I think it's not the fault of Linux, but because you couldn't find good tools to handle your job. The reasons are quite obvious. Seldom do people really use an operating system (short as OS, like Windows, Mac OS X, or Linux itself). They use software running on the OS. So, what makes you fell unhappy, is the software.

Some of them complain that the Graphic User Interface (GUI) of Linux is not user-friendly. Well, this is also a problem of the software on Linux. Unlike Windows or Mac OS X, Linux is just a kernel, which means it has no interface to users, even the Command Line Interface (CLI) like DOS. Since Linux is an open system, anyone can design the GUI. Different desktop environment, different distributions have different GUI. They vary a lot. You just need one best for you.

Let's take a look at this case. One of my friends just complained that he had to input a long command to print a PDF document. Well, I don't have to do so on the Evince document viewer, which is the default PDF reader on Ubuntu Linux. You can have all GUI settings. Then he said, well, this is what my department told him: http://www.cs.utexas.edu/facilities/faq/printing/#102

So, this is a typical case of not having the right software. If you have the right software, easy-to-catch-up, then he wouldn't complain that Linux is hard to use. Besides, the PDF reader has nothing to do with the OS itself. You can't judge whether an OS is bad by a single software running on it.

There is an extra point I wanna mention that Linux is an open operating system. Thus, you can always find many choices for one single job. For example, the login window. It could be very stupid and ugly or it could be very gorgeous and smart. Linux is just a platform supporting the co-existence of so many software. So you can't say Linux is not easy to use based on those stupid and ugly login windows. It is the same as that you can't say USA is a bad place because USA has many criminal affairs. USA is a also a good platform to make those working hard profit more than those in Europe or Canada.

2008-08-16

Microsoft Outlook Web Access sucks

by Forrest Sheng Bao http://fsbao.net

My university uses Microsoft solution to provide email service to all students, faculties and staffs. So, they also use Microsoft Outlook Web Access as the web interface. Man, have you used Hotmail? Do you know how bad it is? How ugly is their Ajax code? How slow is their webpage? And, how frequently does it stick at a place and have no response?

Well, the IT department of my university just upgraded the Outlook Web Access. Before that, it is an ugly HTML page without any hi-tech stuff. But now, they added Ajax technology and some "new features". But, the new interface doesn't give me any good feeling.

One thing is that it forgot all settings I configured, even my email signature. I really don't understand why Microsoft claims that they can provide enterprise-level solutions. If you can't upgrade seamlessly, then it's definitely not enterprise-level. I don't know how the Microsoft server remember our settings. But it is pretty easy in Linux world - just making directories for every user and saving a configuration file over there. This solution won't forget anything unless the file is missing. Keep it simple and stupid - why doesn't Microsoft think in this way?

While I was editing settings, I found another bad design. When you configure a set of options, you will scroll down to set items one by one. Finally, you will reach the bottom of the webpage. But, the stupid Microsoft does NOT put a "save" button at the bottom. I had to scroll to the top to save the settings. Does Microsoft really consider the user-friendly issue when designing their products?

I really hate Microsoft solutions, it's expensive, bulky, slow and not user-friendly.

2008-08-13

GUI programming made easy in LabVIEW on Linux

by Forrest Sheng Bao http://fsbao.net

Linux is a great platform for engineering and scientific research. But making GUI software on Linux is not as easy and fast as it's on Windows. Microsoft made the Windows and the APIs for Windows programming. And, they made an IDE, Visual Studio. On Linux, we have so many APIs to use, GNOME, KDE, and so many IDE's to use. Gee, I want to focus on my algorithm. Wanna build beautiful graphic interface for your algorithm on Linux in just few minutes? Try LabVIEW. It's just a few clicks away.

I was fascinated to LabVIEW many years ago, when I was a sophomore. It's pretty easy for GUI designs. Just place a widget, actually an input of your program, on the front panel and then the input of the widget into another function on the back panel. The programming is totally graphic, just building a data flow. You can compile your program into dynamic libraries and link it to your LabVIEW program. Or you can write a code, in a syntax very similar to MATLAB, in the Formula Node of LabVIEW to perform complex computations.

Sometimes, we do research, made a discovery and we have to show our result as a computer program. Well, I bet you don't wanna waste time on making that software - you are not a programmer. So, I use LabVIEW.
Pretty easy, like an auto-focus camera.

The following image of a demo to show the affect of different noises to a sine signal in time and frequency domain. You can adjust the knob, scaler, switch or input box to change the behavior of the signal and noise and see what's going on. You will see the amplitude of noise could change the shape of the lobe, though the central frequency is control by a knob.

Everything on the interface, the front panel, is input or output of the program, shown as an icon in the back panel. The program will run and run, until you click the "Stop" button. So, isn't it while-loop? Yes, can you see a big grey frame outside the program? That is the while-loop. Can you see that "Stop" icon? That is "while stop". Can you see a switch on the front panel? It controls an if-else structure in the program. Of course, many standard OS interfaces are supported. See that small highlighted dialog box with "Click me to continue"? I just dragged one icon into my program and did some configuration.



Another benefit of LabVIEW is that you don't need to write different program for different platform. It could run seamlessly on Linux, Mac, Windows and Solaris. Also, you can compile them into an executable. So, you can distribute the program to people without LabVIEW.

The executables compiled from LabVIEW contains a dynamic library with LabVIEW APIs and a binary program regarding your components. Just run the executables and it will automatically load the LabVIEW APIs. Like this:



That is why sometimes I would like to use commercial development environment - I am not a software developer. Thus, I just need a fast way to solve the non-primary issues.