Archive for the “Open Source” Category

Getting Started with GTK and GLade for GUI programming

Considering you have read the previous article on GUI programming, this article will give an insight about GTK.

When starting learning Glade, it is essential to learn the basic concepts of GTK+. Unfortunately there is a misconception that it’s enough to learn Glade for learning GUI designing rather than learning GTK+. Glade is definitely an easier way to implement GTK but it is impossible to create interface for your application with only Glade knowledge.

Official GTK+ tutorial is the best place to learn the Basic things about GTK+. Though reading the entire documentation may seem to be a herculean task, it would good to cover important topics like packing of widgets. After having a basic knowledge about GTK+, next step is having a look at the official Glade3 manual. Version that is supplied with Glade3 is outdated,you can find a simpler and more updated one here.

Now if you think, you are well and comfortable with GTK+ Basics, you will definitely want to try a real world example. Many authors provide tutorials with real world examples. I managed to find out two such, one by Micah carrick and other by Tadej Borovšak. It would be better to follow Tadej’s Tutorial as the former one does not use Glade3-3.6.7 which is latest version. Anyway you can also give a look at the tutorial by Micah. Now when you start seriously with GTK programming, never forget to visit GTK Forum for getting your doubts cleared.

Now if you are ready to spend a few bucks try to get a copy of  Foundations Of GTK development.

Here are a few other resources which would with worth giving a look though I haven’t tried them personally.

Tutorial for How to set the colour of a widget in GTK+
Tutorial

Gtk+ 2.0 Tree View tutorial
Tutorial Pdf

Gtk+ 2.0 Text View tutorial
Tutorial Pdf

Gtk+ 2.0 GtkComboBox Widget Tutorial
Part1
Part 2
Part 3

GtkDialog tutorial
Part 1
Part 2

Wrapping and resizing GtkLabel dynamically
Tutorial

Using pop-up windows
Tutorial

Gtk memory management in a nutshell
Tutorial
Gtk Menu Tutorial
Tutorial

Popularity: 72% [?]

Arch Linux, First step in creating your own OS

It’s a dream of every noob that even before coding the first “Hello World” program, student want to know how to code an OS. Dreams are good but this is harder than one can image. If you are so strong with your dream, rather than thinking of coding your OS from scratch better you try building your own Arch. Arch Linux is a fully customizable, light weight operating system. The CD image can be downloaded. But this is actually a very slim installation and it’s not at all usable. You will have to install the window manager, desktop environment and everything else you see on a full fledged operating system.

One of the main disadvantage of Arch Linux is it’s cryptic text based installer. So better you watch some video and get familiarised with the instalation procedure.

Here are a few video tutorials for the installation and customization of Arch Linux.


Popularity: 17% [?]

Wednesday, March 17, 2010 Categorized under: Open Source, Tech Buzz
Author: ajithpaul ajithpaul ajithpaul

Differences between UNIX and Linux

We are very familiar with Linux and its relation with UNIX. But most us of don’t actually know what are differences between the two.
Linux is called Unix-like and is not a true Unix operating system. Linux is a Unix clone written from scratch by Linus Torvalds.
Unix is popular operating system, developed by AT&T in 1969 whereas Linux was first released in 1991. Note that the time difference between the introduction of the two is a long 22 yrs. It is a myth that Linux is a GUI for the UNIX core. However, GNOME and KDE are GUIs for GNU/Linux. UNIX is the foundation for a number of operating systems, with Linux being the most popular one.

1.DIFFERENT AT THEIR KERNEL LEVELS
UNIX kernel is not freely available. So a geek, named Linus Torvalds, at the age of 21 sat down and wrote a kernel right from scratch borrowing ideas from UNIX. This later came to be known as Linux Kernel which he licensed under the GPL (GNU General Public License). Linux kernel is freely available. Hence Linux is called UNIX-like. He later said in an interview that “This is the best thing I have done in my life”.

2.HARDWARE
Linux runs on many hardware platforms, including Intel x86 computers. On the other hand, UNIX is proprietary-hardware-bonded and this hardware is much more expensive than a typical PC.
Unix requires a more powerful hardware configuration. It will work in large mainframe computers but not in an x86 based personal computer. Linux will work on both a large mainframe computer and an x86 based personal computer.
Putting it in simple words, UNIX will not run in the normal desktops or laptops that most of us use.

3.LICENSE
Unix is a proprietary software and you would need to buy it if you want to use it.
GNU/Linux is licensed under the GPL (GNU General Public License) which is an open source license. This means that the kernel-code is available for anyone to use or change as long as the changes are again licensed under GPL.

4.LINUX – JUST A KERNEL & UNIX – A COMPLETE OS

Linux is just a kernel. All Linux distributions (Fedora,Ubuntu,OpenSUSE etc.) includes GUI system,GNU utilities and various other applications (such as OpenOffice, Firefox) and of course the kernel. It is the distributions that make Linux a complete, usable Operating System.
However, UNIX operating systems are considered as complete operating systems.

5.EASE OF USE
Linux was built with the common user in mind, therefore most Linux distributions provide users with a very capable GUI ( that also eats up a portion of the computer’s processing power). Owing to Linux’s flexibility, the GUI can be removed.

6.SUPPORT FOR FILESYSTEMS
Most commercial version of UNIX supports two, or possibly three, different local filesystem types. Linux, however, supports almost all of the filesystems that are currently available on any operating system.

SIMILARITIES

  • Both Linux and UNIX use same shells (eg. bash and korn).
  • Both are capable of using a command line and a GUI.
  • Linux is used in many applications that need to maintain up-time because Linux, like UNIX, can run for months at a time without rebooting. While the typical method of solving Microsoft problems is to “reboot”, that particular requirement does not seem to be appropriate in a Linux/Unix environment.

Appendix

Having said so much about kernel, let us see briefly what actually a kernel is.
Kernel is a bridge between applications and the actual data processing done at the hardware level. Its responsibilities include managing the system’s resources. Hence it forms the most vital part of an operating system.
A kernel has facilities to receive requests (eg.commands from user) and grant access to resources such as allocating space for a new file or creating a network connection (which mainly deals with hardware). Kernels use a system call (or syscall) interface to handshake with applications [Applications ==> syscall(INTERFACE) ==> Kernel]. At the user level the device details are not visible. The kernel recognizes what a device is (eg. I/O devices,RAM etc.) and how to communicate with it at the lowest level.
Generally, the boot loader starts executing the kernel in supervisor mode. The kernel then initializes itself and starts the first process. After this, the kernel does not typically execute directly, but only in response to external events (e.g., via system calls used by applications to request services from the kernel).

Popularity: 27% [?]

3D modelling and animation with Open Source Software Blender

Do you think you could have created AVATAR if you don’t had to pay hefty sum for the licenses of Autodesk 3D max or the Adobe Creative Suite they may have used. Then here is Free and Open Source 3D content application for you. Yeah, it’s BLENDER 3D. (I know my earlier promise is a bit exaggeration)

Blender is a 3D content creation suite available free under the GNU General Public License. Blender is simply an incredible 3D modeling and animation program that provides you with everything for your own Pixar Movie. Blender is available for most of the Operating System used today. The interface though seem to be complicated actually provides more room for personalizing your interface compared to other usual commercial softwares. Don’t worry if you are not familar with this application. The Official Website of blender provides excellent tutorials for beginners in every aspects. The comparison of blender with other 3D applications can be found at CGS. Also don’t forget to check out these cool works done using Blender.


Installation of Blender in Ubuntu

In Ubuntu, Blender can be easily installed with the command

sudo apt-get install blender

Check out this short movie made with Blender

Kajimba – snippets from Kajimba on Vimeo.

Popularity: 19% [?]

Tuesday, March 9, 2010 Categorized under: Open Source, Tech Buzz
Author: Krishnaprasad Krishnaprasad Krishnaprasad

Technical Procedure To Set Up the Virtual Supercomputer

Hope you have read about the Overview on setting up Virtual Computer Using Boinc.

So now I will explain the technical details behind setting up of a super computer in the academic campus.

There are four main steps involved in this:

  • Setting up a BOINC server.
  • Creating grid of trusted nodes.
  • Setting up volunteer computing segment.
  • Integration and Finalization.

    1) Setting up BOINC server:

    We need a server dedicated to manage the virtual super computer. Intel dual Xeon or AMD Opteron will be a nice choice. Internet connection should be reliable and server must have a static IP. At least 2 GB of RAM, and 40 GB of free disk space, UPS power supply, RAID disk configuration, hot-swappable spares, temperature-controlled machine room, etc and do everything  to make it secure. A midrange server computer like dell poweredge will do. Put the entire system behind a firewall. Switch of ports like ftp and telnet that are not in use.

    Software requirements:

    • VMware Player
    • BOINC Server Virtual Machine

    VMware Player is a freeware virtualization software product from VMware, Inc. (vmware.com). The player can run virtual machines, ie, it will create a virtual environment in the system. For example you can virtually run windows in Linux or vice versa provided you have appropriate virtual machines. You can download the BOINC server virtual machine from boinc.berkely.edu. Download and run the BOINC VM(847MB) in VMware player in the server to get started.

    So now that we have a server with BOINC virtual machine running on it, its time to move on to the grid creation part.

    2) Creating grid of trusted nodes

    Although BOINC was originally designed for volunteer computing, it can be configured to work for grid computing.

    The steps in creating a BOINC-based grid are:

    • Modify preferences of workunit (computation to be performed) from th BOINC server to disable redundant processing. Since a grid will contain only trusted nodes, redundancy is not necessary.
    • Create an account with the general preferences enforced for the desktop grid. Clients can be remotely monitored and controlled if necessary.
    • Configure project to disable account creation. New account creation is for the volunteer computing segment and we do not require it here.
    • Create a custom installer that includes the desired configuration files.
    • Deploy the installer in each system in the lab and other trusted computers.

    So now we have setup each the node in grid segment. Note that our Economic virtual campus supercomputing facility combines the benefits of both Desktop grid computing and volunteer computing. We connect the trusted systems (like lab) to the desktop grid part and other non trusted (student laptops and misc PCs) system to the volunteer computing segment. Now we move to setup the volunteer computing segment.

    3) Creating the volunteer computing segment

    As BOINC is specially designed for volunteer computing, much change is not necessary to be made to BOINC client.

    Following similar procedure setup another custom installer with

    • Account creation enabled
    • Redundancy set up to a desired value
    • Other preference parameters setup to suit specific needs.
    • Ask students and faculty to install this custom client.

    4) Integration and Finalization

    Connect systems to form, desktop grid. Let lab systems be ON whenever computing power is desired. Distribute the volunteer client to all non- trusted units in VCSF ( Eg: Student laptops). Let them connect when they power on their systems. The whole network is connected by wired or Wi-Fi LAN.

    THE CLIENT SIDE

    The volunteers who are ready to contribute to the project should be aware of their CPU usage of BOINC.

    First pic is the screen shot of CPU usage of my system before installing BOINC. The average CPU usage of your computer will be less than 20% approximate in windows vista and less than 5% in windows XP. Since this processor idle time is used for processing supercomputing tasks this will rise up.

    Second shows the CPU usage graph after installing BOINC.  You can notice that the CPU usage rise to 100%. I was contributing my CPU to SETI@home project, the search for extra terrestrial intelligence.

    Popularity: 18% [?]

    Page 1 of 212