See recent comments. RSS feed of all comments.
ImageMagick book
MythTV book
|
 |
|
 |
|
Sat, 28 Dec 2002
|
|
|
|
|
 |
|
 |
|
Long time no write. Spent lots of time on family, and very little time on coding. Playing with code which can render PDF files to PNG bitmaps. Very cool. One day I might even finish it.
The regression test results for the pandalex PDF parser are as follows today:
2372 PDFs parsed:
segfault = 12
parse failed = 16
other fault = 0
ok = 2344
These are random PDFs pulled from everywhere I could find them. If you have interesting PDFs (especially from slightly odd generators such as Oracle, and Great Plains), then feel free to email them to me. The bigger the better (within reason).
It toook me a little while to realise that GNU time only has the GNU options if the binary name isn't time. How buggered is that?
Another question on the debugging front. Why are there so many pages on the Internet (as documented by google), which have the abort man page, and therefore show up in a search for SIGABORT, but don't discuss why you might be sent this signal? Do people really think it helps the world if they publish the Redhat man pages? I could understand if the manpages were a little harder to find, like some of the libtiff ones, but these are all stock things.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Wed, 25 Dec 2002
|
|
|
|
|
 |
|
 |
|
Christmas. Lots of presents for Andrew, I offically got my trampolene, and I also got a cool nurf bazooka. Heaps of people over, so little coding done. I did get an opportunity to break pandalex though...
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 23 Dec 2002
|
|
|
|
|
 |
|
 |
|
Twas the day before Christmas, and all through the house, everything is silent, cause everyone's gone out.
Waiting for work to get their act together and get the network happy enough for me to be able to work from home again.
Ahhh. I understand the CVS logging problem I mentioned a couple of days ago. One of the members of my final year project group (Blake Swadling) appears to have hand editted the CVS respository files (the ones with ,v at the end of their names). He seems to have managed to damaged the respository in some subtle way in the process.
My snapshot of the repository before he played still works, so I will just submit that to the lecturer.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 22 Dec 2002
|
|
|
|
|
 |
|
 |
|
In the new building. The decor is nice, but it sure would be good to have power at my desk, and to be able to get into the building out of hours...
Played a little with shdns, and pandalex. One day I might just manage to finish a project... Just in case, started another project which has been on the todo list for a while -- I'll let you know more if I ever get anywhere...
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sat, 21 Dec 2002
|
|
|
|
|
 |
|
 |
|
Finished off side, a little ditty that took an hour or two. It takes a filter arguement, and two file names. It then runs the two files through the filter (one at a time), and then displays the output of each beside each other. Therefore, the command:
./side "/home/mikal/opensource-stable/mi/i - < %s"
../shdns/sample-response ../shdns/shdns-response | less
Takes two DNS packets, and displays them after they have been pretty printed. The output looks like this:
/home/mikal/opensource-stable/mi/i - < ../shdns/sample-response | /home/mikal/opensource-stable/mi/i - < ../shdns/shdns-response
|
0 135 0x87 0207 | 0 135 0x87 0207
1 210 0xD2 0322 | 1 210 0xD2 0322
2 133 0x85 0205 | 2 10 0xA 012
3 128 0x80 0200 | 3 56 0x38 070 '8'
4 0 0x0 00 | 4 0 0x0 00
5 1 0x1 01 | 5 0 0x0 00
6 0 0x0 00 | 6 1 0x1 01
7 1 0x1 01 | 7 0 0x0 00
8 0 0x0 00 | 8 1 0x1 01
9 1 0x1 01 | 9 0 0x0 00
10 0 0x0 00 | 10 0 0x0 00
11 0 0x0 00 | 11 0 0x0 00
12 3 0x3 03 | 12 0 0x0 00
13 119 0x77 0167 'w' | 13 3 0x3 03
14 119 0x77 0167 'w' | 14 119 0x77 0167 'w'
15 119 0x77 0167 'w' | 15 119 0x77 0167 'w'
16 7 0x7 07 | 16 119 0x77 0167 'w'
17 115 0x73 0163 's' | 17 7 0x7 07
18 116 0x74 0164 't' | 18 115 0x73 0163 's'
19 105 0x69 0151 'i' | 19 116 0x74 0164 't'
20 108 0x6C 0154 'l' | 20 105 0x69 0151 'i'
21 108 0x6C 0154 'l' | 21 108 0x6C 0154 'l'
22 104 0x68 0150 'h' | 22 108 0x6C 0154 'l'
23 113 0x71 0161 'q' | 23 104 0x68 0150 'h'
24 3 0x3 03 | 24 113 0x71 0161 'q'
25 99 0x63 0143 'c' | 25 3 0x3 03
26 111 0x6F 0157 'o' | 26 99 0x63 0143 'c'
27 109 0x6D 0155 'm' | 27 111 0x6F 0157 'o'
28 0 0x0 00 | 28 109 0x6D 0155 'm'
29 0 0x0 00 | 29 1 0x1 01
30 1 0x1 01 | 30 3 0x3 03
31 0 0x0 00 | 31 119 0x77 0167 'w'
32 1 0x1 01 | 32 119 0x77 0167 'w'
33 192 0xC0 0300 | 33 119 0x77 0167 'w'
[snip]
It handles line wrapping and stuff like that, but it is not a visual diff. It might one day be, who knows?
You can get the code from here.
posted at: 04:00 | path: /side | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Finished off side, a little ditty that took an hour or two. It takes a filter arguement, and two file names. It then runs the two files through the filter (one at a time), and then displays the output of each beside each other. Therefore, the command:
./side "/home/mikal/opensource-stable/mi/i - < %s"
../shdns/sample-response ../shdns/shdns-response | less
Takes two DNS packets, and displays them after they have been pretty printed. The output looks like this:
/home/mikal/opensource-stable/mi/i - < ../shdns/sample-response | /home/mikal/opensource-stable/mi/i - < ../shdns/shdns-response
|
0 135 0x87 0207 | 0 135 0x87 0207
1 210 0xD2 0322 | 1 210 0xD2 0322
2 133 0x85 0205 | 2 10 0xA 012
3 128 0x80 0200 | 3 56 0x38 070 '8'
4 0 0x0 00 | 4 0 0x0 00
5 1 0x1 01 | 5 0 0x0 00
6 0 0x0 00 | 6 1 0x1 01
7 1 0x1 01 | 7 0 0x0 00
8 0 0x0 00 | 8 1 0x1 01
9 1 0x1 01 | 9 0 0x0 00
10 0 0x0 00 | 10 0 0x0 00
11 0 0x0 00 | 11 0 0x0 00
12 3 0x3 03 | 12 0 0x0 00
13 119 0x77 0167 'w' | 13 3 0x3 03
14 119 0x77 0167 'w' | 14 119 0x77 0167 'w'
15 119 0x77 0167 'w' | 15 119 0x77 0167 'w'
16 7 0x7 07 | 16 119 0x77 0167 'w'
17 115 0x73 0163 's' | 17 7 0x7 07
18 116 0x74 0164 't' | 18 115 0x73 0163 's'
19 105 0x69 0151 'i' | 19 116 0x74 0164 't'
20 108 0x6C 0154 'l' | 20 105 0x69 0151 'i'
21 108 0x6C 0154 'l' | 21 108 0x6C 0154 'l'
22 104 0x68 0150 'h' | 22 108 0x6C 0154 'l'
23 113 0x71 0161 'q' | 23 104 0x68 0150 'h'
24 3 0x3 03 | 24 113 0x71 0161 'q'
25 99 0x63 0143 'c' | 25 3 0x3 03
26 111 0x6F 0157 'o' | 26 99 0x63 0143 'c'
27 109 0x6D 0155 'm' | 27 111 0x6F 0157 'o'
28 0 0x0 00 | 28 109 0x6D 0155 'm'
29 0 0x0 00 | 29 1 0x1 01
30 1 0x1 01 | 30 3 0x3 03
31 0 0x0 00 | 31 119 0x77 0167 'w'
32 1 0x1 01 | 32 119 0x77 0167 'w'
33 192 0xC0 0300 | 33 119 0x77 0167 'w'
[snip]
It handles line wrapping and stuff like that, but it is not a visual diff. It might one day be, who knows?
You can get the code from here.
posted at: 04:00 | path: /site | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Started the work required to roll Nick's honours extension to GDMS into the main app. Once that is done and I have done a little more cleaning up, it will be ready to announce on this site.
In the process discovered that the CVS repository at uni seems to have issues:
[snip]
cvs server: Logging cvs001/contrib/wxwindows/docs/pdf
cvs server: Logging cvs001/datasets
cvs server: Logging cvs001/docbook
cvs server: Logging cvs001/docbook/guide
cvs server: Logging cvs001/docbook/guide/figures
cvs server: Logging cvs001/lectures
cvs server: Logging cvs001/manuals
cvs server: Logging cvs001/meetings
cvs server: Logging cvs001/presentation
cvs server: Logging cvs001/prototype
cvs server: Logging cvs001/reports
cvs server: Logging cvs001/source
cvs [server aborted]: unrecognized operation '\x20' in /cvs/cvs001/source/cepLs.cpp,v
[root@localhost cvs001]#
That's why my CVS log reporting wasn't working properly... I did another log and get the same error, so I don't think it is a transitory problem. Anyway, something to put onto the TODO list to look at fixing...
It's been very warm the last couple of days -- high thirties (celcius), which is warm for us.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Finished off side, a little ditty that took an hour or two. It takes a filter arguement, and two file names. It then runs the two files through the filter (one at a time), and then displays the output of each beside each other. Therefore, the command:
./side "/home/mikal/opensource-stable/mi/i - < %s"
../shdns/sample-response ../shdns/shdns-response | less
Takes two DNS packets, and displays them after they have been pretty printed. The output looks like this:
/home/mikal/opensource-stable/mi/i - < ../shdns/sample-response | /home/mikal/opensource-stable/mi/i - < ../shdns/shdns-response
|
0 135 0x87 0207 | 0 135 0x87 0207
1 210 0xD2 0322 | 1 210 0xD2 0322
2 133 0x85 0205 | 2 10 0xA 012
3 128 0x80 0200 | 3 56 0x38 070 '8'
4 0 0x0 00 | 4 0 0x0 00
5 1 0x1 01 | 5 0 0x0 00
6 0 0x0 00 | 6 1 0x1 01
7 1 0x1 01 | 7 0 0x0 00
8 0 0x0 00 | 8 1 0x1 01
9 1 0x1 01 | 9 0 0x0 00
10 0 0x0 00 | 10 0 0x0 00
11 0 0x0 00 | 11 0 0x0 00
12 3 0x3 03 | 12 0 0x0 00
13 119 0x77 0167 'w' | 13 3 0x3 03
14 119 0x77 0167 'w' | 14 119 0x77 0167 'w'
15 119 0x77 0167 'w' | 15 119 0x77 0167 'w'
16 7 0x7 07 | 16 119 0x77 0167 'w'
17 115 0x73 0163 's' | 17 7 0x7 07
18 116 0x74 0164 't' | 18 115 0x73 0163 's'
19 105 0x69 0151 'i' | 19 116 0x74 0164 't'
20 108 0x6C 0154 'l' | 20 105 0x69 0151 'i'
21 108 0x6C 0154 'l' | 21 108 0x6C 0154 'l'
22 104 0x68 0150 'h' | 22 108 0x6C 0154 'l'
23 113 0x71 0161 'q' | 23 104 0x68 0150 'h'
24 3 0x3 03 | 24 113 0x71 0161 'q'
25 99 0x63 0143 'c' | 25 3 0x3 03
26 111 0x6F 0157 'o' | 26 99 0x63 0143 'c'
27 109 0x6D 0155 'm' | 27 111 0x6F 0157 'o'
28 0 0x0 00 | 28 109 0x6D 0155 'm'
29 0 0x0 00 | 29 1 0x1 01
30 1 0x1 01 | 30 3 0x3 03
31 0 0x0 00 | 31 119 0x77 0167 'w'
32 1 0x1 01 | 32 119 0x77 0167 'w'
33 192 0xC0 0300 | 33 119 0x77 0167 'w'
[snip]
It handles line wrapping and stuff like that, but it is not a visual diff. It might one day be, who knows?
You can get the code from here.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Fri, 20 Dec 2002
|
|
|
|
|
 |
|
 |
|
I've had a bit of feedback recently that this site has been a little hard to read. Hopefully this tweak to the site skin will ease some of that pain... Let me know if you have any ideas for improvement.
posted at: 04:00 | path: /site | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
|
Well, the company moved to a new building today, which meant that we didn't get much work done... Spent the afternoon at a team Christmas barbeque because the network was turned off at 11am...
|
|
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
We moved building at work yesterday. These pictures are from wandering around upstairs harrassing people... Afterwards, R & D went out to a christmas barbeque.
posted at: 04:00 | path: /events | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 17 Dec 2002
|
|
|
|
|
 |
|
 |
|
Long time no write. I assembled my Christmas present with Catherine early this year, which is good because it required a whole kind of screw driver that I didn't own -- finding an open hardware store on Christmas day might have been a little hard.
Social work golf pictures are now online...
The company moves building at the end of the week.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sat, 14 Dec 2002
|
|
|
|
|
 |
|
 |
|
I was a good boy and took another offsite backup of my important data collection. Now I just have to get the mound of CDs somewhere than on my wife's desk in the study...
Saw Jess' house (which caught fire) for the first time today. Wow. I have to go back with a camera (and probably a tripod) sometime.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 12 Dec 2002
|
|
|
|
|
 |
|
 |
|
Spent the day is a meeting with Peter from Monash.NET discussing whether we should do .NET at work. He certainly seems to know his stuff, and .NET isn't as bad as I had first though.
CAUUG committee meeting in the afternoon, and then home to assembly Catherine's christmas present -- a swinging seat.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Back in this meeting with Peter again. Spent the morning discussion ASP.NET, which is only of passing relevance to me. The biggest problem is having to constantly fight the assumption that all clients are running the latest version of IE.
Sent a Knoppix CD to Melbourne to be put on the front cover of the next AUUGN. It turns out Greg Lehey was having troubles burning it...
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 10 Dec 2002
|
|
|
|
|
 |
|
 |
|
About two weeks ago I gave a talk about my shell based DNS server shdns. At the time, it couldn't reply to traffic because of an unknown error. Tridge suggested that it was because the UDP socket was "disconnected" (i.e. has no specific end point), and therefore my shell script couldn't use write to reply to traffic.
Well, I finally got some time to look at this, and, as ever, Tridge is right. Here's the sample programs I used to investigate this:
// Disconnected UDP socket example: this example simply reads from clients (there can be more
// than one), and returns what they said straight back to them. You'll note that we can't use
// read and write to get to the traffic, as this is not available for disconnected UDP sockets.
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char *argv[]){
int lfd;
struct sockaddr_in servaddr;
struct sockaddr clientaddr;
char buf[1024];
size_t len;
socklen_t clen;
// We will listen with this file descriptor
if((lfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0){
fprintf(stderr, "Error whilst starting to listen\n");
exit(42);
}
// Define what we are listening for
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(1234);
// Bind to the address
if(bind(lfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){
perror("Couldn't bind");
exit(42);
}
// Do stuff
while(1){
len = 1024;
printf("Reading...\n");
clen = sizeof(clientaddr);
if((len = recvfrom(lfd, buf, len, 0, (struct sockaddr *) &clientaddr,
&clen)) < 0){
perror("Socket read error");
exit(42);
}
if(len == 0) break;
// The buffer is not null terminated
buf[len] = '\0';
printf("Read: %s\n", buf);
// And send it straight back
if(sendto(lfd, buf, len, 0, &clientaddr, clen) < 0){
perror("Socket write error");
exit(42);
}
}
}
This one above is the standard socket example. It just works, because we can use the socket specific read and write calls for the data.
// Disconnected UDP socket example: this example simply waits fro traffic, and the starts
// a process to deal with the results. One process per packet, one packet per process.
// This version wont work, because the socket is not connected. In fact, cat is smart enough
// to warn us about this:
//
// cat: write error: Transport endpoint is not connected
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/poll.h>
#include <netinet/in.h>
int main(int argc, char *argv[]){
int lfd;
struct sockaddr_in servaddr;
struct pollfd pfd;
// We will listen with this file descriptor
if((lfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0){
fprintf(stderr, "Error whilst starting to listen\n");
exit(42);
}
// Define what we are listening for
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(1234);
// Bind to the address
if(bind(lfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){
perror("Couldn't bind");
exit(42);
}
// Setup the list of file descriptors we want to wait for events on
pfd.fd = lfd;
pfd.events = POLLIN | POLLPRI;
// Do stuff
while(1){
if(poll(&pfd, 1, -1) < 0){
perror("Waiting for new data failled");
exit(42);
}
printf("Data arrived\n");
// Spawn a child to handle this packet
switch(fork()){
case -1:
perror("Couldn't spawn child to handle connection");
exit(42);
case 0:
// Child process -- setup the file descriptors, and the run the helper application
dup2(lfd, 0);
dup2(lfd, 1);
execl("/bin/cat", "cat", NULL);
perror("Exec failled");
exit(42);
break;
default:
// Parent process
break;
}
}
}
This one is the exec version of the first example. This is basically exactly what inetd and xinetd do. It doesn't work, because cat doesn't know that it has to use the socket specific read and write, instead of the normal ones.
// Connected UDP socket example: this example simply reads from clients (there can be more
// than one), and returns what they said straight back to them. You'll note that we can now use
// read and write to get to the traffic...
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char *argv[]){
int lfd;
struct sockaddr_in servaddr;
struct sockaddr clientaddr;
char buf[1024];
size_t len;
socklen_t clen;
// We will listen with this file descriptor
if((lfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0){
fprintf(stderr, "Error whilst starting to listen\n");
exit(42);
}
// Define what we are listening for
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(1234);
// Bind to the address
if(bind(lfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){
perror("Couldn't bind");
exit(42);
}
// Do stuff
while(1){
// We need to peek at the first part of the packet to determine who to connect to
len = 1;
printf("Reading...\n");
clen = sizeof(clientaddr);
if((len = recvfrom(lfd, buf, len, MSG_PEEK, (struct sockaddr *) &clientaddr,
&clen)) < 0){
perror("Socket peek error");
exit(42);
}
if(len == 0) break;
// Connect
if(connect(lfd, &clientaddr, clen) < 0){
perror("Could not connect");
exit(42);
}
// And now we can just use the normal read and write
len = 1024;
if((len = read(lfd, buf, len)) < 0){
perror("Socket read error");
exit(42);
}
if(write(lfd, buf, len) < 0){
perror("Socket write error");
exit(42);
}
}
}
Here's an example of just the socket code, but connected, so that we can just use the read and write functions on the file descriptor (as if it was a file).
// Connected UDP socket example: this example this example simply waits fro traffic, and the
// starts a process to deal with the results. One process per packet, one packet per process.
// You'll note that we can now use read and write to get to the traffic, and that this all
// works...
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char *argv[]){
int lfd;
struct sockaddr_in servaddr;
struct sockaddr clientaddr;
char buf[1024];
size_t len;
socklen_t clen;
// We will listen with this file descriptor
if((lfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0){
fprintf(stderr, "Error whilst starting to listen\n");
exit(42);
}
// Define what we are listening for
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(1234);
// Bind to the address
if(bind(lfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){
perror("Couldn't bind");
exit(42);
}
// Do stuff
while(1){
// We need to peek at the first part of the packet to determine who to connect to
len = 1;
printf("Reading...\n");
clen = sizeof(clientaddr);
if((len = recvfrom(lfd, buf, len, MSG_PEEK, (struct sockaddr *) &clientaddr,
&clen)) < 0){
perror("Socket peek error");
exit(42);
}
if(len == 0) break;
// Connect
if(connect(lfd, &clientaddr, clen) < 0){
perror("Could not connect");
exit(42);
}
printf("Data arrived\n");
// Spawn a child to handle this packet
switch(fork()){
case -1:
perror("Couldn't spawn child to handle connection");
exit(42);
case 0:
// Child process -- setup the file descriptors, and the run the helper application
dup2(lfd, 0);
dup2(lfd, 1);
execl("/bin/cat", "cat", NULL);
perror("Exec failled");
exit(42);
break;
default:
// Parent process
break;
}
}
}
And finally, this is what inetd and xinetd should do. And now cat works as a UDP echo server...
The next step is to write up the patches to inetd and xinetd. It strikes me as being singularly useless otherwise...
Peter Morgan also seems to think I am on the right track with my honours thesis, which is a good thing.
Company social golf in the evening. Pictures up soon!
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 09 Dec 2002
|
|
|
|
|
 |
|
 |
|
Josh got a job at Citadel (my mate Doug runs the managed services area out there, but Josh got the job strictly on merit). Well done. It's been raining here for the last day or so, which is nice, because we are officially in a drought... It's quite cold for a Summer day as well. I am even wearing a jumper.
Back onto shdns whilst waiting for compiles of work type code.
We have some consultant from monash.NET coming down at the end of the week to explain to us why .NET would make our lives much happier. I don't think I disagree -- anything has to be better than DCOM.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 08 Dec 2002
|
|
|
|
|
 |
|
 |
|
TODO list for today:
Done.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sat, 07 Dec 2002
|
|
|
|
|
 |
|
 |
|
Working more on my honours extension, which is a web interface to the main application which we wrote for the undergraduate bit. Things are going well. It should be pretty easy to get it in on time and working well (unless something evil comes up).
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Well, no closer to actually having a video capture happening, despite having carried the box with the capture card out into the lounge and plugging it into the nice aerial on the roof. Perhaps I have the tuner options wrong. I'll have to surf on that some more.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Fri, 06 Dec 2002
|
|
|
|
|
 |
|
 |
|
Playing with video capture under linux. Plugged in Ben George's Maxtrox Millenium G200 Marvel (AGP), and had pain getting my AMD K6-500 machine to recognise that it could use an AGP video card. I'm blaming the Gigabyte GA-5AX motherboard at the moment, which has this wierd "use AGP " setting, which it seems to be ignoring.
Played briefly with Ian's pixelview video capture card. First I had to guess the tuner type and put that in modules.conf. Once I had done that I still don't get a picture, but I am not sure if that is because of the aerial or not. I will move the machine closer to a real aerial tomorrow and try again...
Basically, no closer to video capture after an hour or two.
Checkout http://www.linuxprofessionalsolutions.com/pavlicek/tv.html for a quick guide...
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Wed, 04 Dec 2002
|
|
|
|
|
 |
|
 |
|
Well, here I am again, in my study. I can't believe that it is Thursday already. Time flies.
Been doing lots of stuff on final year project honours extensions.
I was having an arguement with a female friend this afternoon about whether her makeup was effective. My arguement is that makeup is intended to make people look different, and she still looked like Kate. I suggested next time she might try to look like Dracula, or Atilla the Hun.
She countered with an arguement that makeup is meant to draw attention to your good features (a likely story!). When I suggested a more effective way was to draw arrows on her face, she got all grumpy. I don't understand women...
Hacked up an extension to wget which will force it to only get filenames ending in .mp3. This is useful for grabbing the content of the linux show mp3 archive. I can see it being useful for other things as well. When I get around to it I will make it more general and submit it to the Maintainer...
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 03 Dec 2002
|
|
|
|
|
 |
|
 |
|
I hurt my lower back yesterday during a wild grab to not drop my son Andrew in the shower. As a result, I can't bend over or do anything interesting today. I even had to cancel my trip to the gym last night. Bugger.
Spent more time on my honours thesis, so no interesting Open Source coding last night...
Hurrah. Catherine's mother is officially a diabetic.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 02 Dec 2002
|
|
|
|
|
 |
|
 |
|
The seminar on Saturday seemed to go well, and my notes are now available online in the presentations area. There is a problem with the way that UDP sockets are handled by inetd which basically means that writing UDP servers with straight simple shell (e.g. echos etc) is impossible. Tridge and I had a discussion about how to fix this. I will have to look into it when I have some free time...
Working on that web server at work again. I will oneday get enough time to finish it. Got an abstract in for an educational conference in the middle east that University of Canberra is interested in sending some people to. We'll have to see what comes of that aas well.
Started documenting my honours extension to final year project -- fun fun fun.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Wed, 27 Nov 2002
|
|
|
|
|
 |
|
 |
|
Spent some time last night working on my DNS server so that it's ready for the talk on Saturday... I'm currently having pain getting xinetd to write back to the UDP connection. I need to look into this further...
Cross the 100 linux CDs burnt barrier... So far I think I am up to about 105. Not bad for about 4 CLUGs.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 26 Nov 2002
|
|
|
|
|
 |
|
 |
|
Spent some time installing ISYS desktop today in an attempt to debug why our synonym searches don't see to do what I want them to -- I am hoping it is something I have done wrong. If this doesn't work out then the next step is to contact one of the people I know at ISYS and see what they have to say...
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 25 Nov 2002
|
|
|
|
|
 |
|
 |
|
Well, an exam today (in the afternoon), and then all I have left on the todo list for this week is preparing for my CLUG talk, and my talk at the AUUG Canberra chapter mini-conference thingie. I think I care more about preparing for the mini-conference than I do for the LUG at this stage, as we already have four talks and a competition judging lined up for this month -- we have no hope of getting through all of that in the normal time allocated, and people like to chat during pizza.
I suspect people wont be keen to listen to more talking during the pizza itself.
Once I have done the talk at the AUUG mini-conference, then I will be ready to announce to the general world what I have been working on (and am talking about). It is nothing special, but is a little quirky, and I wanted to let AUUG run with it first...
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 24 Nov 2002
|
|
|
|
|
 |
|
 |
|
Silly arguement with Kristy about the final year project, and whether or not she could claim copyright over all of my work... I think the CVS commit report might have a hint about why she wants to have her name mentioned on every source file.
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sat, 23 Nov 2002
|
|
|
|
|
 |
|
 |
|
The mailling list monitoring part of patchtrack is currently monitoring the following mailling lists. If you think I should include more here, then let me know at mikal@stillhq.com and I will see what I can do...
- Linux kernel mailling list
- USB devel
- Kernel janitor
- acpi4linux
- alsa devel
- PPC devel
- PPC embedded
- PPC iSeries
- PPC64 devel
posted at: 04:00 | path: /patchtrack | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Fri, 22 Nov 2002
|
|
|
|
|
 |
|
 |
|
Final year project is nearly over. The talk went well, now we just need to hand in the thesis and documentation. Then I can do honours.
I have documentation due, an exam, a local LUG talk, and a conference talk, all this coming week. I guess that makes me still busy...
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 19 Nov 2002
|
|
|
|
|
 |
|
 |
|
Got the flu, and now I'm losing my voice. I wish I wasn't sick for once...
posted at: 04:00 | path: /diary | permanent link to this entry
|
|
|
|
|
|