Archive for October, 2010

Using QString effectively

October 12th, 2010 No comments

Low Level Virtual Machine (LLVM)

October 6th, 2010 No comments

The Low Level Virtual Machine (LLVM) is a compiler infrastructure, written in C++, which is designed for compile-time, link-time, run-time, and “idle-time” optimization of programs written in arbitrary programming languages. Originally implemented for C/C++, the language-independent design (and the success) of LLVM has since spawned a wide variety of front ends, including Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL, and others.

LLVM can provide the middle layers of a complete compiler system, taking intermediate form (IF) code from a compiler and outputting an optimized IF that can then be converted and linked into machine-dependent assembler code for a target platform. LLVM can accept the IF from the GCC toolchain, allowing it to be used with a wide array of existing compilers written for that project.

LLVM can also generate relocatable machine code at compile-time or link-time or even binary machine code at run-time.

LLVM supports a language-independent instruction set and type system. Each instruction is in static single assignment form (SSA), meaning that each variable (called a typed register) is assigned once and is frozen. This helps simplify the analysis of dependencies among variables. LLVM allows code to be compiled statically, as it is under the traditional GCC system, or left for late-compiling from the IF to machine code in a just-in-time compiler (JIT) in a fashion similar to Java. The type system consists of basic types such as integers or floats and five derived types: pointers, arrays, vectors, structures, and functions. A type construct in a concrete language can be represented by combining these basic types in LLVM. For example, a class in C++ can be represented by a combination of structures, functions and arrays of function pointers.

Additional links:

Ubuntu Tweak

October 4th, 2010 No comments

Ubuntu Tweak is an application to config Ubuntu easier for everyone. It provides many useful desktop and system options that the default desktop environment doesn’t provide.

As a Ubuntu user, you always get excited when you see something new in Ubuntu world. You play with new applications, new themes, new applets… After playing with them, you may find something break the desktop, and you don’t know how to recover to the original style.

That’s what the Desktop Recovery will help you.

Desktop Recovery is the tool integrated into Ubuntu Tweak to help people safely tweak with desktop settings, and never worry about how to go back.

It has three basic actions:

  • Backup: backup the current settings, keep as many as backups you want;
  • Recover: recover to the backup;
  • Reset: even you don’t have any backup, you can also reset to the default settings;

And what items does Desktop Recovery can backup? Here’s it is:

  • GNOME Desktop settings: Panel, Themes, Background;
  • Application settings which use GConf: gedit, Compiz, Empathy, Nautilus… You know, almost every desktop applications;
  • System components: Input method (ibus), network-manager, proxy…

You can see, Desktop Recovery covers almost everything of desktop/applications.

One thing You MUST know: it will only operate with the setting, not the files related with the setting. E.G. It will backup the setting about the background name, but not the real background file.

Install Ubuntu Tweak in ubuntu

Open the terminal and run the following commands

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

How to remove the old kernel versions from ubuntu using ubuntu tweak

  1. Select “Package Cleaner” on the left and “Clean Kernel” from the right panel.
  2. Press the “Unlock” button at the lower right, enter your password.
  3. Select from the displayed list the kernel images and headers you wish to remove. The kernel in use is not listed.
  4. Press the “Cleanup” button at the lower right to remove the selected kernel images and headers.

Real-time operating system

October 3rd, 2010 No comments

A real-time operating system (RTOS) is an operating system (OS) intended for real-time applications. Such operating systems serve application requests nearly real-time. A real-time operating system offers programmers more control over process priorities. An application’s process priority level may exceed that of a system process. Real-time operating systems minimize critical sections of system code, so that the application’s interruption is nearly critical.

A key characteristic of a real-time OS is the level of its consistency concerning the amount of time it takes to accept and complete an application’s task; the variability is jitter. A hard real-time operating system has less jitter than a soft real-time operating system. The chief design goal is not high throughput, but rather a guarantee of a soft or hard performance category. A real-time OS that can usually or generally meet a deadline is a soft real-time OS, but if it can meet a deadline deterministically it is a hard real-time OS.


Currently the best known, most widely deployed, real-time operating systems are:

See the list of real-time operating systems for a comprehensive list.

Additional RTOS:


Oscar Wilde

October 2nd, 2010 No comments

“I am not young enough to know everything.”

Oscar Wilde
Irish dramatist, novelist, & poet (1854 – 1900)

The Quotations Page