<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11370079</id><updated>2011-04-22T13:57:56.084+10:00</updated><title type='text'>worka</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://worka.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11370079.post-5235945929440527845</id><published>2008-11-22T11:40:00.003+11:00</published><updated>2008-11-22T11:47:17.707+11:00</updated><title type='text'>Eclipse Online Collaboration</title><content type='html'>Problem:&lt;br /&gt;Multiple sites with multiple developers all over the world.  Some sites in different timezones.  Developers across these sites may need to collaborate, to look at code at the same time.  To discuss/review and develop it.&lt;br /&gt;&lt;br /&gt;Need:&lt;br /&gt;A collaborative framework in which to perform this.   Simple Instant Messaging not enough.  IMs become cumbersome when trying to discuss complex this such as code.  The collaboration framework would include some form of  instant messaging.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;Eclipse Communication Framework. &lt;br /&gt;http://www.eclipse.org/ecf/documentation.php&lt;br /&gt;&lt;br /&gt;Implementation on this that looks very promising, even for inter-office collaboration.&lt;br /&gt;http://live.eclipse.org/node/543&lt;br /&gt;&lt;br /&gt;Need to Know:&lt;br /&gt;Code base, in Cola for instance, do the collaborators both have a copy of the modified code ?  Or is it a host/client arrangement.&lt;br /&gt;&lt;br /&gt;Security, what ports etc?&lt;br /&gt;&lt;br /&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-5235945929440527845?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/5235945929440527845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=5235945929440527845' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/5235945929440527845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/5235945929440527845'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2008/11/eclipse-online-collaboration.html' title='Eclipse Online Collaboration'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-3594875580127454551</id><published>2008-02-16T16:25:00.001+11:00</published><updated>2008-02-16T16:27:55.669+11:00</updated><title type='text'>Mylyn and Xplanner</title><content type='html'>The webinar &lt;a href="http://live.eclipse.org/node/412"&gt;here&lt;/a&gt; gives an excellent overview of &lt;a href="http://www.eclipse.org/mylyn/"&gt;Mylyn,&lt;/a&gt; which is a task based UI for eclipse.  I'm very interested to see how it would work with something like &lt;a href="http://www.xplanner.org/index.html"&gt;XPlanner.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-3594875580127454551?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/3594875580127454551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=3594875580127454551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/3594875580127454551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/3594875580127454551'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2008/02/mylyn-and-xplanner.html' title='Mylyn and Xplanner'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-7481850728962166619</id><published>2007-04-13T15:59:00.000+10:00</published><updated>2007-04-14T10:59:47.434+10:00</updated><title type='text'>File System Visualization</title><content type='html'>Link to &lt;a href="http://nooface.net/3dui.shtml"&gt;linux.com&lt;/a&gt; on the subject.&lt;br /&gt;Also check out &lt;a href="http://nooface.net/3dui.shtml"&gt;this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Getting xcruise going on Kubuntu was pretty easy, just install dev packages for X11 and XAW.  The code itself is ok, and seems to run well.  The limitation for me was it was hard to tell the size of directories they don't always face the right way.  The navigation was also a little diffcult in that tyou get disorientated easily.  This was a point the author also made.&lt;br /&gt;&lt;br /&gt;As far as file system visualization goes I also looked at.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.methylblue.com/filelight/"&gt;Filelight&lt;/a&gt; , on kubuntu 6.10 it is installable with apt-get or adept.  I quite like it make it really easy to find out where the big files are and it scans the file system quite quickly.  Defintely a thumbs up.&lt;br /&gt;&lt;br /&gt;GDMap, works on kubuntu installable out of the box on 6.10.  Its a lot like SpaceMonger, the display is good.  You can't navigate with it.  I'd still prefer Filelight.&lt;br /&gt;&lt;br /&gt;I have noticed a limitiation in both Filelight and GDMap.  They both cannot handle very large directories, I have one that is 13Gb and neither application attempts to display it.  I'd guess and say the counter used to count size of files and directories isn't large enough.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-7481850728962166619?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/7481850728962166619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=7481850728962166619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/7481850728962166619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/7481850728962166619'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2007/04/3d-file-system-visualization.html' title='File System Visualization'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-116228792560679449</id><published>2006-10-31T20:43:00.000+11:00</published><updated>2006-10-31T20:45:25.623+11:00</updated><title type='text'>Eclipse - XP Quote Key.</title><content type='html'>The quote key (") began change its behavior while using eclipse. What would&lt;br /&gt;happen when pressing " is that it wouldn't appear until another key was&lt;br /&gt;typed. Some of the other keys typed would cause french characters to&lt;br /&gt;appear.&lt;br /&gt;&lt;br /&gt;This was caused because XP was switching the keyboard layout after a&lt;br /&gt;Shift-Left Alt combination was hit. I used this key combination in&lt;br /&gt;eclipse and hence it triggered the behavior.&lt;br /&gt;&lt;br /&gt;To change this: Start -&gt; Control Panel -&gt; Regional and Language Options&lt;br /&gt;[Advanved] (Details) (Key Settings)&lt;br /&gt;&lt;br /&gt;Select /Switch between input languages/ Click (Change Key Sequence)&lt;br /&gt;&lt;br /&gt;De select /Switch input languages/ and / Switch keyboard layouts/&lt;br /&gt;&lt;br /&gt;Click (Ok) all the way out.&lt;br /&gt;&lt;br /&gt;Obvious really.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-116228792560679449?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/116228792560679449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=116228792560679449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/116228792560679449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/116228792560679449'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/10/eclipse-xp-quote-key.html' title='Eclipse - XP Quote Key.'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-115663984769943337</id><published>2006-08-27T10:46:00.000+10:00</published><updated>2006-08-27T10:50:47.710+10:00</updated><title type='text'>Floating-Point Arithmetic</title><content type='html'>This is where to find some good information on   &lt;a href="http://blogs.sun.com/roller/resources/darcy/Wecpskafpa-StanfordIcme500.pdf"&gt;&lt;i&gt;What Every Computer Programmer Should Know About Floating-Point Arithmetic&lt;/i&gt;&lt;/a&gt;. Found this from a post on AJUG that was dicusssing the differences/metrics of BigDecimal as oppsed to double.  The actual link was &lt;a href="http://blogs.sun.com/darcy/entry/what_every_computer_programmer_should"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-115663984769943337?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/115663984769943337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=115663984769943337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/115663984769943337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/115663984769943337'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/08/floating-point-arithmetic.html' title='Floating-Point Arithmetic'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-114714544794877021</id><published>2006-05-09T13:24:00.000+10:00</published><updated>2006-05-09T13:30:47.956+10:00</updated><title type='text'>UML References</title><content type='html'>Some UML texts that I want to check out:&lt;br /&gt;&lt;br /&gt;http://uml.tutorials.trireme.com/uml_tutorial.zip&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;&lt;/b&gt;UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition Martin Fowler&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;&lt;/b&gt;Learning UML Sinan Si Alhir O'reily&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;&lt;/b&gt;Sams Teach Yourself UML in 24 Hours Joseph Schmuller&lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Joseph%20Schmuller&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/102-6253809-7744961"&gt;&lt;/a&gt;&lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Martin%20Fowler&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/102-6253809-7744961"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-114714544794877021?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/114714544794877021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=114714544794877021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114714544794877021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114714544794877021'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/05/uml-references.html' title='UML References'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-114558005648570893</id><published>2006-04-21T10:33:00.000+10:00</published><updated>2006-04-21T10:59:21.163+10:00</updated><title type='text'>magic-smtpd and TLS</title><content type='html'>To get &lt;a href="http://www.linuxmagic.com/opensource/magicmail/magic-smtpd/"&gt;magic-smptd&lt;/a&gt; working with TLS.&lt;br /&gt;&lt;br /&gt;From my qmailrocks.org installation of qmail.  I made a symlink from /var/qmail/bin/magic-smptd to /var/qmail/bin/qmail/qmail-smptd&lt;br /&gt;&lt;br /&gt;I then configured a bunch of files in /etc/magic-mail/control the ones applicable to TLS can be seen here, out put provided by magic-smptd -s&lt;br /&gt;&lt;code&gt;&lt;br /&gt;loaded  | tls_cadir                     | /usr/lib/courier/rootcerts/&lt;br /&gt;default | tls_cafile                    | (null)&lt;br /&gt;loaded  | tls_certificate               | /var/qmail/control/servercert.pem&lt;br /&gt;loaded  | tls_dhparams                  | /var/qmail/control/servercert.pem&lt;br /&gt;loaded  | tls_enable                    | 1&lt;br /&gt;loaded  | tls_keyfile                   | /var/qmail/control/servercert.pem&lt;br /&gt;default | tls_password                  | (null)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The problem I found with the .pem file created in the qmailrocks.org instructions was that it doesn't contain the DH part.  So I found if I followed the &lt;a href="http://www.linuxmagic.com/opensource/magicmail/magic-smtpd/manual.html#tth_sEc6.2"&gt;relevent instructions for magic-smtpd&lt;/a&gt; and cat'ed the DH to my .pem things worked.&lt;br /&gt;&lt;br /&gt;The other tip is to make sure the CN (Common Name) is the fqdn of your mail server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-114558005648570893?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/114558005648570893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=114558005648570893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114558005648570893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114558005648570893'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/04/magic-smtpd-and-tls.html' title='magic-smtpd and TLS'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-114411181449723770</id><published>2006-04-04T10:48:00.000+10:00</published><updated>2006-04-04T10:50:42.390+10:00</updated><title type='text'>sersnoop</title><content type='html'>This looks useful for working with new RS232 devices.&lt;br /&gt;&lt;br /&gt;&lt;table style="width: 694px; height: 44px;" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;blockquote&gt;a simple command-line tool for linux that echoes bytes to and from any two serial ports, ptys, or network sockets, and prints all traffic to stdout, in hex and ascii.&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://www.restivo.org/projects/sersnoop/"&gt;http://www.restivo.org/projects/sersnoop/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-114411181449723770?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/114411181449723770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=114411181449723770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114411181449723770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114411181449723770'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/04/sersnoop.html' title='sersnoop'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-114116553017373746</id><published>2006-03-01T09:21:00.000+11:00</published><updated>2006-03-01T09:32:56.453+11:00</updated><title type='text'>Xorg auto configuration in Debian/Ubuntu land.</title><content type='html'>This script does auto configuration and writes a new xorg.conf make sure you backup your existing xorg.conf before running this.  I used this to update xorg.conf when putting a system image on different hardware, so far it always chooses reasonable resolution and color depth.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;# Based on the script found in http://ftp.linux.org.uk/~dan/livecd&lt;br /&gt;# which is referenced from http://www.linuxjournal.com/article/7246&lt;br /&gt;# Changes made so that the script works with xorg as opposed to xfree&lt;br /&gt;# Mods by Pete Cain&lt;br /&gt;&lt;br /&gt;export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin&lt;br /&gt;debconf-communicate &amp;lt&amp;lt EOF&lt;br /&gt;SET xserver-xorg/autodetect_mouse true&lt;br /&gt;SET xserver-xorg/autodetect_monitor true&lt;br /&gt;SET xserver-xorg/autodetect_video_card true&lt;br /&gt;FSET xserver-xorg/autodetect_mouse seen true&lt;br /&gt;FSET xserver-xorg/autodetect_monitor seen true&lt;br /&gt;FSET xserver-xorg/autodetect_video_card seen true&lt;br /&gt;EOF&lt;br /&gt;sh /var/lib/dpkg/info/xserver-xorg.config configure&lt;br /&gt;dexconf -o /etc/X11/xorg.conf&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-114116553017373746?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/114116553017373746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=114116553017373746' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114116553017373746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114116553017373746'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/02/xorg-auto-configuration-in.html' title='Xorg auto configuration in Debian/Ubuntu land.'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-114116361141103908</id><published>2006-03-01T08:43:00.000+11:00</published><updated>2006-03-01T08:53:31.426+11:00</updated><title type='text'>Qmail - Valid user Checking part 2</title><content type='html'>A few updates on this:&lt;br /&gt;&lt;br /&gt;contrary to my previous post qpsmtpd and be used as a drop in replacement for qmail-smtpd.&lt;br /&gt;&lt;br /&gt;I found whilst magicmail was doing well checking users it may have been dropping email.  I suspect (and I haven't checked) that magic mail uses more memory than qmail-smptd and was using more than the 4Mb softlimit I have set in the run script.&lt;br /&gt;&lt;br /&gt;I also find that I have to support the old style smtpd as well as TLS.  Need TLS for squirelmail and the old style for a stupid app that needs to send out email via our server but won't do TLS.  There is a patch for qmail-smptd that supports both styles of connection, but its a matter of getting that to work thru magicmail or qpsmtpd.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-114116361141103908?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/114116361141103908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=114116361141103908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114116361141103908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114116361141103908'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/02/qmail-valid-user-checking-part-2.html' title='Qmail - Valid user Checking part 2'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-114057346039214496</id><published>2006-02-22T12:53:00.000+11:00</published><updated>2006-02-22T13:04:05.120+11:00</updated><title type='text'>SystemImager (sisuite) Boot Loader Problems</title><content type='html'>I've found that &lt;a href="http://www.systemimager.org"&gt;SystemImager&lt;/a&gt; doesn't always install the boot loader correctly for Ubuntu systems. After much stuffing around the problem lies with the fact that Ubuntu and many other distros use devfs manage the entries under /dev. So when system imager comes along and chroots itself into the newly installed file system it can't find the devices it needs to install grub or LILO.&lt;br /&gt;&lt;br /&gt;The solution is to modified the autoinstall script as such:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;## BEGIN mount proc in image for tools like System Configurator ###&lt;br /&gt;#echo "mkdir -p /a/proc || shellout"&lt;br /&gt;#mkdir -p /a/proc || shellout&lt;br /&gt;#echo "mount proc /a/proc -t proc -o defaults || shellout"&lt;br /&gt;#mount proc /a/proc -t proc -o defaults || shellout&lt;br /&gt;#### END mount proc in image for tools like System Configurator ###&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Replace it with this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;echo "Doing devfs specific bind stuff..."&lt;br /&gt;mkdir -p /a/proc || shellout&lt;br /&gt;mkdir -p /a/dev || shellout&lt;br /&gt;mount -o bind /dev /a/dev  || shellout&lt;br /&gt;mount -o bind /proc /a/proc  || shellout&lt;br /&gt;echo "Done doing bind stuff..."&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then in the Unmount filesystem section make it look like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;echo "umount /a/proc || shellout"&lt;br /&gt;umount /a/proc || shellout&lt;br /&gt;&lt;br /&gt;echo "umount /a/dev || shellout"&lt;br /&gt;umount /a/dev || shellout&lt;br /&gt;&lt;br /&gt;echo "umount /a/ || shellout"&lt;br /&gt;umount /a/ || shellout&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Without clean umounts the autoinstall script fails to complete.&lt;br /&gt;&lt;br /&gt;This info came from a post on the sisuite mailing list (&lt;a href="http://sourceforge.net/mailarchive/forum.php?forum_id=10334&amp;style=flat&amp;amp;viewday=19&amp;amp;viewmonth=200303"&gt;link&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-114057346039214496?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/114057346039214496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=114057346039214496' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114057346039214496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114057346039214496'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/02/systemimager-sisuite-boot-loader.html' title='SystemImager (sisuite) Boot Loader Problems'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-114048245898271346</id><published>2006-02-21T11:25:00.000+11:00</published><updated>2006-02-21T11:48:00.276+11:00</updated><title type='text'>Qmail - Valid User Checking</title><content type='html'>One thing that has always irked me about &lt;a href="http://www.qmail.org"&gt;qmail&lt;/a&gt; is the lack of valid user checking.  The qmail-smtpd will always accept mail for delivery regardless of  weather the address given in the rcpt to: field exists for the given domain.  The message is then processed at which time qmail realizes that's not a valid user and generates a bounce message.    In the case of spam where the from address is probably forged the bounce bounces back or worse still the spammer things he has a live email address and spams it even harder.&lt;br /&gt;&lt;br /&gt;A bit of a scratch around on the net reveals 2 solutions to this problem.&lt;br /&gt;&lt;a href="http://smtpd.develooper.com/"&gt;qpsmtpd&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxmagic.com/opensource/magicmail/magic-smtpd/"&gt;magic mail&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As I read it qpsmtpd needs the real smtp daemon to sit on another port (eg 2525) and it passes sessions through to that port after it passes the checks qpsmptd makes.  That kind of approach seems a little out of place to me, but qpsmtpd does have some nice features.&lt;br /&gt;&lt;br /&gt;In the end I went for magic mail.  It is a direct replacement for qmail-smtpd.  What follows is my notes on getting started with magic mail on &lt;a href="http://www.ubuntu-linux.org"&gt;Ubuntu &lt;/a&gt;5.10:&lt;br /&gt;&lt;br /&gt;I installed this on to of a qmail installation based on the one outlined by &lt;a href="http://www.qmailrocks.org/"&gt;Qmail Rocks&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Download magic mail 0.8.4&lt;br /&gt;&lt;br /&gt;To get it to work with gcc4 remove line from the file magicmail-0.8.4-2/magic-smtpd/magic-smtpd.h:&lt;br /&gt;&lt;br /&gt;extern lm_string_t smtp_from_addr;&lt;br /&gt;&lt;br /&gt;(Will be fixed in next version)&lt;br /&gt;&lt;br /&gt;I changed Makefile.inc to USE_TLS&lt;br /&gt;&lt;br /&gt;Run through the &lt;a href="http://www.linuxmagic.com/opensource/magicmail/magic-smtpd/manual.html#tth_chAp2"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Be sure to create the /etc/magic-mail/control directory.&lt;br /&gt;&lt;br /&gt;I wanted valid user checking&lt;br /&gt;echo true &gt; /etc/magic-mail/control/check_valid_users&lt;br /&gt;Which tells magic mail to  check valid users&lt;br /&gt;&lt;br /&gt;cp magicmail-0.8.4-2/scripts/vpopmail-check-user.sh /home/vpopmail/bin&lt;br /&gt;chown vpopmail:vchkpw vpopmail-check-user.sh&lt;br /&gt;Doesn't appear to work correctly unless chown'ed correctly&lt;br /&gt;This program does the valid user check&lt;br /&gt;Tell magic-mail to use it&lt;br /&gt;vi /etc/magic-mail/control/ext_check_user_prog&lt;br /&gt;Make this file contain the following line only&lt;br /&gt;   /home/vpopmail/bin/vpopmail-check-user.sh&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-114048245898271346?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/114048245898271346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=114048245898271346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114048245898271346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/114048245898271346'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/02/qmail-valid-user-checking.html' title='Qmail - Valid User Checking'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-113988487518650293</id><published>2006-02-14T13:40:00.000+11:00</published><updated>2006-02-14T13:41:15.196+11:00</updated><title type='text'>Apache2 SSL -Ubuntu</title><content type='html'>Handy link on how to get it going here:&lt;br /&gt;&lt;a href="http://www.tc.umn.edu/%7Ebrams006/selfsign_ubuntu.html"&gt; http://www.tc.umn.edu/~brams006/selfsign_ubuntu.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-113988487518650293?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/113988487518650293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=113988487518650293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113988487518650293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113988487518650293'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/02/apache2-ssl-ubuntu.html' title='Apache2 SSL -Ubuntu'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-113944685674701155</id><published>2006-02-09T11:54:00.000+11:00</published><updated>2006-02-09T12:00:56.763+11:00</updated><title type='text'>Samba/smbfs in fstab</title><content type='html'>I had success with this.&lt;br /&gt;Put this line in /etc/fstab&lt;br /&gt;&lt;br /&gt;&lt;code&gt;//file-sever/thing      /mymountpoint           smbfs   credentials=/etc/file-server-credentials.conf,gid=fileserverusers,fmask=660 0 0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The file /etc/file-server-credentials.conf contains the log on information&lt;br /&gt;&lt;code&gt;username=someusername&lt;br /&gt;password=apassword&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Then lock down the permissions on /etc/file-server-credentials.conf to restrict read access.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;gid=fileserverusers&lt;/code&gt; is to allow a group of users on the local linux box read write access to the /mymountpoint.  This access is controlled my the &lt;code&gt;fmask=660&lt;/code&gt;&lt;br /&gt;&lt;code&gt;groupadd fileserverusers&lt;/code&gt;&lt;br /&gt;Edit /etc/groups and add the approriate users to fileserverusers group.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-113944685674701155?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/113944685674701155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=113944685674701155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113944685674701155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113944685674701155'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/02/sambasmbfs-in-fstab.html' title='Samba/smbfs in fstab'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-113919276524176620</id><published>2006-02-06T13:21:00.000+11:00</published><updated>2006-02-06T13:26:56.086+11:00</updated><title type='text'>Ubuntu/Debian Run level configuration</title><content type='html'>There is a simple tool to do run level configuration.  It only allows you to switch on or off a service/rc script/server in the rc.d (no run level selection).  It also seems that "the debian way" is to have everyintg started at run level 2.&lt;br /&gt;&lt;br /&gt;The tool is call rcconf&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo apt-get install rcconf&lt;/code&gt; &lt;p&gt;Then you can execute rcconf as the root user:&lt;/p&gt; &lt;code&gt;sudo rcconf&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;There is also update-rc.d but I have not had much luck getting it to change anything.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-113919276524176620?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/113919276524176620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=113919276524176620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113919276524176620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113919276524176620'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/02/ubuntudebian-run-level-configuration.html' title='Ubuntu/Debian Run level configuration'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-113886189145257628</id><published>2006-02-02T17:07:00.000+11:00</published><updated>2006-02-02T17:31:31.466+11:00</updated><title type='text'>Bind9 on Ubuntu</title><content type='html'>&lt;span style="font-family:courier new;"&gt;apt-get install bind9&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For security reasons we want to run BIND chrooted so we have to do the following steps:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/etc/init.d/bind9 stop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Edit the file /etc/default/bind9 so that the daemon will run as the unprivileged user 'bind', chrooted to /var/lib/named. Modify the line: OPTS="-u bind" so that it reads OPTIONS="-u bind -t /var/lib/named":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OPTIONS="-u bind -t /var/lib/named"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create the necessary directories under /var/lib:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkdir -p /var/lib/named/etc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkdir /var/lib/named/dev&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkdir -p /var/lib/named/var/cache/bind&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkdir -p /var/lib/named/var/run/bind/run&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then move the config directory from /etc to /var/lib/named/etc:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mv /etc/bind /var/lib/named/etc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a symlink to the new config directory from the old location (to avoid problems when bind is upgraded in the future):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ln -s /var/lib/named/etc/bind /etc/bind&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make null and random devices, and fix permissions of the directories:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mknod /var/lib/named/dev/null c 1 3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mknod /var/lib/named/dev/random c 1 8&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;chown -R bind:bind /var/lib/named/var/*&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;chown -R bind:bind /var/lib/named/etc/bind&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;We need to modify the startup script /etc/init.d/sysklogd of sysklogd so that we can still get important messages logged to the system logs. Modify the line: SYSLOGD="-u syslog" so that it reads: &lt;span style="font-family:courier new;"&gt;SYSLOGD="-u syslog -a /var/lib/named/dev/log"&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Restart the logging daemon:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/etc/init.d/sysklogd restart&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Start up BIND, and check /var/log/syslog for any errors:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Restart the logging daemon:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/etc/init.d/sysklogd restart&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Start up BIND, and check /var/log/syslog for any errors:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/etc/init.d/bind9 start&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;Source &lt;a href="http://www.howtoforge.com/perfect_setup_ubuntu_5.10_p3"&gt;HowToForge&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-113886189145257628?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/113886189145257628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=113886189145257628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113886189145257628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113886189145257628'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/02/bind9-on-ubuntu.html' title='Bind9 on Ubuntu'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-113867607530512876</id><published>2006-01-31T13:39:00.000+11:00</published><updated>2006-01-31T13:57:02.613+11:00</updated><title type='text'>Ubuntu enable ipv4 forwarding</title><content type='html'>Check the current state can use&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cat /proc/sys/net/ipv4/ip_forward&lt;/span&gt;&lt;br /&gt;or&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sysctl net | grep ip_forward&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;0=disabled&lt;br /&gt;1=enabled&lt;br /&gt;&lt;br /&gt;To get Ubuntu to enable the forward on boot I edited &lt;span style="font-family: courier new;"&gt;/etc/sysctl.conf&lt;/span&gt;&lt;br /&gt;By running &lt;span style="font-family: courier new;"&gt;sysctl net | grep ip_forward&lt;/span&gt; you find the key is &lt;span style="font-family: courier new;"&gt;net.ipv4.ip_forward&lt;/span&gt;&lt;br /&gt;So add this to the &lt;span style="font-family: courier new;"&gt;/etc/sysctl.conf &lt;/span&gt;file&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;net.ipv4.ip_forward=1&lt;/span&gt;&lt;br /&gt;then run&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;sudo sysctl -p&lt;/span&gt;&lt;br /&gt;So should now see new forward state using&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cat /proc/sys/net/ipv4/ip_forward&lt;/span&gt;&lt;br /&gt;or&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;sysctl net | grep ip_forward&lt;/span&gt;&lt;br /&gt;and the change should persist after reboot.&lt;br /&gt;&lt;br /&gt;This procedure will obviously work for any of the values under sysctl control.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-113867607530512876?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/113867607530512876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=113867607530512876' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113867607530512876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113867607530512876'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/01/ubuntu-enable-ipv4-forwarding.html' title='Ubuntu enable ipv4 forwarding'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-113746228361930932</id><published>2006-01-17T12:43:00.000+11:00</published><updated>2006-01-17T12:44:43.646+11:00</updated><title type='text'>Windows XP CLI Commands</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;b&gt;bootcfg (XP only)&lt;/b&gt;&lt;br /&gt;This utility allows you to set up your boot options, such as your default OS and other loading options.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;cacls (XP, 2000, &amp; NT4.0)&lt;/b&gt;&lt;br /&gt;Changes the ACLs (security Settings) of files and folders. Very similar to chmod in Linux. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;comp (XP &amp;amp; 2000)&lt;/b&gt;&lt;br /&gt;This utility is very similar to diff in Linux.  Use the /? switch to get examples of command usage.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;contig (NT4.0 and newer)&lt;/b&gt;&lt;br /&gt;A great defrag utility for NTFS partitions.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;defrag (XP only - NT4.0 and Win2k use contig)&lt;/b&gt;&lt;br /&gt;Yes, XP comes with a command line disk defrag utility. If you are running Win2k or NT4.0 there is still hope. Contig is a free defrag program that I describe on the defrag page.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;diskpart (XP only)&lt;/b&gt;&lt;br /&gt;Use this command to manage your disk partitions.  This is the text version for the GUI Disk Manager.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;driverquery (XP only)&lt;/b&gt;&lt;br /&gt;Produces a list of drivers, their properties, and their versions. Great for computer documentation.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;fsutil (XP only)&lt;/b&gt;&lt;br /&gt;This is a utility with a lot of capability.  Come back soon for great examples.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;getmac (XP &amp; 2000)&lt;/b&gt;&lt;br /&gt;This command gets the Media Access Control (MAC) address of your network cards.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;gpresult (XP &amp;amp; 2000)&lt;/b&gt;&lt;br /&gt;This generates a summary of the user settings and computer group policy settings.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;ipconfig (XP, 2000 &amp; NT4.0)&lt;/b&gt;&lt;br /&gt;This handy tool displays IP settings of the current computer and much more.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;MMC (XP, 2000 &amp;amp; NT4.0) - Microsoft Management Console&lt;/b&gt;&lt;br /&gt;Console&lt;br /&gt;This is the master tool for Windows, it is the main interface in which all other tools use starting primarily in Windows 2000 and newer systems.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;msconfig (XP only)&lt;/b&gt;&lt;br /&gt;The ultimate tool to change the services and utilities that start when your Windows machine boots up. You can also copy the executable from XP and use it in Win2k.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;netsh (XP &amp; 2000)&lt;/b&gt;&lt;br /&gt;A network configuration tool console. At the 'netsh&gt;' prompt, use the '?' to list the available commands and type "exit" to get back to a command prompt.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;openfiles (XP Only)&lt;/b&gt;&lt;br /&gt;Allows an administrator to display or disconnect open files in XP professional. Type "openfiles /?" for a list of possible parameters.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Pathping (XP &amp;amp; 2000)&lt;/b&gt;&lt;br /&gt;A cross between the ping and traceroute utilities. Who needs Neotrace when you can use this? Type "pathping &lt;ip&gt;" and watch it go.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;recover (XP &amp; 2000)&lt;/b&gt;&lt;br /&gt;This command can recover readable information from a damaged disk and is very easy to use.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;reg (XP &amp;amp; 2000)&lt;/b&gt;&lt;br /&gt;A console registry tool, great for scripting Registry edits.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;schtasks (XP only)&lt;/b&gt;&lt;br /&gt;A newer version of the AT command. This allows an administrator to schedule and manage scheduled tasks on a local and remote machines.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;secedit (XP &amp; 2000)&lt;/b&gt;&lt;br /&gt;Use this utility to manually apply computer and user policy from your windows 2000 (or newer) domain. Example to update the machine policy: secedit /refreshpolicy machine_policy /enforce&lt;br /&gt;To view help on this, just type secedit.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;sfc (XP &amp;amp; 2000)&lt;/b&gt;&lt;br /&gt;The system file checker scans important system files and replaces the ones you (or your applications) hacked beyond repair with the real, official Microsoft versions.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;shutdown (XP &amp;amp; 2000)&lt;/b&gt;&lt;br /&gt;With this tool, You can shut down or restart your own computer, or an administrator can shut down or restart a remote computer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;sigverif (XP only)&lt;/b&gt;&lt;br /&gt;Microsoft has created a driver signatures. A signed driver is Microsot tested and approved. With the sigverif tool you can have all driver files analysed to verify that they are digitally signed. Just type 'sigverif' at the command prompt.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;systeminfo (XP only)&lt;/b&gt;  &lt;----- &lt;u&gt;&lt;i&gt;very nice one!!!!!!!!!!!&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;Basic system configuration information, such as the system type, the processor type, time zone, virtual memory settings, system uptime, and much more. This program is great for creating an inventory of computers on your network.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;tasklist (XP only)&lt;/b&gt;&lt;br /&gt;Tasklist is the command console equivalent to the task manager in windows.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;taskkill (XP only)&lt;/b&gt;&lt;br /&gt;Taskkill contains the rest of the task manager functionality.  It allows you to kill those unneeded or locked up applications.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;auditpol.exe:&lt;/b&gt; manage the system audits logs (net fuctions)&lt;br /&gt;AuditPol [\\computer] [/enable | /disable] [/help | /?] [/Category:Opti&lt;br /&gt;&lt;br /&gt;  /Enable   = Enable audit (default).&lt;br /&gt;&lt;br /&gt;  /Disable  = Disable audit.&lt;br /&gt;&lt;br /&gt;  Category  = System    : System events&lt;br /&gt;              Logon     : Logon/Logoff events&lt;br /&gt;              Object    : Object access&lt;br /&gt;              Privilege : Use of privileges&lt;br /&gt;              Process   : Process tracking&lt;br /&gt;              Policy    : Security policy changes&lt;br /&gt;              Sam       : SAM changes&lt;br /&gt;              Directory : Directory access&lt;br /&gt;              Account   : Account logon events&lt;br /&gt;&lt;br /&gt;  Option    = Success   : Audit success events&lt;br /&gt;              Failure   : Audit failure events&lt;br /&gt;              All       : Audit success and failure events&lt;br /&gt;              None      : Do not audit these events&lt;br /&gt;&lt;br /&gt;Samples are as follows:&lt;br /&gt;&lt;br /&gt;  AUDITPOL \\MyComputer&lt;br /&gt;  AUDITPOL \\MyComputer /enable /system:all /object:failure&lt;br /&gt;  AUDITPOL \\MyComputer /disable&lt;br /&gt;  AUDITPOL /logon:failure /system:all /sam:success /privilege:none&lt;br /&gt;&lt;br /&gt;AUDITPOL /HELP | MORE displays Help one screen at a time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;clearlogs.exe &lt;/b&gt;:del aplicatios/security/system logs (net fuctions)&lt;br /&gt;ClearLogs 1.0 - © 2002, Arne Vidstrom (arne.vidstrom@ntsecurity.nu)&lt;br /&gt;             - &lt;a href="http://ntsecurity.nu/toolbox/clearlogs/" target="_blank"&gt;http://ntsecurity.nu/toolbox/clearlogs/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Usage: clearlogs [\\computername] &lt;-app / -sec / -sys&gt;&lt;br /&gt;&lt;br /&gt;       -app = application log&lt;br /&gt;       -sec = security log&lt;br /&gt;       -sys = system log&lt;br /&gt;fport.exe like netstat but show the aplication who open the ports&lt;br /&gt;ClearLogs 1.0 - © 2002, Arne Vidstrom (arne.vidstrom@ntsecurity.nu)&lt;br /&gt;             - &lt;a href="http://ntsecurity.nu/toolbox/clearlogs/" target="_blank"&gt;http://ntsecurity.nu/toolbox/clearlogs/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Usage: clearlogs [\\computername] &lt;-app / -sec / -sys&gt;&lt;br /&gt;&lt;br /&gt;       -app = application log&lt;br /&gt;       -sec = security log&lt;br /&gt;       -sys = system log&lt;br /&gt;&lt;br /&gt;&lt;b&gt;mnger.exe&lt;/b&gt;&lt;br /&gt;Usage: mnger.exe -s[lvdsSp]p[kwl[v]]ri [arguments]&lt;br /&gt;&lt;br /&gt;-sl                * List all services.&lt;br /&gt;-sv &lt;servicename&gt;  * View service configuration details.&lt;br /&gt;-sd &lt;servicename&gt;  * Delete a service.&lt;br /&gt;-ss &lt;servicename&gt;  * Stops a service.&lt;br /&gt;-sS &lt;servicename&gt;  * Start a service.&lt;br /&gt;-sp &lt;servicename&gt;  * Pause a service.&lt;br /&gt;-si &lt;servicename&gt; &lt;displayname&gt; &lt;path&gt; * Install a new service.&lt;br /&gt;-sm &lt;servicename&gt;  * modify service configuration.&lt;br /&gt;-pl  [PID|process] * List [All] Running proccesses.&lt;br /&gt;-plv [PID|process] * List verbose information about [All] Running processes.&lt;br /&gt;-pk  &lt;pid|process&gt; * Kill a process.&lt;br /&gt;-pw                * Shows Process owner (whoami).&lt;br /&gt;-r   &lt;ip&gt; &lt;port&gt;   * Spawns a shell in the remote Host(nc listening in the&lt;br /&gt;&lt;br /&gt;other side)&lt;br /&gt;-i                 * System Information&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tlist.exe&lt;/b&gt;&lt;br /&gt;Microsoft ® Windows NT ™ Version 5.1 TLIST&lt;br /&gt;Copyright © Microsoft Corporation. All rights reserved.&lt;br /&gt;&lt;br /&gt;usage: TLIST &lt;&lt;-m &lt;pattern&gt;&gt; | &lt;-t&gt; | &lt;pid&gt; | &lt;pattern&gt; | &lt;-p &lt;processname&gt;&gt;&gt;&lt;br /&gt;&lt;br /&gt;| &lt;-k&gt; | &lt;-s&gt;&lt;br /&gt;          [options]:&lt;br /&gt;          -t&lt;br /&gt;             Print Task Tree&lt;br /&gt;          &lt;pid&gt;&lt;br /&gt;             List module information for this task.&lt;br /&gt;          &lt;pattern&gt;&lt;br /&gt;             The pattern can be a complete task&lt;br /&gt;             name or a regular expression pattern&lt;br /&gt;             to use as a match.  Tlist matches the&lt;br /&gt;             supplied pattern against the task names&lt;br /&gt;             and the window titles.&lt;br /&gt;          -c&lt;br /&gt;             Show command lines for each process&lt;br /&gt;          -e&lt;br /&gt;             Show session IDs for each process&lt;br /&gt;          -k&lt;br /&gt;             Show MTS packages active in each process.&lt;br /&gt;          -m &lt;pattern&gt;&lt;br /&gt;             Lists all tasks that have DLL modules loaded&lt;br /&gt;             in them that match the given pattern name&lt;br /&gt;          -s&lt;br /&gt;             Show services active in each process.&lt;br /&gt;          -p &lt;processname&gt;&lt;br /&gt;             Returns the PID of the process specified or -1&lt;br /&gt;             if the specified process doesn't exist.  If there&lt;br /&gt;             are multiple instances of the process running only&lt;br /&gt;             the instance with the first PID value is returned.&lt;br /&gt;          -v&lt;br /&gt;             Show all process information&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-113746228361930932?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/113746228361930932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=113746228361930932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113746228361930932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113746228361930932'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2006/01/windows-xp-cli-commands.html' title='Windows XP CLI Commands'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-113290061458386483</id><published>2005-11-25T17:29:00.000+11:00</published><updated>2005-11-25T17:36:54.593+11:00</updated><title type='text'>Hard drive recovery with TestDisk</title><content type='html'>I was given a hard drive in a USB cradle that had an NTFS partition(whole disk) on that was "accidentally" removed. Appeared as though the partition table had been re-written to put the partition back . This didn't work and XP wanted to format, and Linux saw it as a bad NTFS partition.&lt;br /&gt;&lt;br /&gt;I got &lt;a href="http://www.cgsecurity.org/index.html?testdisk.html"&gt;TestDisk&lt;/a&gt; and ran it under Linux, point it at /dev/sda. TeskDisks initial analysis didn't find a partition but it allowed a deeper analysis which was able to recover the partition information (seemed to say that it was from a backup (I'm working from memory here)). Once I wrote that back to the drive it appeared as to work as it was originally.&lt;br /&gt;&lt;br /&gt;Result was, fixed drive and me being impressed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-113290061458386483?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/113290061458386483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=113290061458386483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113290061458386483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113290061458386483'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/11/hard-drive-recovery-with-testdisk.html' title='Hard drive recovery with TestDisk'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-113160524234919724</id><published>2005-11-10T17:30:00.000+11:00</published><updated>2005-11-10T17:47:22.363+11:00</updated><title type='text'>Hylafax Pager/SMS via Telstra</title><content type='html'>Just figured out how to get hylafax sending SMS via the sendpage tool that comes with it.  Its a whole lot less obvious that writting a qpage configuration file.  I'm just covering what I considered the "hard bit".&lt;br /&gt;&lt;br /&gt;First thing is to create hylafax/etc/pagermap&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# SMS telstra&lt;br /&gt;04(.*)   018018767/04\1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;What this says is that any number begining with 04 will be sent via the telstra service 018018767 after the slash we reconstruct the phone number (or pin/pager identification number) by appending 04 then \1 says use the use the first matched string of the regex.&lt;br /&gt;&lt;br /&gt;Need to ensure that hylafax/etc/config points to hylafax/etc/pagermap&lt;br /&gt;&lt;br /&gt;Seems that you need to restart hylafax after changing the pagermap file.&lt;br /&gt;&lt;br /&gt;For most other pager services this would be enough but the this service requires a password the password must be put in hylaxfax's "info" database.  To do this go to the dir hylafax/info it contains all the parameters about devices hylafax has talked to.  Find the file that represents the pager service, NB you might want to attempt to send a page first so the file is created for you.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sendpage -p &lt;you mob number&gt; "Just a test"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The info file will end with the phone number 018018767 in this file add&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;pagerPassword: "mnmail"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The &amp; means its a locked down value which can't be overwritten and accoding to the man pages, the file won't be removed by faxcron if its got &amp; parameters in it.  So it should persist after 30days of inactivity.&lt;br /&gt;&lt;br /&gt;That should pretty much do it, yoo should then be able to use sendpage to fire off SMS.  Watch your syslog for the activity.&lt;br /&gt;&lt;br /&gt;As far as I understand it Telstra bills the caller of the service number for the page/sms, I don't know how much that is so don't blame me if you rack up a big phone bill.  its YOUR phone line and YOUR responsible for its use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-113160524234919724?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/113160524234919724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=113160524234919724' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113160524234919724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/113160524234919724'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/11/hylafax-pagersms-via-telstra.html' title='Hylafax Pager/SMS via Telstra'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-112900495220027581</id><published>2005-10-11T14:25:00.000+10:00</published><updated>2005-10-11T17:09:59.343+10:00</updated><title type='text'>Java Printing Again</title><content type='html'>After using the PrintUtilities class in my previous post I found it was a bit rough in places so I've made some improvements.&lt;br /&gt;&lt;br /&gt;The component is now scaled to the page width and there is a away to set a title that is drawn on the printed output.  The title stuff is a little limited, one line only, no font control etc.  But it does what I need it to do for the moment.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;package au.com.phasefale.utils.printing;&lt;br /&gt;&lt;br /&gt;import java.awt.Color;&lt;br /&gt;import java.awt.Component;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;import java.awt.Graphics2D;&lt;br /&gt;import java.awt.print.PageFormat;&lt;br /&gt;import java.awt.print.Printable;&lt;br /&gt;import java.awt.print.PrinterException;&lt;br /&gt;import java.awt.print.PrinterJob;&lt;br /&gt;&lt;br /&gt;import javax.swing.RepaintManager;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * &lt;br /&gt; * PrintUtilities&lt;br /&gt; * &lt;br /&gt; * Originally taken from&lt;br /&gt; * http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-Printing.html&lt;br /&gt; * &lt;br /&gt; * Improved so that component is scaled to page width. Title can be added to the top of the printed&lt;br /&gt; * output.&lt;br /&gt; * &lt;br /&gt; * Created On: 11/10/2005&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;public class PrintUtilities implements Printable {&lt;br /&gt; private Component componentToBePrinted;&lt;br /&gt; private String titleForComponent;&lt;br /&gt;&lt;br /&gt; public static void printComponent(Component c) {&lt;br /&gt;  new PrintUtilities(c).print();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public PrintUtilities(Component componentToBePrinted) {&lt;br /&gt;  this.componentToBePrinted = componentToBePrinted;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public PrintUtilities(Component componentToBePrinted, String title) {&lt;br /&gt;  this.componentToBePrinted = componentToBePrinted;&lt;br /&gt;  this.titleForComponent = title;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void setTitle(String title) {&lt;br /&gt;  this.titleForComponent = title;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void print() {&lt;br /&gt;  PrinterJob printJob = PrinterJob.getPrinterJob();&lt;br /&gt;  printJob.setPrintable(this);&lt;br /&gt;  if (printJob.printDialog())&lt;br /&gt;   try {&lt;br /&gt;    printJob.print();&lt;br /&gt;   } catch (PrinterException pe) {&lt;br /&gt;    System.out.println("Error printing: " + pe);&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public int print(Graphics g, PageFormat pageFormat, int pageIndex) {&lt;br /&gt;  if (pageIndex &gt; 0) {&lt;br /&gt;   return (NO_SUCH_PAGE);&lt;br /&gt;  } else {&lt;br /&gt;   Graphics2D g2 = (Graphics2D) g;&lt;br /&gt;&lt;br /&gt;   g2.setColor(Color.black);&lt;br /&gt;   int fontHeight = (titleForComponent == null) ? 0 : g2.getFontMetrics().getHeight();&lt;br /&gt;   int fontDesent = (titleForComponent == null) ? 0 : g2.getFontMetrics().getDescent();&lt;br /&gt;   int stringWidth = (titleForComponent == null) ? 0 : (int) g2.getFontMetrics()&lt;br /&gt;     .getStringBounds(titleForComponent, g2).getWidth();&lt;br /&gt;&lt;br /&gt;   // double pageHeight = pageFormat.getImageableHeight() - fontHeight;&lt;br /&gt;   double pageWidth = pageFormat.getImageableWidth();&lt;br /&gt;   double componentWidth = (double) componentToBePrinted.getWidth();&lt;br /&gt;   double scale = 1;&lt;br /&gt;   if (componentWidth &gt;= pageWidth) {&lt;br /&gt;    scale = pageWidth / componentWidth;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());&lt;br /&gt;   if (titleForComponent != null) {&lt;br /&gt;    int x = (int) pageWidth / 2 - stringWidth / 2;&lt;br /&gt;    int y = fontHeight;&lt;br /&gt;    g2.drawString(titleForComponent, x, y);&lt;br /&gt;    g2.translate(0, y + fontDescent);&lt;br /&gt;&lt;br /&gt;    // The following print string at bottom of page&lt;br /&gt;    // no need to translate either&lt;br /&gt;    // g2.drawString(titleForComponent, (int) pageWidth / 2 - stringWidth / 2,&lt;br /&gt;    // (int) (pageHeight + fontHeight - fontDesent));&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   g2.scale(scale, scale);&lt;br /&gt;   disableDoubleBuffering(componentToBePrinted);&lt;br /&gt;   componentToBePrinted.paint(g2);&lt;br /&gt;   enableDoubleBuffering(componentToBePrinted);&lt;br /&gt;   return (PAGE_EXISTS);&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public static void disableDoubleBuffering(Component c) {&lt;br /&gt;  RepaintManager currentManager = RepaintManager.currentManager(c);&lt;br /&gt;  currentManager.setDoubleBufferingEnabled(false);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public static void enableDoubleBuffering(Component c) {&lt;br /&gt;  RepaintManager currentManager = RepaintManager.currentManager(c);&lt;br /&gt;  currentManager.setDoubleBufferingEnabled(true);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-112900495220027581?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/112900495220027581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=112900495220027581' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/112900495220027581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/112900495220027581'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/10/java-printing-again.html' title='Java Printing Again'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-112898757350731811</id><published>2005-10-11T09:34:00.000+10:00</published><updated>2005-10-11T09:39:33.516+10:00</updated><title type='text'>Java Printing.</title><content type='html'>Documentation on the Java Printing API is pretty sparse.  However I have finally come across a decent document on it.  This &lt;a href="http://www.apl.jhu.edu/%7Ehall/java/Swing-Tutorial/Swing-Tutorial-Printing.html"&gt;link&lt;/a&gt; explains how to print a Java component. The crux of it comes down to this code which I'm going to repost here just incase the link dies (NB I'm not taking credit for the code below).&lt;br /&gt;&lt;br /&gt;I've previously had high quality printing out of Java using Graphics2D, however I had odd problems when using animated gifs in the App at the same time. The gifs would come up in the printing output, not surprisingly double buffering was causing the problem.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;import java.awt.*;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import java.awt.print.*;&lt;br /&gt;&lt;br /&gt;public class PrintUtilities implements Printable {&lt;br /&gt;private Component componentToBePrinted;&lt;br /&gt;&lt;br /&gt;public static void printComponent(Component c) {&lt;br /&gt;  new PrintUtilities(c).print();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public PrintUtilities(Component componentToBePrinted) {&lt;br /&gt;  this.componentToBePrinted = componentToBePrinted;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void print() {&lt;br /&gt;  PrinterJob printJob = PrinterJob.getPrinterJob();&lt;br /&gt;  printJob.setPrintable(this);&lt;br /&gt;  if (printJob.printDialog())&lt;br /&gt;    try {&lt;br /&gt;      printJob.print();&lt;br /&gt;    } catch(PrinterException pe) {&lt;br /&gt;      System.out.println("Error printing: " + pe);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public int print(Graphics g, PageFormat pageFormat, int pageIndex) {&lt;br /&gt;  if (pageIndex &gt; 0) {&lt;br /&gt;    return(NO_SUCH_PAGE);&lt;br /&gt;  } else {&lt;br /&gt;    Graphics2D g2d = (Graphics2D)g;&lt;br /&gt;    g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());&lt;br /&gt;    disableDoubleBuffering(componentToBePrinted);&lt;br /&gt;    componentToBePrinted.paint(g2d);&lt;br /&gt;    enableDoubleBuffering(componentToBePrinted);&lt;br /&gt;    return(PAGE_EXISTS);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void disableDoubleBuffering(Component c) {&lt;br /&gt;  RepaintManager currentManager = RepaintManager.currentManager(c);&lt;br /&gt;  currentManager.setDoubleBufferingEnabled(false);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void enableDoubleBuffering(Component c) {&lt;br /&gt;  RepaintManager currentManager = RepaintManager.currentManager(c);&lt;br /&gt;  currentManager.setDoubleBufferingEnabled(true);&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-112898757350731811?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/112898757350731811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=112898757350731811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/112898757350731811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/112898757350731811'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/10/java-printing.html' title='Java Printing.'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-112858314615362297</id><published>2005-10-06T17:00:00.000+10:00</published><updated>2005-10-06T17:25:22.616+10:00</updated><title type='text'>JTree row truncation problem</title><content type='html'>Been having a problem (not a huge one) with a JTree on a JScrollPane in a JSplitPane using an extension of DefaultTreeCellRenderer.&lt;br /&gt;&lt;br /&gt;When the cells of the tree containing strings, where made longer they tended to get truncated with "..." despite there being enough room in the JSplitPane to accommodate the change and that it would have been possible to add a scroll bar.&lt;br /&gt;&lt;br /&gt;After a whole lot of stuffing around and trawling search engines I found the solution &lt;a href="http://http//forum.java.sun.com/thread.jspa?threadID=147624&amp;messageID=965394"&gt;here&lt;/a&gt;.  The second to last post contains the solution.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;tree.setLargeModel(true);&lt;br /&gt;&lt;br /&gt;tree.setRowHeight( [non-zero positive value] );&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I turns out that JTree caches the cell dimensions, not surprising if you see the problem occurring. So by setting the above fields it seems to turn the caching off. Trade off being that the row height is fixed.&lt;br /&gt;&lt;br /&gt;I haven't investigated if using a custom implementation of TreeCellRender that uses a JPanel rather than a JLabel to work better, but since I'm using icons it would mean replicating much of what JLabel does.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-112858314615362297?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/112858314615362297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=112858314615362297' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/112858314615362297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/112858314615362297'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/10/jtree-row-truncation-problem.html' title='JTree row truncation problem'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-112528068816282014</id><published>2005-08-29T11:53:00.000+10:00</published><updated>2005-08-29T11:58:08.173+10:00</updated><title type='text'>yum through proxy</title><content type='html'>I found that there a few hiccups getting yum to play nice thru a proxy.  Best solution is to create the following files in /etc/profile.d, and then this will work in *any* shell for *any* user of the system&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; #proxy.sh&lt;br /&gt; export http_proxy=http://host.com:port/&lt;br /&gt; export ftp_proxy=http://host.com:port/&lt;br /&gt; export no_proxy=.domain.com&lt;br /&gt; export HTTP_PROXY=http://host.com:port/&lt;br /&gt; export FTP_PROXY=http://host.com:port/&lt;br /&gt;&lt;br /&gt; #proxy.csh&lt;br /&gt; setenv http_proxy http://host.com:port/&lt;br /&gt; setenv ftp_proxy http://host.com:port/&lt;br /&gt; setenv no_proxy .domain.com&lt;br /&gt; setenv HTTP_PROXY http://host.com:port/&lt;br /&gt; setenv FTP_PROXY http://host.com:port/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you have to authenticate I think it goes like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;http_proxy=http://user:passwd@host.com:portnumber&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I haven't had to do this yet so I can't say for sure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-112528068816282014?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/112528068816282014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=112528068816282014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/112528068816282014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/112528068816282014'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/08/yum-through-proxy.html' title='yum through proxy'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-111706828045150333</id><published>2005-05-26T10:42:00.000+10:00</published><updated>2005-05-26T10:44:40.456+10:00</updated><title type='text'>Optimizing Desktop Linux</title><content type='html'>LJ has an article on optimising Linux for the Desktop &lt;a href="http://www.linuxjournal.com/article/8317"&gt;here&lt;/a&gt;.  They go thru the usual hdparam stuff and a bunch of other things.  But I found the bit on Firefox and its about:config the most interesting.   Time to tinker.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-111706828045150333?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/111706828045150333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=111706828045150333' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111706828045150333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111706828045150333'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/05/optimizing-desktop-linux.html' title='Optimizing Desktop Linux'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-111526600300611620</id><published>2005-05-05T13:40:00.000+10:00</published><updated>2005-05-05T16:08:25.176+10:00</updated><title type='text'>Intel 82562 support in RedHat 7.3 Boot disk</title><content type='html'>I have a network install of RH7.3 boxes.  Hardware changes have seen the mobo used have an Intel82562 ether chipset on board.  The default network install disks don't contain a driver for this.  The default installer disks have also been combined into one image and installed on USB key (I'm not going got cover that here its not that hard to do).&lt;br /&gt;&lt;br /&gt;Intel provides code to build a driver for the Intel 82562 this code produces a module they call e100.  I got the code for this off the CD that came with the mobo.  Problem is the code must be compiled against the boot disk kernel not the kernel installed by the isntallation process.  Here's how I've done it.&lt;br /&gt;&lt;br /&gt;First build the module against BOOT kernel (this has to be performed on the RH7.3 box).&lt;br /&gt;rpm -ivh kernel-BOOT-2.4.18-3.i386.rpm&lt;br /&gt;(kernel source if required)&lt;br /&gt;rpm -ivh kernel-source-2.4.18-3.i386.rpm&lt;br /&gt;cp /usr/src/linux-2.4/configs/kernel-2.4.18-i386-BOOT.config /usr/src/linux-2.4/.config&lt;br /&gt;cd /usr/src/linux-2.4&lt;br /&gt;make oldconfig&lt;br /&gt;make clean&lt;br /&gt;make dep&lt;br /&gt;(I've got the driver source in /tmp/e100-2.2.21)&lt;br /&gt;cd /tmp/e100-2.2.21/src&lt;br /&gt;make&lt;br /&gt;(results in e100.o which is what we want)&lt;br /&gt;I copied the e100.o my workstation but thats not strictly necessary.&lt;br /&gt;&lt;br /&gt;Repackaged the boot disk image (boot.img)&lt;br /&gt;mount boot.img /mnt/loop -o loop&lt;br /&gt;cp /mnt/loop/initrd.img /tmp&lt;br /&gt;umount /mnt/loop&lt;br /&gt;cd /tmp&lt;br /&gt;gzip -dc &lt; initrd.img &gt; initrd.ext2&lt;br /&gt;mount initrd.ext2 /mnt/loop -o loop&lt;br /&gt;mkdir /tmp/modules/&lt;br /&gt;cp /mnt/loop/modules/modules.cgz /tmp/&lt;br /&gt;cd /tmp/&lt;br /&gt;gzip -dc &lt; modules.cgz &gt; modules.cpio&lt;br /&gt;cd modules&lt;br /&gt;cpio -idumv &lt; ../modules.cpio&lt;br /&gt;// This should create a directory under /tmp/modules called 2.4.18-3BOOT/&lt;br /&gt;&lt;br /&gt;Now copy the module in&lt;br /&gt;cp /tmp/e100.o /tmp/modules/2.4.18-3BOOT/&lt;br /&gt;Also modify /mnt/loop/modules/module-info and /mnt/loop/modules/pcitable&lt;br /&gt;module-info I added:&lt;br /&gt;e100&lt;br /&gt;        eth&lt;br /&gt;        "Intel 82562"&lt;br /&gt;And to pcitable I added (not at the end)&lt;br /&gt;0x8086  0x1050  "e100"  "Intel Corp. Ethernet do hickey 82562"&lt;br /&gt;* Be careful with pcitable the format (esp at the EOF) seems to break easly if edited with vim *&lt;br /&gt;&lt;br /&gt;After that we repackage everything.&lt;br /&gt;cd /tmp/modules/&lt;br /&gt;find 2.4.18-3BOOT/ -depth -print | cpio -H crc -ovF modules.cpio&lt;br /&gt;file modules.cpio&lt;br /&gt;  modules.cpio: ASCII cpio archive (SVR4 with CRC)&lt;br /&gt;gzip modules.cpio&lt;br /&gt;cd /tmp&lt;br /&gt;cp modules/modules.cpio.gz /mnt/loop/modules/modules.cgz&lt;br /&gt;umount /mnt/loop/&lt;br /&gt;gzip -c --best &lt; initrd.ext2 &gt; initrd.img&lt;br /&gt;mount boot.img /mnt/loop -o loop&lt;br /&gt;cp initrd.img /mnt/loop/&lt;br /&gt;umount /mnt/loop/&lt;br /&gt;&lt;br /&gt;Now put the boot.img onto the USB device or floppy and hope it all works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-111526600300611620?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/111526600300611620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=111526600300611620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111526600300611620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111526600300611620'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/05/intel-82562-support-in-redhat-73-boot.html' title='Intel 82562 support in RedHat 7.3 Boot disk'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-111416926002263279</id><published>2005-04-22T21:25:00.000+10:00</published><updated>2005-04-22T21:27:40.023+10:00</updated><title type='text'>RAS PPPoE</title><content type='html'>This is a &lt;strong&gt;PPP over Ethernet &lt;/strong&gt;(short:                  &lt;strong&gt;PPPoE&lt;/strong&gt;) implementation for &lt;strong&gt;Windows 95&lt;/strong&gt;,                  &lt;strong&gt;98&lt;/strong&gt;, &lt;strong&gt;98SE&lt;/strong&gt;, &lt;strong&gt;ME&lt;/strong&gt;,                  &lt;strong&gt;NT 4.0&lt;/strong&gt;, &lt;strong&gt;2000&lt;/strong&gt;, &lt;strong&gt;XP&lt;/strong&gt;,                  &lt;strong&gt;.NET&lt;/strong&gt;. PPPoE as a method for establishing PPP connections through Ethernet adapters.  Useful for ADSL connections when you ISP doesn't give you any disk to set up your connection.&lt;br /&gt;&lt;br /&gt;Find it &lt;a href="http://www.raspppoe.com/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-111416926002263279?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/111416926002263279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=111416926002263279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111416926002263279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111416926002263279'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/04/ras-pppoe.html' title='RAS PPPoE'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-111395901170779062</id><published>2005-04-20T10:59:00.000+10:00</published><updated>2005-04-20T11:03:31.706+10:00</updated><title type='text'>Eclipse - Creole</title><content type='html'>This looks very cool.  With &lt;a href="http://www.thechiselgroup.org/creole"&gt;Creole&lt;/a&gt; you can explore your        Java code visually allowing you to see its structure and the links (calls,        accesses, etc) between its different pieces.  Its based on &lt;a href="http://www.thechiselgroup.org/shrimp"&gt;SHriMP&lt;/a&gt; which is a generalized visualizer for hirarchical information. &lt;br /&gt;&lt;br /&gt;Its well worth checking out the demos of both.&lt;br /&gt;&lt;br /&gt;The drawback is that Creole won't work with Java 1.4.2 on Linux.  Seems to have something to do with the way eclipse interates swing components into SWT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-111395901170779062?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/111395901170779062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=111395901170779062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111395901170779062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111395901170779062'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/04/eclipse-creole.html' title='Eclipse - Creole'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-111320035211447452</id><published>2005-04-11T16:14:00.000+10:00</published><updated>2005-04-11T16:19:12.116+10:00</updated><title type='text'>How main() is executed on Linux</title><content type='html'>Was looking into ldd, which turns out to be a script that runs /lib/ld-linux.so.2.  Question comes up how is an ELF binary started.  That is answered on &lt;a href="http://www.linuxgazette.com/issue84/hawk.html"&gt;here&lt;/a&gt;.  What that link doesn't cover is how ld.so is run ?  Is it started as step in the ELF loading or is it code that is inserted in each binary.  The former is most likely but I haven't found anything that explictly states that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-111320035211447452?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/111320035211447452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=111320035211447452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111320035211447452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111320035211447452'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/04/how-main-is-executed-on-linux.html' title='How main() is executed on Linux'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-111052083379072888</id><published>2005-03-11T16:53:00.000+11:00</published><updated>2005-03-11T17:49:27.893+11:00</updated><title type='text'>Eclipse Ant &amp; FTP (networking)</title><content type='html'>Eclipse 3.0.1 already has ant-1.6.2 built in.  It also has a bunch of optional extension to ant inparticular the ant-commons-net.jar and ant-apache-oro.  This is not enough to get FTP working from ant within ant.&lt;br /&gt;&lt;br /&gt;To get ftp (and probably other networking stuff going in ant) you need to get commons-net from the Apache Jakarta site (&lt;a href="http://jakarta.apache.org/site/downloads/downloads_commons.html"&gt;link&lt;/a&gt;).  Also need jakarta-oro which from &lt;a href="http://jakarta.apache.org/site/downloads/index.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Download and extract it into a location of your choosing then in eclipse&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;Use &lt;a href="http://www.jpackage.org/repos.php"&gt;jpackage/yum&lt;/a&gt; install it with&lt;br /&gt;&lt;code&gt;yum install jakarta-commons-net&lt;/code&gt;&lt;br /&gt;&lt;code&gt;yum install oro&lt;/code&gt;&lt;br /&gt;Jar location will be&lt;br /&gt;&lt;code&gt;/usr/share/java/jakarta-commons-net.jar&lt;/code&gt;&lt;br /&gt;&lt;code&gt;/usr/share/java/oro.jar&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Window -&gt; Preferences -&gt; Ant -&gt; Runtime -&gt; &lt;br /&gt;Under &lt;span style="font-style:italic;"&gt;Ant Home entries&lt;/span&gt; hit &lt;span style="font-style:italic;"&gt;Add External JARs&lt;/span&gt;, this adds it to the ant_home/lib.  Point that to the locations of the commons-net and oro jars,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-111052083379072888?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/111052083379072888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=111052083379072888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111052083379072888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111052083379072888'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/03/eclipse-ant-ftp-networking.html' title='Eclipse Ant &amp; FTP (networking)'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11370079.post-111051991100851125</id><published>2005-03-11T16:41:00.000+11:00</published><updated>2005-03-11T16:45:11.010+11:00</updated><title type='text'>What is worka</title><content type='html'>Worka is the opposite to &lt;a href="http://bludja.blogspot.com"&gt;bludja&lt;/a&gt;.  All my work related bits and pieces, notes to self. etc&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11370079-111051991100851125?l=worka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://worka.blogspot.com/feeds/111051991100851125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11370079&amp;postID=111051991100851125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111051991100851125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11370079/posts/default/111051991100851125'/><link rel='alternate' type='text/html' href='http://worka.blogspot.com/2005/03/what-is-worka.html' title='What is worka'/><author><name>P3t3</name><uri>http://www.blogger.com/profile/14516254439896396540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
