Name: Dave Fenwick
Member since: 2005-02-08 00:07:57
Last Login: 2010-07-16 21:07:03
I consider myself a student of knowledge. Over the past 20+ years, I've attained a lot of knowledge in a lot of different areas.
One of the things that nudged me into the computer science field was my insatiable hunger for problem solving. Back before computers were personally accessible, I started doing puzzles in puzzle magazines. In 1976, my Mother bought me a one year subscription to Games Magazine. I still have that first year's worth of magazines tucked away somewhere, with all of the puzzles completed (although it took a few years of maturity to complete a few of them.)
This fascination with puzzles led to my first exposure to computers. When I realized I could tell a computer to solve problems, I was completely hooked. My first program was a checkers program written in AppleBasic. I attempted to write an application that could learn how to play checkers. It included a depth search algorithm so the computer could attempt to play a reasonable game against a human.
23 years later, I'm now fluent in C, C++, several dialects of Basic, Fortran, Cobol, several different assemblers, many different CPU-level instruction sets (x86, 68000, Alpha, SPARC, Intel 8096 microcontroller, Intel 8052 microcontroller), Python, PHP, Perl, Pascal, Object Pascal, and a variety of other languages.
I think my forte these days is my ability to write a clean user interface that is understandable by all levels of users. I've written several (~25) for commercial firms. I'm currently in the planning process for a management interface for Samba 4.0 servers.
- Member, Samba Development Team
A couple weeks ago I finally got fed up with computer noise in my home office. It was literally a sound dungeon in here, with the biggest culprit being my dual Xeon machine. I built this box myself, using an Intel dual Xeon motherboard, and putting it in the Intel-recommended server chassis - an Intel SC5250-E. While I love the layout of the case and all of the options I've dropped into it, the fans in it were horrendously loud.
So I did a pile of research into quiet computing. Apparently I'm not alone with regard to overall machine noise in my work environment. The 2 biggest culprits in this case were the 120mm exhaust fan, and the 92mm intake fan for the hard drive bay. Both of these fans were running at approximately 3000rpm, and they were making a heck of a racket.
One site in particular had quite a lot of information. Silent PC Review is a great resource for information regarding quiet PC components. I highly recommend looking around that site if you're interested in quieting your PC down. Especially look at the forums. There are a lot of people out there that have done trial and error with a variety of hardware components to find the quietest stuff they can find.
After reading a lot of reviews on both the site and in the forums, I decided to go with a Nexus 120mm exhaust fan and a Nexus 92mm hard drive bay fan. Total cost was about $45. The standard mounting space for the 120mm fan in the back of the case requires a 38mm deep fan, but it's a replaceable plastic bracket, so I opted to remove the bracket and directly mount a 25mm deep fan on the case.
The fans came in on Thursday. I installed them Saturday night. It's by far the best $45 I've spent in a LONG time. The noise dropped from about -50dBa down to about -24dBa. It's astounding. The only thing that makes noise now is the power supply, and that noise is manageable.
Next up is to replace the hard drives in my 4 older-model Linux boxes. One of the drives in particular is relatively noisy. But I have to try to find some time to do the replacement on that machine. I'm currently overwhelmed with projects.
I've looked at nearly all of the open source Linux distributions that can be installed in roughly 128MB of disk drive space, and I can't find any that I like. As I posted before, I have a bunch of thin clients that have 128MB of compact flash ram on them. What I'm looking for is a build that basically acts as a complete redirector, allowing users to connect to XDM machines via XDMCP, or to Windows boxes via RDP. It sounds simple, but it seems pretty hard to find something that covers all of these bases. I've also been looking at Xfce4 as the main interface, and putting all of the X sessions and RDP sessions in a window.
Unfortunately all of the distributions are just missing one thing or another. I could easily build a GUI for doing the lab machine selection, but the distributions all seem to be somewhat behind on the kernels and software versions. LTSP provides a stable environment, but it uses an NFS mounted root directory for the clients. I've done some hacking to see if I can get it in an embedded state, but that's an ongoing project that's taking more time than I figured it would.
Having said all of this, I did download the Metrowerks distribution builder for the HP5515 thin client. It's ok, but it's expensive (~ $15k for the deployment environment) and all it really is is a simple GUI for package management along with some scripts for deploying the BCP. I don't know if there's an open source package for doing this type of thing. I've done some research and haven't come up with anything yet, so I've been planning a distribution builder for building up Linux distributions using existing binary packages.
Advogato Trust Metrics
***tap tap tap*** is this thing on? Do the metrics work? I know it's an esoteric question regarding metrics, but just how many certifications are required before one actually GETS certified at a particular level? It also appears that people aren't certifying people very often. I try to certify when I read something that justifies the certification, but it's hard to judge a person's merit based solely on a perceived inclusion in a particular project.
It might be worthwhile to have the certification selection at the TOP of the diary pages rather than at the end of the diary pages. I generally read the latest diary entry for people, since I've generally already read their previous few diary entries.
We bought a pile of HP T5515 thin clients at our lab. The box itself is pretty cool, sporting a caruso processor, 128MB of RAM, 128MB of flash RAM, and other sundries. It comes with a thin client Linux build that HP produces for it that has Xfce as the desktop environment.
Unfortunately they omitted Xnest from the build and they force all rdesktop sessions into full screen mode, which drives me bananas. So I went out to the HP site to see what I had to do to create a new build environment for the box. It told me to go visit Metrowerks to get the build environment for the thin client. Mind you, we paid $450 for these boxes in an effort to save money. Metrowerks wants $7000 just for the build environment. That's more than all of the clients we purchased cost us. Just for the build environment. Argh.
So I started looking for options. The thin client world in Linux is all over the place. LTSP has a decent build, but it's somewhat server-centric. I'd like to put the build on the 128MB flash RAM (that acts as an IDE drive within the kernel.) I installed a distribution then hacked it apart and moved it to my Solaris server, along with the PXELinux environment and got a client booting into LTSP. Then I looked at the build. It doesn't have Xnest either. Argh.
So I've started the process of building my own distribution based on the LTSP distribution. More appropriately, I'm going to submit some modules to the LTSP distribution to make it more like what I'm looking for in a thin client build.
I've basically been running "thin" client architectures for years, but back in the day we called them X terminals. I must say, though, that with the open source projects that are out there, the universal thin client architecture is finally becoming a reality. It's really nice being able to run X, RDP, Citrix, or even standard terminal sessions on a single client with a very small build.
I've been thinking about emulators lately. Most of the machines that have a microprocessor or microcontroller operate similarly. I've been working out whether it would be feasible to write an emulator creator, with which you could describe components of the emulator, including all of the various hardware contained within it.
In basic terms, a CPU is really quite simple to describe. Take an instruction and do something with it. Most of them are linear, and even those CPUs that provide separate pipelines could probably be described.
This thought process came about because, as a former musician, I own a pile of synthesizers. One of them I own, A Roland W-30 music workstation, is basically a self-contained computer. It has an Intel 8098 (a variant of the Intel 8096) microcontroller on the system board. It also has a SCSI interface, floppy disk drive, and an LCD display. The workstation, which started production in 1989, went end of life by 1992 or so, and Roland discontinued building new operating system releases for it by 1994. Unfortunately there are features I've always wanted to have in the W-30, but never got around to doing anything about.
Another owner of a W-30 plucked out the EEPROMs from his W-30 and ripped all of the BIOS-level routines from them. I spent a month or two reverse engineering the entire operating system of the box to understand it, hoping I might be able to add the features I was looking for on it. After a while it became apparent that I'd probably have to write an emulator for it. That's when I stopped because I didn't have time to work on it.
This past week I started writing an emulator for it. It's not hard, it's just very time consuming. I've got many of the opcodes working and I have a plan of attack for building the emulators for the other components in the box. But while I've been looking at it, I've realized I could probably build a much more generalized emulator builder.
Anyway, I wonder if someone has already come up with something like this. If anyone knows of something like this, please post.
Some background: I worked for a company many years ago that built Smalltalk environments. Actually, I worked for that company twice. The first time I worked there, I wrote MacIntosh applications for one of our clients using a combination of MPW and Smalltalk. I left the company for about 5 years when there was a big lull in the business. During that time, my boss built a Smalltalk environment called Agents OS for the MacIntosh. That link will take you to his latest product, which is a system called SmallScript.
Anyway, about 5 years after I left, my old boss called and we got to talking about building a Windows version of AOS. I was newly married at the time and had just purchased a house. But I packed up my 4 computers, all my books, and some assorted other things like clothes into my 4-Runner, and drove to California with the intention to move there because I believed in what he was doing. Unfortunately, due to life-happenings, it didn't work out.
I haven't touched Smalltalk since then, which is a travesty because Smalltalk is probably the most elegant environment I've ever worked in. Squeak is a Smalltalk environment. The group they've assembled for Squeak is like an all-star list of players from the Smalltalk world: Dan Ingalls, Alan Kay, Ted Kaehler, John Maloney, and Scott Wallace.
I played with it all last night, and it took me back to my days of writing Smalltalk applications on the Xerox 6085 workstation when I worked in a small artificial intelligence lab in the late 1980s. It's a really nifty environment with the kernel built in none other than Smalltalk. It has all of the normal extensibility you'd find in a Smalltalk environment. Best of all, the Squeak Team wants to keep it "open" so people can extend it to their heart's desire.
Either you'll love Smalltalk or you'll hate it. Either way, it's what drove the object train.
dfenwick certified others as follows:
Others have certified dfenwick as follows:
[ Certification disabled because you're not logged in. ]
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!