Nokia N900 - A mobile communicator that runs on Linux

Nokia has a history of rolling out Internet tablets. There was Nokia 770, Nokia N800, N810, and now the company's latest offering Nokia N900.

Nokia N900 is positioned not exclusively as an Internet tablet. The manufacturer claim it is a mobile computer - one that is as sleek as, and behaves like a mobile phone but which has the power and capabilities of a desktop PC. You can consider Nokia N900 to be a metamorphosis of a desktop PC and a mobile phone, thereby embracing the best of both the worlds.



But what excites me the most is what lies underneath this technological wonder from Nokia. You guessed it right, Nokia N900 runs on Linux. This gives this gadget true multitasking capabilities that are not found in its far more popular contender the Apple iPhone.

Technical Specifications of Nokia N900


Let's throw a glance at the technical specifications of this work of art called N900.
  • 32 GB internal storage. Expandable to an additional 16 GB via micro SD memory card extension.
  • Total available memory - 1 GB ~ (256 MB RAM + 768 MB Virtual Memory)
  • Weight inclusive of battery - 181 gms
  • Touch screen
  • Side slide full keyboard
  • 800x480 pixel resolution (WVGA)
  • 5 megapixel Carl Zeiss autofocus camera with dual LED flash.
  • USB 2.0, Bluetooth, Integrated A-GPS receiver, GPRS, EDGE, WCDMA, WLAN, TV out ... you name it, N900 has it.
  • N900 runs Maemo - A Linux Operating system which brings the power of computers to mobile devices. Check out the features of Maemo to know more.
Full specs of Nokia N900 can be found here.

Nokia N900 in Pictures


The following images will give you an idea on how sleek this device looks. Shouldn't we call it an Apple iPhone killer in the making ?

Nokia N900 QWERTY Keyboard

Nokia N900

Nokia N900

Nokia N900

Nokia N900

Nokia N900 Interaction Documentary


Watch and listen to what the very first users of Nokia N900 have to say about this device.

Slackware 13.0 released with 64 bit support

Slackware 13.0 has been released. This new version of Slackware is considered a landmark release and contains many new features. The most prominent are as follows ...

  1. An official 64-bit port of Slackware
  2. Linux kernel 2.6.29.6 is the default kernel in Slackware 13.
  3. KDE 4 (version 4.2.4) is the default desktop. Previous version of Slackware had KDE 3 bundled with it.
  4. Xfce 4.6.1 desktop.
  5. X11 based on the X.Org Foundation's modular X Window System.
  6. Support for fully encrypted network connections with OpenSSL,
    OpenSSH, OpenVPN, and GnuPG.
  7. Latest version of Firefox (3.5.2) web browser
  8. An extra repository contain complied and ready to run software such as Java 2, Intel video drivers for X, an Mplayer browser plugin and so on.
... and much more.

You can download Slackware 13 from one of its official mirror sites. You may also choose to support the continued development of Slackware Linux by buying a set of CDs or a DVD set from the Slackware store.

I have fond memories of installing and using Slackware on my machine. Slackware is known for its KISS philosophy and adherence to a BSD style file layout for its system initialization files.

Printer ready label layouts from command line

labelsIt is easy to create labels of different standard sizes from within OpenOffice.org. And OpenOffice.org is my choice for creating labels because I am used to working in it. However, there are a number of utilities in Linux which make creation of labels of different sizes a clinch.

More specifically, gLabels and LabelNation come to my mind. gLabels is a GUI application which provides tools to design your labels, where as LabelNation is a Python script which should be run from the command line.

Various manufacturers of labels have different IDs denoting specific sizes of their labels. And keeping track of these IDs is a chore for ordinary users. LabelNation comes pre-configured to handle more than 50 different standard label sheets from Avery and other manufacturers, but you can also specify your own layouts if needed.

Nathan Willis at WorldLabel (A manufacturer of labels) blog has written a very good tutorial describing how to design labels using the LabelNation python script. One thing I really like about this command line solution is the speed and accuracy with which you can create labels and populate data in it. For example, you have an input file which contain all the data you need to enter in the labels you create separated by a specific delimiter. The output is a postscript file which can be viewed in any post script viewer.

Windows 7 Sins - An FSF campaign

Preceding the upcoming release of Microsoft Windows 7, FSF is spearheading a campaign highlighting the 7 sins being committed by Microsoft in monopolizing the OS market. The campaign outlines seven major areas where proprietary software in general and Microsoft Windows in particular hurt all computer users:

  1. Invading privacy
  2. Poisoning education,
  3. Locking users in,
  4. Abusing standards
  5. Leveraging monopolistic behaviour
  6. Enforcing Digital Restrictions Management (DRM), and
  7. Threatening user security.
FSF has rolled out a new website called Windows7sins.org which explains the preceding 7 sins in more detail. The aim of this campaign is to alert decision makers in various government institutions, NGOs, schools and colleges about the hazards of opting a proprietary solution and in turn encourage them to embrace an equivalent Free solution instead.

Even though the website is named Windows 7 sins, this campaign also hopes to make businesses and computer users aware of the growing dangers of proprietary software from both Microsoft and other companies such as Apple and Adobe.

Read the FSF press release.

Two years back, FSF had started a similar campaign named Bad Vista to caution people from embracing Microsoft Vista. Of course, Vista has since been known as an OS in transition, but one which was marketed by Microsoft as the best thing that could happen to computer users since sliced bread.

Who writes Linux and Who supports it

A study was conducted on the Linux development statistics by the Linux Foundation and these were its findings.

  • More than 70 percent of total contributions to the kernel come from developers working at a range of companies including Red Hat, IBM, Novell, Intel, Oracle, Fujitsu, among many others.
  • Nearly 1000 developers working for more than 200 corporations are involved in writing code for Linux kernel. And since 2008, the number of individual developers have increased by 10%.
  • A net 2.7 million lines of code have been added to the Linux kernel since April 2008.
  • An average of 10,923 lines of code are added each day. However, an average of 5,547 lines of code are removed as well.
The study concludes that the pace of Linux development continues to grow with more companies and more individuals supporting Linux kernel development with every cycle. Read the white paper (PDF document) to know the details.

Good news for Linux enthusiasts indeed.

[Source : Linux Foundation, Via: Cnet News]

Rename extension of all files in a folder

Here is a way to do this from command line

ls *.sh | sed 's/\(.*\)\.sh/ & \1.pl/' | xargs -L1 mv


Ok there are four commands here all piped.

ls
sed
xargs
mv

I used ls to filter all .sh files.

I used sed to substitute all .sh to .pl. What it does is creates argument for mv command. Test it with ls *.pl | sed 's/\(.*\)\.pl/ & \1.sh/'

I used xargs with mv to move sh to pl. the –L switch is used to get input form sed pipe

How do I save or redirect stdout and stderr into different files?

Q. I need to run a program called oraMon.pl. However this program is run from cron job. It report error to stderr and normal output to stdout. How do I save stdout, stderr and both into 3 separate log files?

A. It is not that hard if you know howto redirect stderr, stdout and a small command called tee.

=> fd0 is stdin
=> fd1 is stdout
=> fd2 is stderr

There are two formats for redirecting standard output and standard error:
&>word
and
>&word

For example anything written to fd2 to the same place as output to fd1, you will use:
2>&1

tee command read from standard input and write to standard output and file.

So to send stderr to /tmp/errors.log, stdout to /tmp/output.log and both to /tmp/final.log, type as follows:

((/path/to/oraMon.pl 2>&1 1>&3 | tee /tmp/errors.log) 3>&1 1>&2 | tee /tmp/output.log) > /tmp/final.log 2>&1

mtime ctime and atime

Unix keeps 3 timestamps for each file: mtime, ctime, and atime. Most people seem to understand atime (access time), it is when the file was last read. There does seem to be some confusion between mtime and ctime though. ctime is the inode change time while mtime is the file modification time. "Change" and "modification" are pretty much synonymous. There is no clue to be had by pondering those words. Instead you need to focus on what is being changed. mtime changes when you write to the file. It is the age of the data in the file. Whenever mtime changes, so does ctime. But ctime changes a few extra times. For example, it will change if you change the owner or the permissions on the file.

Let's look at a concrete example. We run a package called Samba that lets PC's access files. To change the Samba configuration, I just edit a file called smb.conf. (This changes mtime and ctime.) I don't need to take any other action to tell Samba that I changed that file. Every now and then Samba looks at the mtime on the file. If the mtime has changed, Samba rereads the file. Later that night our backup system runs. It uses ctime, which also changed so it backs up the file. But let's say that a couple of days later I notice that the permissions on smb.conf are 666. That's not good..anyone can edit the file. So I do a "chmod 644 smb.conf". This changes only ctime. Samba will not reread the file. But later that night, our backup program notices that ctime has changes, so it backs up the file. That way, if we lose the system and need to reload our backups, we get the new improved permission setting.

Here is a second example. Let's say that you have a data file called employees.txt which is a list of employees. And you have a program to print it out. The program not only prints the data, but it obtains the mtime and prints that too. Now someone has requested an employee list from the end of the year 2000 and you found a backup tape that has that file. Many restore programs will restore the mtime as well. When you run that program it will print an mtime from the end of the year 2000. But the ctime is today. So again, our backup program will see the file as needing to be backed up.

Suppose your restore program did not restore the mtime. You don't want your program to print today's date. Well no problem. mtime is under your control. You can set it to what ever you want. So just do:
$ touch -t 200012311800 employees.txt
This will set mtime back to the date you want and it sets ctime to now. You have complete control over mtime, but the system stays in control of ctime. So mtime is a little bit like the date on a letter while ctime is like the postmark on the envelope.

The find command uses arguments like:
-mtime -2
-mtime +2
-mtime 2

There are -ctime and -atime options as well. Since we now understand the differences among mtime, ctime, and atime, by understanding how find uses the -mtime option, the other two become understood as well. So I will describe find's use of the -mtime option.

As you probably know, the find command can run for minutes or hours depending on the size of the filesystem being searched. The find command makes a note of its own start time. It then looks at a file's mtime and computes how many seconds ago the file was modified. By dividing the seconds by 86,400 (and discarding any remainder), it can calculate the file's age in days:

Code:
0 days in seconds: 0 - 86399
1 day in seconds: 86400 - 172799
2 days in seconds: 172800 - 259159

So now that we know how many days ago a file was modified, we can use stuff like "-mtime 2" which specifies files that are 172800 to 259159 seconds older than the instant that the find command was started.

"-mtime -2" means files that are less than 2 days old, such as a file that is 0 or 1 days old.

"-mtime +2" means files that are more than 2 days old... {3, 4, 5, ...}

It may seem odd, but +0 is supposed to work and would mean files more than 0 days old. It is very important to recognize that find's concept of a "day" has nothing to do with midnight.

All about Unix Date command

Convert unix timestamp to date

# date -d @1221256800 "+%Y-%m-%d %T"
2008-09-13 00:00:00


Convert a date (YYYYMMDD) to unix timestamp

# date -d "20080913" +%s
1221256800

List only directories

ls -F $1 | grep \/ | sed -e 's/\/$//g'

Good FAQ on Unix/Solaris

This is a good website

http://www.unixguide.net/sun/faq/

WLST Scripting: Know More on it: Eg.

### Script to create WebLogic Domain(s) from csv file
02.### Reusable Definitions
03.def buildDomain():
04. ### Read Basic Template
05. readTemplate(WL_HOME+"/common/templates/domains/wls.jar")
06. cd('Servers/AdminServer')
07. set('ListenAddress', adminServerAddress)
08. set('ListenPort', int(adminServerPort))
09. ### Create Admin User
10. cd('/')
11. cd('Security/base_domain/User')
12. delete('weblogic','User')
13. create(adminUser,'User')
14. cd(adminUser)
15. set('Password',adminPassword)
16. set('IsDefaultAdmin',1)
17. ### Write Domain
18. setOption('OverwriteDomain', 'true')
19. writeDomain(domainLocation+'/'+domainName)
20. closeTemplate()
21.def printConfirmation():
22. ### Print Confirmation
23. print ""
24. print "Created Domain With Following Values"
25. print "Domain Name = %s " % domainName
26. print "Domain Location = %s " % domainLocation
27. print "Admin User = %s " % adminUser
28. print "Admin Password = %s " % adminPassword
29. print "Admin Server Address = %s " % adminServerAddress
30. print "Admin Server port = %s " % adminServerPort
31.### Executable Script
32.### CreateDomain.py
33.import sys
34.### Define constants
35.WL_HOME = "/products/beaSB/wlserver_10.0"
36.### Read the command-line arguments
37.argslength = len(sys.argv)
38.if argslength < 2 :
39. print '==>Insufficient arguments'
40. print '==>Syntax: java weblogic.WLST CreateDomain.py csv.file'
41. exit()
42.else:
43. ### Read the csv file
44. fileName = sys.argv[1]
45. print('Reading File \"' + fileName + '\"' )
46. f = open(fileName)
47. try:
48. for line in f.readlines():
49. ### Strip the comment lines
50. if line.strip().startswith('#'):
51. continue
52. else:
53. ### Split the comma seperated values
54. items = line.split(',')
55. items = [item.strip() for item in items]
56. if len(items) != 6:
57. print "==>Bad line: %s" % line
58. print "==>Syntax: domainName, domainLocation, adminUser, adminPassword, adminServerAddress, adminServerPort"
59. else:
60. (domainName, domainLocation, adminUser, adminPassword, adminServerAddress, adminServerPort) = items
61.
62. ### Call the definition buildDomain
63. buildDomain()
64. ### Call the definition printConfirmation
65. printConfirmation()
66. except Exception, e:
67. print "==>Error Occured"
68. print e
69.exit()

Monitoring JDBC Connection pool using WLST

Here is a sample:


def jdbcConnectionPoolStatus(server_name):
try:
cd('/ServerRuntimes/'+server_name+'/JDBCConnectionPoolRuntime')
print '---------------------- JDBC Connection pool ---------------------'
jdbcPool = ls()
for jdbcname in jdbcPool.split():
if jdbcname != 'drw-':
cd('/ServerRuntimes/Desktop_managedServer_1/JDBCConnectionPoolRuntime/'+jdbcname)
print 'Connection pool ' + jdbcname + ' is ' + cmo.getState()
except:
print "This Server has no JDBC Connection Pool"

JConsole JMX to Weblogic

Hello,

We found a workaround that doesn't need to compile and run a proxy.

Just set JAVA_HOME and BEA_HOME and run:

RedHat
jconsole -J-Djava.class.path=$JAVA_HOME/lib/jconsole.jar:/usr/bea40/wlserver_10.3/server/lib/wljmxclient.jar -J-Djmx.remote.protocol.provider.pkgs=weblogic.management.remote

Windows
jconsole -J-Djava.class.path=%JAVA_HOME%\lib\jconsole.jar;%BEA_HOME%\wlserver_10.3\server\lib\wljmxclient.jar -J-Djmx.remote.protocol.provider.pkgs=weblogic.management.remote


Connection string:
service:jmx:rmi:///jndi/iiop://localhost:7001/weblogic.management.mbeanservers.domainruntime



----------------------------------------


1. After having the same issue, it turned out that it is just a CLASSPATH issue when using jConsole from the latest SUN JVM:

a) Working for connect string starting with 'service:jmx:rmi:///jndi/iiop://...' only.
set JAVA_HOME=D:\SUN_jdk1.6.0_13
set PATH=%JAVA_HOME%\bin;%PATH%
jconsole -J-Djava.class.path=%JAVA_HOME%\lib\jconsole.jar;%bea_home%\wlserver_10.3\server\lib\wljmxclient.jar

b) Working for connect string starting with 'service:jmx:rmi:///jndi/iiop://...' and 'service:jmx:iiop:///jndi/iiop://...' .

set JAVA_HOME=D:\SUN_jdk1.6.0_13
set PATH=%JAVA_HOME%\bin;%PATH%
jconsole -J-Djava.class.path=%JAVA_HOME%\lib\jconsole.jar;%bea_home%\wlserver_10.3\server\lib\weblogic.jar

NOTE: The RMI or IIOP in the connect string!

c) I tried the following URLs that worked fine:

* service:jmx:rmi:///jndi/iiop://localhost:7001/weblogic.management.mbeanservers.runtime

* service:jmx:iiop:///jndi/iiop://localhost:7001/weblogic.management.mbeanservers.runtime

* service:jmx:rmi:///jndi/iiop://localhost:7001/weblogic.management.mbeanservers.domainruntime

* service:jmx:iiop:///jndi/iiop://localhost:7001/weblogic.management.mbeanservers.domainruntime

2. In addition, the parameter -J-Djmx.remote.proto.provider.pkgs=weblogic.management.remote can be set if the current version of the JVM has any issue:

jconsole -J-Djava.class.path=%JAVA_HOME%\lib\jconsole.jar;%bea_home%\wlserver_10.3\server\lib\wljmxclient.jar -J-Djmx.remote.proto.provider.pkgs=weblogic.management.remote

I hope this helps a bit!

Monitoring JDBC Connection pool using WLST : Betterway

try:
mBeans=home.getMBeansByType("JDBCConnectionPoolRuntime")
print '---------------------- JDBC Connection pool ---------------------'
print
for bean in mBeans:
if server_name != bean.getObjectName().getLocation():
continue
print bean.getName() + " is " + str(bean.getState())
except:
print "This server has no Messaging Bridge"

Monitoring Messaging Bridges

try:
mBeans=home.getMBeansByType("MessagingBridgeRuntime")
print '---------------------- Messaging Bridge ---------------------'
print
for bean in mBeans:
if server_name != bean.getObjectName().getLocation():
continue
print bean.getName() + " is " + str(bean.getDescription()) + " and " + str(bean.getState())
except:
print "This server has no Messaging Bridge"

Application Status through WLST

Here is a way.

try:
cd('/ServerRuntimes/'+server_name+'/ApplicationRuntimes')
print '---------------------- Application status ---------------------'
apps = ls()
for appname in apps.split():
if appname != 'drw-':
cd('/ServerRuntimes/'+server_name+'/ApplicationRuntimes/'+appname)
if getMBean('ComponentRuntimes'):
# we may not have a component runtime, so check first
cd('/ServerRuntimes/'+server_name+'/ApplicationRuntimes/'+appname+'/ComponentRuntimes')
components=ls()
for component in components.split():
if not component.endswith('.jar'):
if component != 'drw-':
cd('/ServerRuntimes/'+server_name+'/ApplicationRuntimes/'+appname+'/ComponentRuntimes/'+component)
status=str(get('Name'))+': '
istate=cmo.getDeploymentState()
if istate == 0:
istate='UNPREPARED'
if istate == 1:
istate='PREPARED'
if istate == 2:
istate='ACTIVE'
if istate == 3:
istate='NEW'
print component + ' has status : ' + istate
except WLSTException,e:
# this typically means the server is not active, just ignore
print "This Server has no Application"

Advanced Solaris Command

Process stats
– cputrack - per-processor hw counters
– pargs – process arguments
– pflags – process flags
– pcred – process credentials
– pldd – process's library dependencies eg.pldd `pgrep syslog`
– psig – process signal disposition
– pstack – process stack dump eg. pstack `pgrep syslog`
– pmap – process memory map
– pfiles – open files and names
– prstat – process statistics
– ptree – process tree
– ptime – process microstate times
– pwdx – process working directory



Process control
– pgrep – grep for processes
– pkill – kill processes list
– pstop – stop processes
– prun – start processes
– prctl – view/set process resources
– pwait – wait for process
– preap – reap a zombie process
- pfiles - Find Files Opened by a Process eg. pfiles `pgrep syslog` | pg


Process tracing/debugging
– abitrace – trace ABI interfaces
– dtrace – trace the world
– mdb – debug/control processes
– truss – trace functions and
system calls



Kernel tracing/debugging
– dtrace – trace and monitor kernel
– lockstat – monitor locking statistics
– lockstat -k – profile kernel
– mdb – debug live and kernel cores



System stats
– acctcom – process accounting
– busstat – Bus hardware counters
– cpustat – CPU hardware counters
– iostat – IO & NFS statistics
– kstat – display kernel statistics
– mpstat – processor statistics
– netstat – network statistics
– nfsstat – nfs server stats
– sar – kitchen sink utility
– vmstat – virtual memory stats

Awk script to create Insert statements

#!/usr/bin/awk -f
BEGIN {
# change the record separator from newline to nothing
#RS=""
# change the field separator from whitespace to newline
#FS="n"

}
{
# print the second and third line of the file
if ($1=="") $1 = "NULL";
if ($2=="") $2 = "NULL";
if ($3=="") $3 = "NULL";
if ($4=="") $4 = "NULL";
print "insert into mytable (someno,sequance,1_id1,2_id2,3_id3)values(501," NR "," $2 "," $3 "," $4")
;"


}
END {

}

Swing using Jython

from java import awt
from pawt import swing

labels = ['7', '8', '9', '+',
'4', '5', '6', '-',
'1', '2', '3', '*',
'0', '.', '=', '/' ]

keys = swing.JPanel(awt.GridLayout(4, 4))
display = swing.JTextField()

def push(event): # Callback for regular keys
display.replaceSelection(event.actionCommand)

def enter(event): # Callback for '=' key
display.text = str(eval(display.text))
display.selectAll()

for label in labels:
key = swing.JButton(label)
if label == '=':
key.actionPerformed = enter
else:
key.actionPerformed = push
keys.add(key)

panel = swing.JPanel(awt.BorderLayout())
panel.add("North", display)
panel.add("Center", keys)
swing.test(panel)

Swing Frame using Jython

from javax.swing import JButton, JFrame

class MyFrame(JFrame):
def __init__(self):
JFrame.__init__(self, "Hello Jython")
button = JButton("Hello", actionPerformed=self.hello)
self.add(button)

self.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
self.setSize(300, 300)
self.show()

def hello(self, event):
print "Hello, world!"

if __name__=="__main__":
MyFrame()

Grinder Load Testing Framework

1) To start the agent issue below command
java -cp "E:\apps\grinder-3.2\grinder-3.2\lib\grinder.jar" net.grinder.Grinder

2) To start the console
java -cp "E:\apps\grinder-3.2\grinder-3.2\lib\grinder.jar" net.grinder.Console

You have to set classpath for grinder.jar and jython.jar before this.

This assumes grinder is installed at E:\apps\grinder-3.2

Use TCPProxy to create a macro of the activity of testing

Here is a sample grinder.properties file

grinder.logDirectory=log
grinder.threads=5
grinder.processes=1
grinder.runs=0
grinder.script=mailcom.py

INITTAB changes

In case you make changes to inittab file you need not reboot the system. You can gibe below command to make the chane effective.

kill -HUP 1

This will make effect the change you have made.

Good Ant Tutorial

Here is a good Ant Tutorial which teach you how to write modular build

http://i-proving.ca/space/Technologies/Ant+Tutorial

Some other good Ant scripts

Here are some good ant scripts

http://www.java2s.com/Code/Java/Ant/CatalogAnt.htm

Learn how to create Menu in Swing

import java.awt.*;import java.awt.event.*;
import javax.swing.*;import java.util.*;import java.io.*;import java.util.*;import java.lang.*;

public class JZip {

public Container createContentPane() {
//Create the content-pane-to-be.
JPanel contentPane = new JPanel(new BorderLayout());
contentPane.setOpaque(true);

//Create a scrolled text area.
JTextArea output = new JTextArea(5, 30);
output.setEditable(false);
JScrollPane scrollPane = new JScrollPane(output);

//Add the text area to the content pane.
contentPane.add(scrollPane, BorderLayout.CENTER);
return contentPane;
}

public JMenuBar createMenuBar() {
JMenuBar menuBar;
JMenuItem menuItem;
JRadioButtonMenuItem rbMenuItem;
JCheckBoxMenuItem cbMenuItem;

//Create the menu bar.
menuBar = new JMenuBar();

//Build the first menu.
JMenu fileMenu = new JMenu( "File");
JMenu editMenu = new JMenu("Edit");
JMenu exitMenu = new JMenu("Exit");

fileMenu.setMnemonic(KeyEvent.VK_F);
fileMenu.getAccessibleContext().setAccessibleDescription("This is Description");
exitMenu.setMnemonic(KeyEvent.VK_X);

JMenuItem fileNewMenuItem = new JMenuItem("New", KeyEvent.VK_N);
JMenuItem fileOpenMenuItem = new JMenuItem("Open", KeyEvent.VK_N);

fileMenu.add(fileNewMenuItem);
fileMenu.add(fileOpenMenuItem);

menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(exitMenu);
return menuBar;
}

/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("Jzip");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create and set up the content pane.
JZip mainGUI = new JZip();
frame.setJMenuBar(mainGUI.createMenuBar());
frame.setContentPane(mainGUI.createContentPane());

//Display the window.
frame.setSize(450, 260);
frame.setVisible(true);
}

public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}

Some very good Links for Unix Server Admins

http://www.crucialp.com/resources/tutorials/dedicated-server/

Weblogic Admin Utility

1) Open Console or terminal in case of Unix

2) Run command setWLSEnv.bat(setWLSEnv.sh)

3) java weblogic.Admin -url AdminHost:7001 -username weblogic

PPP Server

1) Edit inittab and add following line

s1:2345:respawn:/usr/sbin/mgetty ttyS0

2) Change pppd to setuid

chmod 4755 /usr/sbin/pppd

3) Create /etc/ppp/pap-secrets file with this content

#user server secret addrs
* * """" *
ullas * - *
root * - *
bin * - *
deamon * - *

4) Create file /etc/ppp/options.ttyS0

192.168.0.1:192.168.0.100

5) Create file /etc/ppp/options.server

-detach
asyncmap 0
modem
crtscts
lock
require-pap
refuse-chap
login
proxyarp
ms-dns 192.168.0.1

6) Check /etc/pam.d/login and make sure the following line is commented out:

auth required pam_dialup.so
insert a # in front of the line to comment out.

7) In /etc/mgetty+sendfax/login.config add following file.

/AutoPPP/ - @ /usr/sbin/pppd file /etc/ppp/options.server

8) In /etc/bashrc file add the following line

alias ppp="exec /usr/sbin/pppd -detach"


9) Now create a normal user as follows.

elango:x:522:100:Elangovan:/tmp:/etc/ppp/ppplogin

10) Now create /etc/ppp/ppplogin

#!/bin/sh
mesg -n
stty -echo
exec /usr/sbin/pppd crtscts modem passive auth

CVS Setup

1) First we need to create enviornment variable called CVSROOT and point it to the root of the repository

export CVSROOT=/home/cvsroot

It can have othernames than cvsroot

2) Now we need to initialise the repository with the following command. Be root to do this.

cvc init

3) Next we have to setup files, directories and then define a module.

Suppose I have a directory called "staff/resume" with some files that should be added to CVS.
To import these files go to staff/resume directory and issue this command

cvs import -m "Import Source" staff/resume thestaff start
cvs checkout CVSROOT/modules

Now Alter the modules file in root directory (not repository) and add this
line.

resume staff/resume

Now save the file and issue the command

cvs commit -m "Added resume module." modules

Now this creates our needed file in CVSROOT. Now we can delete the original
staff/resume directory.

One way is to rm -rf staff. But a better and safer way is

cvs release -d staff
4) Now we should give proper unix group and user permission for modules
directory as this determines who can commit changes. It means that modules
directory should be owned by group who has permission to commit change.
Also group must have write permission if they have permission to update CVS.


5) To make the changes you have made locally into the repository use command

cvs commit staff

or to update

cvs update staff

Normally its good to update the cvs and then give command commit.

6) To create login authentication for cvs do the following.
a) Create a /etc/xinetd.d/cvspserver file if it does not exist, and add the
following.

service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/usr/cvsroot pserver
}

Then restart xinetd with /usr/xinetd restart

b) Now create password file in $CVSROOT/CVSROOT/passwd with following content

anonymous:
ullas:$1$75g0K7Vm$ULM55Jj/b6QvVB8RxAlk5/
vikas:@#$$$%7677665566@45667777665555667:ullas
suvas:233$$%7677665566@45667777665555667:ullas

Here password is unix crypt.
Here ullas will have permission if he supplies password. Vikas user can login
with password even if he does not have an account in server and he will run as
ullas in this case. Simalar is the case with Suvas.

c) Now you can login with following command

cvs -d :pserver:anonymous@localhost:/home/cvsroot co staff
or
cvs -d :pserver:ullas:sallut123@localhost:/home/cvsroot co staff

d) You can make this as your CVSROOT enviornment variable in .bash_profile
like the comman below.

CVSROOT=:pserver:ullas:sallut123@localhost:/home/cvsroot co staff

e) To create readonly access to CVS create a file $CVSROOT/CVSROOT/readers
with following contents.

ramesh
sujatha
suvas

Now above three persons becomes read only members of cvs.

Cyrus Imap Server

1) Cyrus-Imap is a imap/pop3 mail System which can use sendmail or postfix as MTA

2) It support SIEVE for server side email filtering

3) Authentication available from SASL library like Kerberos_v4, GSSAPI. CRAM-MD5, DIGEST-MD5, OPT, PLAIN, STARTTLS.

4) Enable these ports in firewall

pop3 110/tcp
imap 143/tcp
imaps 993/tcp
pop3s 995/tcp
sieve 2000/tcp

5) Config files are

/etc/imapd.conf
/etc/cyrus.conf

6) Test using this command if its setup and listining

netstat -an | grep LISTEN

It should list all above port saying that its listining

7) Now to test if it really logs in

cyradm is the tools for logging in as admin and it uses sasl and imap login.
So first create sasl user cyrus with this command

/usr/sbin/saslpasswd2 -c cyrus
Password: (enter your passwd)
Again (for verification): (enter your password)

Now login as user cyrus

/usr/lib/cyrus-imapd/cyradm --user cyrus --server localhost --auth plain
Password: # This is the SASL2 password
IMAP Password: # This is the IMAP password that you need to enter in the
mysql-table »accountusers«
localhost>

That is it.

8) Now to make cyrus as postfix transport edit main.cf and add this line

mailbox_transport = cyrus

9) To SASL Posfix SMTP add following lines in main.cf

smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks,
reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes

10) Add /usr/lib/sasl2/smtp.conf

pwcheck_method: saslauthd

11) The next step is to tell postfix how to find the saslauthd socket:

mv /var/run/sasl2 /var/run/sasl2-old
ln -s /var/run/saslauthd /var/run/sasl2

12) With Fedora Core 3 there is a error in master.cf. Correct it as follows

user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}

Only then delivery to cyrus will work.

Postfix Configuration

1) Main commands are
postalias: Postfix alias databases. This is the program behind the newaliases command
postfix : starting and stopping the mail system, and for some other administrative operations
postcat : displays the contents of Postfix queue files
postconf : displays Postfix main.cf parameters
postdrop : mail posting agent run by the sendmail on systems having no world-writable maildrop queue directory
postkick : makes some internal communication channels available for use in, for example, shell scripts
postlock : provides Postfix-compatible mailbox locking for use in, for example, shell scripts
postlog : provides Postfix-compatible logging for shell scripts
postmap : maintains Postfix lookup tables such as canonical, virtual and others
postsuper: command maintains the Postfix queue

2) Main config file for postfix are
main.cf - This is the main as the name suggests
master.cf - This controls the daemon process

3) Postfix is a MTA which uses SMTP to transfer mails. So enable SMTP in firewall.

4) The main configuration is main.cf. Here see to it at least these are proper

alias_database = hash:/etc/aliases
inet_interfaces = all
mydomain = index.com
mynetworks = 127.0.0.0/8, 192.168.0.0/24
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relay_domains = $mydestination

5) Now try to send mail using mail program. It should work properly.

If Windows is installed after Linux

* Boot with the first Installation CD and type 'linux rescue' in the boot prompt. The installer anaconda will mount RedHat installation under /mnt/sysimage.

* Type 'chroot /mnt/sysimage' in the rescue shell that you get.
* Open '/boot/grub/menu.ls t' in your favourite editor and add the following lines to the end it it.

title Microsoft Windows
rootnoverify (hd0,0)
makeactive
chainloader +1


Note: Its assumed we installed Windows to hda1. If you have doubt do 'fdisk -l /dev/hda' to find the your C:
hda1 -> (hd0,0)
hda2 -> (hd0,1)
and so on.

* Then type 'grub-install /dev/hda'. It will report that installation of GRUB completed.
* Reboot using 'reboot' command and you will be getting GRUB with two entries one for Linux and other for Windows.

Inittab Deleted or error

What happens if you accidentely delete inittab file ?

No Problem just pass the option 'init=/bin/bash' to the kernel while booting. You will
be into the shell directly and you can create an inittab file.

Dialup Permission With KPPP

How to give access permissions to all in order to solve the problem of kppp asking root password when invoked by other than root users.

The problem here is not the permissions of the executable. Its the group / user as which pppd wants to run. On debian, this group is called 'dip'. So adding a user to that group will let him run pppd.

Another thing is that how to give access to other users for particular programs or apps alone , for eg the redhat update manager ( the yum ) req root previliges , but for a particular user i need to relax it ,where to grant permissions in order to do this.

You can setuid root the executable, but instead giving sudo to the user is a much more cleaner / safer way.

Command Line CD Burning

Give these commands

cdrecord -v -eject dev=ATAPI:x,x,x speed=48 driveropts=burnfree /path-to-image/image -name.iso ( For direct IDE writing)

cdrecord -v -eject dev=x,x,x speed=48 driveropts=burnfree /path-to-image/image -name.iso ( For direct SCSI emulated writing)

PS: You need not take any special care for bootable CDs if you are writing the CD from ISO image as the image itself contains the boot information.

Interesing Commands

1) Did you know "w" command will show a list of who does what in the terminals

2) That "last command can be used to see recent login info from wtmp file. eg last ullas shows when ullas has logged in and the terminal info

3) "whatis" can be used to show description of a program. eg whatis perl. But you must create whatis db with makewhatis command

Resizing Partition

Your u could use either of :

1) PartitionMagic
2) resize2fs
3) qtparted (http://qtparted.sourceforge.net/) - A open source PartitionMagic "clone".(Check this out..really works well :-) http://qtparted.sourcreenshot-002-a.jpg)

If you have already resized your partition, all you need to do is
resize your file system. resize2fs will do the job.

IP Forwarding

OK. Here is a simple way to do IP Forwarding if its not enabled by default. Put this in rc.local.

echo "1" /proc/sys/net/ip4/ip _forward

Or you can use the file /etc/sysctl.conf and add the following entry

net.ipv4.ip_forward= 1

Did you lose your Root Password

No Problem.

Add "init=/bin/bash" to the command line of the boot loader (LILO or GRUB). You will be dropped into bash (shell). Type 'passwd'. It will prompt for the new password. Enter a password and remember it .

Package Management

If you have lot of software packages with different versions or if your user should be given control of whatever he wish to install be installed, then look at this package called GNU Stow.

GNU Stow is a program for managing the installation of software packages, keeping them separate (/usr/local/stow/emacs vs. /usr/local/stow/perl , for example) while making them appear to be installed in the same place (/usr/local).

Should have a look at it.

Partition Problem

I had 3 OSs in my system (win 98, win 2000 prof. and Fedora). Unfortunately, I deleted the Linux partition using 'fdisk' utility. During booting, my system shows only the grup prompt. I can't boot / access the other OSs.. Please help me to change the boot loader and access the remaining OSs.

Solution ?

Two ways to do it.

* If you have Windows 98 startup disk, then boot with it and in the command prompt (C:\>) type 'fisk /mbr'. This should restore the boot record for you by cleaning the MBR which has the GRUB.

* If you have Windows 2000 bootable installation disk, boot with it and go for 'Repair' option. Once you are in the recovery console, type 'fixmbr' to restore your Windows 2000 boot record to MBR.

Message Of the Day

Here is a way to set MOTD

If you are using xdm add the following line to /etc/X11/xdm/Xstartu p.

xmessage -file /etc/motd -geometry 640x480

Power of WGET

To download anything from website use wget command line utility. Here is an example

wget -p -r -np http://gentoo.org/doc/en

* -p: also download any images,.. linked from the pages downloaded
* -r: recurse - default depth is 5
* -np: Download from the directory given, no parent files

Load Of a system

How to determine load of a system.

SAR (system activity report)

Type sar at command prompt. It gives lot of information

No of Processes running

Quick tell me how many processes are running on the server ?

# ls /proc | grep "^[0-9]" | wc -l

Or

# ps -aux | wc -l

Create a CD Boot

I read this on a news group

Create a Directory like:
mkdir -p myinstallcd/dosutils /autoboot

Copy the image to where you want the image to be:
cp bootdisk.img myinstallcd/dosutils /autoboot

Now create ISO of the image and make it bootable.

mkisofs -b dosutils/autoboot/bo otdisk.img -c boot.cat -r -o myinstallcd.iso
myinstallcd

Finally, burn the image:
cdrecord -v speed=16 dev=0,0,0 -data myinstallcd.iso

Adding Truetype Fonts

How to install truetype font in linux ?

1) We need to create a directory first to hold all truetype fonts. Normally i create it at /usr/local/fonts/ttf

2) Then copy all truetype fonts into this directory.

3) Now cd /usr/local/fonts/ttf directory.

4) Enter the following commands

# ttmkfdir > fonts.scale
# mkfontdir

5) Now if you view the directory you will see 2 new files "fonts.scale" and "fonts.dir"

6) Now Redhat users can use the following command

chkfontpath -a /usr/local/fonts/ttf

7) If you don't have the chkfontpath command, you will have to edit the file /etc/X11/xfs/config (or /etc/X11/fs/config), find the line which starts with "catalog=", and add your directory at the end of the list, separated by a comma.

8) That's it! You can test it now by running the xfontsel program from the terminal, or run the "Font Selector" program from the Utilities menu in Gnome. You should immediately see the truetype font names in the list of fonts.

9) If you add more fonts to the directory you have to re-run the following commands to regenerate the fonts.dir file:

# ttmkfdir > fonts.scale
# mkfontdir

Terminal Server Setup

This is a terminal setup for Fedora Core1

1) In /etc/init.d/xfs change
From
daemon xfs -droppriv -daemon
To
daemon xfs -droppriv -daemon -port 7100

2) Enable firewall for UDP Port 177 to Accept Traffic

3) In /etc/X11/fs/config comment out this
#no-listen=tcp

4) In /etc/x11/xdm/xdm-con fig comment out
! DisplayManager requestPort: 0

5) If using gdm in /etc/X11/xdm Xaccess Change
From
# * # any host can get a login window
To
* # any host can get a login window

6) In /etc/X11/gdm/gdm.con f
[xdmcp]
Enable=true
Port=177

7) In /etc/X11/xdm/Xsetup_ 0 should be chmod 755

8) Edit XF86Config in /etc/X11
From FontPath "unix/:-1"
To FontPath "unix/:7100"

9) Now Reboot the server and in the command prompt type
xdm -nodaemon

10) Now you will get into X window Manager in Server

11) To get X Window manager on the client type below command at shell prompt. That is it. Finished.
X -broadcast

12) To connect from Windows machine install Cygwin. Then at command prompt of it type X server IP
X -query 192.168.0.1

13) To automatically login the client to xdm server use command below in inittab and at level 5
/usr/X11R6/bin/X -depth 16 -query 192.168.0.1

Configuring Kerberos Server

Ok. Guys, this is how I configure Kerberos 5

1) /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5li bs.log
kdc = FILE:/var/log/krb5kd c.log
admin_server = FILE:/var/log/kadmin d.log

[libdefaults]
ticket_lifetime = 24000
default_realm = INDEX.COM
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
INDEX.COM = {
kdc = muruga.index.com:88
admin_server = muruga.index.com:749
default_domain = index.com
}

[domain_realm]
.index.com = INDEX.COM
index.com = INDEX.COM
[kdc]
profile = /var/kerberos/krb5kd c/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

2) /etc/krb.conf
INDEX.COM
INDEX.COM muruga.index.com:88
INDEX.COM kerberos.index.com:7 50 admin server

3) /etc/krb.realms
.index.com INDEX.COM

4) /var/kerberos/krb5kd c/kdc.conf

[kdcdefaults]
acl_file = /var/kerberos/krb5kd c/kadm5.acl
dict_file = /usr/share/dict/word s
admin_keytab = /var/kerberos/krb5kd c/kadm5.keytab
v4_mode = nopreauth
kdc_ports = 88,749

[realms]
INDEX.COM = {
master_key_type = des-cbc-crc
supported_enctypes = arcfour-hmac:normal arcfour-hmac:norealm arcfour-hmac:onlyrea lm des3-hmac-sha1:norma l des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal des-cbc-crc:v4 des-cbc-crc:afs3
}

6) /var/kerberos/krb5kd c/kadm5.acl
root@INDEX.COM *

The log files are /var/log/kadmind.log , krb5kdc.log and /krb5libs.log

7) First we create the database with this command

krb5_util create -s

This will ask for password. Enter it.

8) Now enter following

kadmil.local -p root@INDEX.COM

It takes us to kadmin console. Do as follows

kadmin.local: addprinc root@INDEX.COM

It asks for password. Enter it.

9) Now we need to add host.

kadmin.local: addprinc -randkey host/muruga.index.co m

10) Now start server kerberos.

krb5kdc start
kadmin start

11) Next we need to setup keytab file as follows.

kadmin -p root@INDEX.COM
kadmin5: ktadd host/muruga.index.co m

12) In workstation copy the krb5.conf from server to client & used kerberised client like telnet and ftp.

Ok boys thats it for now

Fedora Based KVM

Do these on the Host Machine

1) Four files in /etc/X11/xdm/ need to modify: xdm-config, Xresources, Xaccess, and Xservers.

2) In xdm-config, DisplayManager.reque stPort is either commented out or set to the default (XDMCP) port, which is 177.

3) Xresources can be changed to value of your option. If you dont want to change leave it alone.

4) Xaccess file is how xdm determines access to the various hosts. The idea is that we want xdm to do two things. First, we want every host on the LAN to be allowed to choose from amongst all available X servers running on all other hosts. Second, we want to allow any host to be allowed to login to the current host as well as all the others. For the first, we make sure the following line is added to the Xaccess file:

* CHOOSER BROADCAST # xdm allows all hosts to ask for a list of available hosts

For the second, we add the following line to the Xaccess file:

* # xdm allows all hosts to login to this host

5) The final configuration change is to the Xservers file. Here, we do not want xdm to automatically start/use the local host's X server. If it does, it only allows us to login to the local host, whereas we want to choose which host we will use to login. Therefore, we comment out any local X servers configured in the Xservers file. If you have any X terminals or machines acting as dedicated X terminals, do not comment out those lines or the X terminals will not work.

6 If you want xdm to be run during all the runlevels that allow active network connections (usually 2-5). do this Add a line similar to the following to /etc/inittab:

xd:2345:respawn:/usr /X11R6/bin/xdm -nodaemon



Now we need to configure the Server

1) Now we decide if we want to start the X server manually from the command line, or have it started automatically for us at system boot. If we want to start it manually, we can either start the X server itself, or via the startx or xinit programs. We will do the former. Assuming Server name ullas :

X -indirect ullas

This starts the X server and has it send a query for any hosts that the xdm running on ullas finds available on the LAN. Xdm then responds with a list of hosts to choose for logging in. Starting the X server upon system startup only takes a little more work than doing so from the command line. On storch , a SYSV machine, the easiest way is to add a line to /etc/inittab as follows:

xs:5:respawn:/usr/X1 1R6/bin/X -indirect ullas

We also need to change the line that sets the default runlevel as follows (remembering that on this particular Unix implementation runlevel 5 is for a X windows environment upon startup).

id:5:initdefault:

That is it

Help! I lost my root password

Move the system to runlevel one in grub;

At boot the grub menu will state "press e to edit";
press e;
and then choose the line with kernel on it;
press e;
to edit again and move to the end,
pressing the end key;
enter a space and the digit "1";
press enter
and then "b" to boot.
This will take you to a command prompt where you can unlock the account or change your password.

That is it

NFS Advice

Ok boys, today I will give some advice on NFS on Linux.

1) Do not use the insecure option. Clients should not connect the NFS server from ports greater than 1024. By default its secure

2) By default NFS uses root_squash. It means that a root user on client machine will not be having root access on server. He will be given nobody's UID and GID and that means only world permission. Never make it no_root_squash

3) /usr/local/pub (squash_uids=0-50, squash_gids=0-50)
Ok, dont get upset. This means if this entry is exported with read write permission which is default, it prevents client users from using UID and GID starting from 0 to 50 which is dangerous.

Hey! Silly Question Answers

1) How can I change colors of display of ls command ?
Edit /etc/DIR_COLORS

2) Where to set permission for console, floppy CDROM, Scanner etc. ?
Edit /etc/security/consol e.perms

3) How to Change messages on top of login screen ?
edit /etc/security/issue
edit /etc/security/issue- net

4) How to put customised message while system boots up ?
edit /etc/security/redhat -release

5) How do i display a message on the screen after a user logs into his account ?
edit /etc/motd

6) Where do I set packet forwarding feature
edit /etc/sysctl.conf

7) How do i set default route ?
route add default gw 192.168.0.1

8) How do i add a network to route ?
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1

9) How do i add a device
route add -net 192.168.1.0 netmask 255.255.255.0 eth0

10) How do i set default password controls like password aging.
edit /etc/login.defs

X Font Server and XDM

1) In /etc/init.d/xfs
change from
daemon xfs -droppriv -daemon
to
daemon xfs -droppriv -daemon -port 7100

2) Enable firewall for UDP Port 177 to accept

3) In /etc/X11/fs/config comment out this
# no-listen=tcp

4) In /etc/X11xdm/xdm-conf ig comment out
! Display Manager requestPort: 0

5) If using gdm in /etc/X11/xdm/Xaccess
Change from
#* # any host can get a login window
to
* # any host can get a login window

6) In /etc/X11/gdm/gdm.con f
[xdmcp]
Enable=true
Port=177

7) In /etc/X11/xdm/Xsetup_ 0 should chmod 755

8) Edit XF86Config in /etc/X11
from
FontPath "Unix/:-1"
to
FontPath "Unix/:7100"

8) To Connect from Linux m.c @ shell
x - query 192.168.0.1

Sample host.conf

# Order in which service are queried
order bind hosts nis
#permit multiple address per host
multi on
#verify reverse domain lookups
nospoof on
#log "spoof" attempts
alert on
#remove local domain for host table lookup
trim foobirds.org

GRUB with password

1) /sbin/grub-md5-crypt
When Prompted enter the password you will use for grub. It will give back a MD5 hashed password. Note it down.

2) Edit /boot/grub/grub.conf . In the line of main section add this line
password --md5

3) Reboot. Now only pressing P will allow you for password.

4) If there is a DOS partition in grub under the title DOS do as follows
title DOS
lock
password --md5

5) Finally chmod 600 /boot/grub/grub.conf

And here are some password cracking programs
www.openwall.com/john
www.users.dircon.co....k/~crypto/index.html
www.ussrback.com/distribute.html

GIMP 2.7.0 has been released

GIMP version 2.7.0 has been released. GIMP 2.7 is the first step towards GIMP 2.8 which will be a stable release. GIMP follows the Linux kernel approach to version numbering in that all odd numbered versions are unstable and even numbered versions are considered stable.

Some of the notable features in GIMP 2.7.0 are as follows :

  1. Text editing with text tool is done in the canvas like you do in Adobe Photoshop and not in a separate window.
  2. Tag support for brushes and patterns. And you can even filter these resources based on the tags.
  3. You can save your images in only one format namely the native GIMP file format (XCF). If you want to save in a different file format such as PNG or Jpeg, you have to use the "Export" feature.
  4. GIMP now supports rotating brushes.
  5. Additional features of GEGL incorporated.
  6. A new plugin for loading Jpeg2000 images.
Complete list of changes can be found at developer.gimp.org.

Please note that GIMP 2.7 is a development release and is considered unstable. However, if you decide to install GIMP 2.7 in Linux, you have to compile it from its source code which can be downloaded at ftp.gimp.org.

GIMP team also rolled out GIMP 2.6.7 which provides lots of bug-fixes, and it contains an important fix for using GIMP with the latest GEGL and babl releases. Read the full release notes for GIMP 2.6.7.

More Win 2003 Server MCSE Videos



This free MCSE video tutorial will help all system administrators and mcse students in preparing for mcse exams and mastering Windows Server 2003 MCSE .By using a MCSE training video you will benefit from not just hearing but actually seeing an expert instructor. All such instructors are certified to MCSE standard and will normally lead a traditional classroom setting but by using these videos you do not need to actually attend. All you do is simply watch the videos as and when your schedule allows you to and so get the most out of what you would normally receive in a classroom setting without actually having to physically be there. All the MCSE training videos you see available today will have been developed by some of the best Microsoft trainers that are available and will bring you the expert instruction you need all at the touch of button. These videos use a variety of different multi-media presentations in order to show you the steps you need to take such as animations or power point presentations.



Another great benefit of using MCSE training videos is that you can practice for your exams through the Microsoft authorized MeasureUp exam simulations and in this way you will be able to see just how well you are progressing.Plus all the course ware that is provided with these training videos are fully printable so that you can study when offline as well.Certainly choosing an MCSE training video is a great way for you to work towards your MCSE certification at your own pace and on your terms. The only deadlines you will have when using this training method is the ones that you set for yourself as there is no classroom schedule that you need to adhere to. So whether you want to work fast or just take your time then this is really up to you. Plus at any stage during the training you will be able to go back and review any sections that you feel unhappy about and therefore would like to reinforce everything that you have already learnt.





Rapidshare Link



Install Google Chrome web browser in Linux

Google Chrome for LinuxGoogle has provided a pre-release version of its famed browser Google Chrome for Linux and Mac. However it is still very much in the development stage. You can download the latest builds of Google Chrome for Linux and Mac here.

All the same, if you want a stable Chrome web browser to work in Linux, then there is a work around. Codeweavers has released Crossover Chromium for Linux and Mac.

Crossover Chromium is the Windows build of Google Chrome running on top of Wine. It is provided as an all inclusive bundle which can be installed in Linux or Mac without Wine being installed separately. Crossover Chromium installs itself in a hidden folder named .chromium in your /home directory. Once installed, it can be accessed from the GNOME Applications > Crossover Chromium menu. It also provides an uninstaller which allows you to easily uninstall the program.

Download Crossover Chromium from the Codeweavers site.

IIS 6 Administration Training Videos.



IIS 6 Administration training videos are meant to examine IIS 6.0 and its features while giving maximum learning potential to new IIS administrators, IIS developers and anyone else wanting to learn about IIS 6.0. It's meant to get you started, expand your knowledge, and can also help you take your skills to the next level.It teaches attendees the fundamental principles of web server administration and how to administer Microsoft Internet Information Services 6.This practical, task-orientated guide explains exactly what you need to know in order to deploy, configure, manage, monitor, and troubleshoot Internet Information Services 6 (IIS 6) on the Microsoft Windows Server 2003 platform. It shows essential day-to-day administration tasks and includes dozens of invaluable troubleshooting tips, making this reference the ultimate guide for systems and network administrators.

IIS 6 Administration contains numerous helpful editorial tools including task-at-a-glance guides, step-by-step instructions, screen shots and illustrations, and highlighted notes and tips.Learn to discover the increased security, reliability, scalability, performance, and manageability of IIS 6 and get an in-depth examination of the internal workings and architecture of IIS 6.Learn valuable configuration, maintenance, and content management techniques.Deploy IIS 6 on Windows Server 2003 in a variety of different situationsand learn how to administer IIS from the command line using scripts,Create and configure Web sites, and use virtual directories for hosting site content.Deploy applications using ASP, ASP.NET, ISAPI, and legacy CGI architectures.Monitor and tune IIS 6 performance,and learn vital troubleshooting techniques.







Rapidshare link





KDE 4.3 released with incremental innovations

KDE 4.3 has officially been released. Code named Caizen, this release builds up on the previous release of KDE (4.2) bringing with it new innovations mainly on the desktop, applications and development platform.

Watch the following video to learn more about the fabulous new features in KDE 4.3.




Put in a nutshell, the prominent new features are as follows :

  • Plasma has a new theme called Air.
  • Now you can have different set of widgets in each workspace.
  • Introduced new widgets which connect to many prominent online web services such as Flickr, blogging platforms and social networks (Twitter ...).
  • Widgets can now live on the taskbar and many other places other than the desktop.
  • Instant file and folder preview feature introduced in Dolphin file manager.
  • A more helpful KRunner - The ubiquitous run dialog in KDE 4.
Read the details at the official KDE web site.

 
 
 
 
Copyright © Sun solaris admin