System programming
X Window System Programming with Tcl and Tk
Anyone who has ever programmed X applications through the Xlib interface, or the arcane X Toolkit Intrinsics, or even Motif, knows that it is an experience that cannot be fully appreciated without beating one's head against the desk several times an hour. X programming at the C level can often be quite complex, forcing the programmer to concentrate on messy technical issues instead of simply building an interface. (Of course, the tradeoff for this complexity is power and flexibility.) That's why we have Tcl and Tk.
Tcl (Tool Command Language) is an interpreted script language not unlike C Shell or Perl. It provides all of the basic facilities that you'd expect in such a language: variables, procedures, loops, file I/O, and so forth; nothing too flashy or bizarre. If you've ever written shell scripts you'll find Tcl quite easy to pick up.
What makes Tcl special is that it can be embedded in other applications. That is, the Tcl interpreter is a library of C routines which you can call from your own program. For example; let's say that you're writing a debugger, similar in nature to gdb.You need routines to allow the user to enter commands (such as "step 10" or "breakpoint foot c:23") at a prompt. You'd also like to allow the user to customize the debugging environment by writing new command procedures or modifying state variables. A good way tohandle the user interface would be with Tcl. You can link the Tcl interpreter to your application, and all of the features of that language will be available. The user's commands, entered at the debugger prompt, would be executed by the Tcl interpreter, which could call C functions that you have written. If the user needs to customize aspects of the application, they can write Tcl scripts to implement new commands, and so forth.
Full Article: http://www.linuxjournal.com/article/0008
Outsourcing Device Driver Development Offshore
What is device driver? A device driver is a collection of subroutines and data within the kernel that constitutes the software interface to an I/O device. SolovatSoft has experience in development of both types of device drivers: character and block drivers.In a past some of our development managers have worked with Logitech in research and development of the latest input devices: Sensor Touch Pad (for pen and finger), analog joysticks (the cursor navigated based on earth gravitation), precise mechanical mouse, calculation algorithms for data output from field sources, etc.
Our developers have received several patents in this field and in particular in the analog joystick design area.
Below is a list of device driver areas where our team has domain expertise:
Win32, Windows CE at DDK level
Linux at kernel and device driver level
Porting device drivers between any of the above OS
Symbian EPOC-32 mobile OS
Serial devices: RS232C, RS422, IrDA and USB
Plug 'n PlaySolovatSoft has a well-defined and mature application development process which comprises the complete SDLC from business case analysis to maintenance and support of the application. This process supports a distributed development environment where project workload can be effectively divided between the offshore and onsite teams located across the wolrd.
