scjody is currently certified at Journeyer level.

Name: Jody McIntyre
Member since: 2000-09-26 02:58:50
Last Login: N/A

FOAF RDF Share This

Homepage: http://www.cs.mun.ca/~scjody/

Notes:

Hi.

I'm a software developer in Ottawa, Ontario, Canada. I work for OEone Corporation.

I've been using free software for quite some time now, but my contributions have been limited to a patch here, a bugfix there. Polegame is my first big open source project, and I look forward to releasing it and proving to the world it's not just vaporware :)

Email me at scjody [nospam-AT] cs.mun.ca.
My PGP key, fingerprint 7C3C 562C 6AB3 AB38 84A2 CCC8 A649 0257 850E ECCC.

Projects

Recent blog entries by scjody

Syndication: RSS 2.0
23 Apr 2002 (updated 23 Apr 2002 at 02:21 UTC) »

I finally got around to working on the USB controller board for my DAC on the weekend. Unfortunately, I had to go double sided to get power everywhere it needs to go, but I should be ready to etch later this week.

I've been having some trouble with my house server/router. It started crashing and reporting memory size mismatches on reboot. I traced the former problem to the old DE200 Ethernet adaptor and the latter to bad RAM. Both have been replaced. My current problem is that the replacement card, a via-rhine, has driver issues: eth1: Transmit timed out, status 0000, PHY status 782d, resetting..., after which eth1 must be brought down then up to get it working again. I should be able to fix that though. One good thing about this problem is that I now have a working terminal in my kitchen, a Commodore PC 10-II connected via null modem to the (headless) server. It boots FreeDOS via floppy A:, then loads nansi.sys and an ancient terminal emulator called SEAlink from floppy B:. All Free software! A few issues remain: Dvorak keyboard support, nansi.sys sometimes drops characters (or maybe SEAlink does - can an XT with an 8250 UART handle 9600 baud?), and SEAlink uses ESC as its escape character.

At work, I am doing research into a rather strange problem: how to keep our (highly complex) software independant of the underlying system. People might want to install RPMs that conflict with RPMs we need, and dependancy solvers like Red Carpet will not work perfectly 100% of the time, so I am researching how to create a paralell system, say in a separate directory, that contains exactly the RPMs we want. My current idea is to ptrace all of our processes and remap any I/O they do to our directory. I'm not sure if that will work all the time. I welcome any suggestions on better ways than ptrace, or any comments at all on what I am trying to do. A second option, perhaps, is a hacked glibc, but that won't catch apps that do I/O directly with syscalls. Personally, I am not convinced that creating a paralell system is a good idea, but others at the company want it so I will try my best to make it work.

Oh yeah, amars: gluch from July, 2001

I'm presently missing this month's OCLUG meeting - I was working late and forgot. I'm planning on going to the pub though. At work I produced a graph of our RPM dependancies using dot and stayed late to print it. Unfortunately, even on 32 letter size sheets, it's too cluttered to be readable. Well, it looks neat IMO.

I got a working board etched and assembled for the EEPROM burner. Kinda neat, for about $10 in parts you can build a small, serially-accessible storage device for up to 64 kibibytes. I'm now working on the layout for the USB controller, but intermittantly. I like designing circuits in general, but laying them out in a physically creatable form gets a little dull.

I researched airfares last week for a possible trip to N. Ireland, and have concluded that ITA software are right about the current state of fare-search software. Unfortunately, their database only contains North American flights, so I couldn't try it, but Travelocity is terrible! I searched for flights from Toronto to Belfast and came up with several, but most of the top hits had 18 hours travel time. After a few pointless search tweaks, I searched Toronto to London, picked a flight that looked reasonable, and found a London to Belfast flight that left London 1.5 hours later. This cut the travel time to around 10 hours, and was $20 cheaper! I've decided not to actually make the trip until late August, but now I know how to search for fares. Sigh.

Well, off to the important part of OCLUG :)

My Western Digital drive went from intermittantly bad to intermittantly good, so I replaced it with a venerable Quantum 850Mb that has been in almost continuous use for the past 5 years. Sadly, the software I use every day consumes more than 850Mb, and NFS mounting the drive in my server was just too slow, so I bought a new Maxtor 160Gb. This was a completely ridiculous purchase considering that I barely used the 10Gb capacity of the drive that died, but with things like CRPM and the CBDTPA looming, I thought I should get the largest drive I could afford while unrestricted drives are available. So that's in the server and the server's 60Gb drive is in my desktop. The kernel only sees 137Gb of the drive's capacity - apparently I need a new controller to see the entire 160Gb. Sigh.

Work has been interesting lately, with talk of a merger with "a medium sized Montreal computer services firm". I know the name of the firm but it hasn't been released publically. This has led to a good deal of Fear and Uncertainty at work.

I am currently trying to eliminate the need to restart X between users for our software. This is required to disconnect all X clients and generate a new MIT-MAGIC-COOKIE-1 key for the new user. Killing all X clients without restarting is easy, but generating a new key seems to be impossible. The documentation led me to believe that you could delete the key from the .Xauthority file, shared between client and server, then add a new one, but doing so does NOT remove it from the server's access list, which seems to only get read at startup. X11R6 defines a security extension that allows you to generate and remove keys. But generating a key does not add it to the X server's list, and you can't even do so manually, so the XSecurityGenerateAuthorization function seems nothing more than a cumbersome PRNG. Ah, but with the ..RemoveAuthorization function I could generate a few thousand keys before the Xserver starts, dole them out one at a time to users, and revoke old keys when the user logs out, right? Well yes, except that Revoke requires an auth_in identifier for the key that is only available from Generate, which generates keys I can't use! Finally, I thought of a kludge: X has an -audit option that prints a message when clients connect and disconnect. I could watch for "invalid" clients and kill them. Sadly, an exhausive search of the X documentation reveals no way to translate the number -audit prints into something actually useful, like a Window XID. If I am wrong about any of this, please let me know, but after a lot of experimentation it really looks that way.

My USB DAC project is progressing slowly. I need to etch a circuit board for the USB controller since it's surface mount. For practice, I have been trying to etch a 24Cxx EEPROM programmer, but many of the traces end up being too thin. For something as simple as the programmer, I can retouch them with a resist pen, but the USB controller board is too complex for that. Also, PCB is possibly the most user-surly application I have ever used. Very few commands work as documented, and many don't work at all. Several times, I have been reduced to randomly pressing function keys until I select the tool I want to use. If there was a suitable Free vector graphics program I would use that instead, but I haven't been able to find one.

On a sadder note, I haven't worked on the Polegame in so long that it should be declared legally dead. For now.

Apparently my diary page is one of the top Google hits for Radio Shack Hull Quebec. Interesting.

I am now fully annoyed at Western Digital. One of my hard drives has failed, which I thought would be covered by the 3 year warranty. But apparently they mean 3 years from manufacture date, which was in September, and won't replace it. So I registered www.nowarranty.com as a protest site..

zhaoway just mentioned Scheme, which is interesting to me because I'm learning it. I was writing a program for a local programming contest in Scheme, but didn't have time to complete it for the deadline. I would like to finish it this weekend, but maybe I'll do my taxes instead (they owe me money :).

At work, we're selling a 1.0 version of our product, now called HomeBase, which you probably saw on slashdot in January. We're currently extremely close to a 1.1 release. The pop machine at work is 65dB, 1m from the back and 61dB 1m from the front. Even in an office filled with computers, that's loud.

I made it to OCLUG in time for Rasmus's PHP presentation.

Work got a pop machine on Wednesday. So now instead of buying pop at the supermarket next door at 39 cents a can and giving it to us, they buy it from the vending company at 65 cents a can and sell it to us for 25 cents. You do the math :) The problem with the machine is that it is incredibly loud. It has two modes: "quiet" mode, where a fan sound is accompanied by a dull 60Hz "throbbing", and "jet airplane" mode where the above two sounds are combined with a whiny compressor and an even louder fan. I moved desks to get away from it. I can still hear it, but the sounds has dropped to an "ignorable" level.

In other work-related news, Real Networks and Macromedia are bastards. They both offer free as in beer plugins for download on their websites, but to distribute those with our software, they want vast sums of money. An NDA prevents me from disclosing the amounts requested, but it really reminds me of l0pht's demands for advance copies of BO2K. So I'd like to take this opportunity to plug the GPL Flash Library and pray for someone to reverse engineer Real's proprietary protocols.

I actually worked on Polegame on Sunday. At this rate I might still finish porting the game in less time than it took Rob to write it.

chakie: I have found that Tremclad rust paint will stick to pretty well anything. And if you paint the inside of plexiglass, it looks really cool, but not exactly non-glossy :)

8 older entries...

 

scjody certified others as follows:

  • scjody certified scjody as Apprentice
  • scjody certified abg as Apprentice
  • scjody certified drivers as Apprentice
  • scjody certified mstarch as Journeyer
  • scjody certified Judas as Master
  • scjody certified keverets as Apprentice
  • scjody certified mort as Journeyer
  • scjody certified ajh as Journeyer

Others have certified scjody as follows:

  • scjody certified scjody as Apprentice
  • sphair certified scjody as Apprentice
  • drivers certified scjody as Apprentice
  • sh certified scjody as Apprentice
  • lerdsuwa certified scjody as Apprentice
  • jlf certified scjody as Apprentice
  • keverets certified scjody as Apprentice
  • fxn certified scjody as Apprentice
  • mort certified scjody as Journeyer
  • zeevon certified scjody as Journeyer
  • jedi certified scjody as Journeyer
  • rkrishnan certified scjody as Journeyer
  • arascofield16 certified scjody as Apprentice

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page