Living without Windows!by Jos Visser
Part 3: I go to the office
Cheers erupted when I entered our office the monday after my being reborn. Although we use Windows a lot (mostly out of necessity), the general feeling amongst my fellows and collegues is strongly in favour of UNIX. Though some of my collegues are already UNIX-only users, most of us use a mix of Windows and UNIX. Of those, I am by far the most mobile one, and after having converted to UNIX, my Windows integration problems are by far the most intricate and exciting. I will be teaching a seminar on the 21st of December about managing a mix of UNIX and Windows NT systems. I will surely having something interesting to tell this time! As my collegues surrounded my laptop they congratulated me with my bold move and I eagerly impressed them with ApplixWare's capabilities. As all the fuss died down, it was time to go to work.
Obviously, to perform some meaningful work I would have to connect to the office LAN. Technically this is obviously not a problem: each desk in our office has an RJ45 cable floating around for laptop use. IP-wise this means that I would have to change the TCP/IP configuration of my laptop (Jadzia) again. Now this is something that I am quite used to. As I carry Jadzia from location to location I plug her into each and every LAN that I come across, which means that I have to adjust my TCP/IP settings for every network that I "visit". Under Windows NT this meant firing up the "Network" control panel and manually adjusting the settings there. Depending on the exact nature of the changes, a reboot might be necessary to let Windows NT understand the configuration changes.
Now UNIX give me much more control over issues like this. Naturally, I would not use YaST to change the IP configuration manually each time I plug Jadzia into another network. Command wise, the "ifconfig" and "route" commands can be used at any time to dynamically change the IP configuration of one or more interfaces. To change the DNS lookup I just have to change the "/etc/resolv.conf" to point to a different name server. To automate this process I wrote a small script called "net" that I could parameterise with a location identifier. The "net" script would then change the IP configuration with parameters that are suitable for the location.$ suIf I ever go to a new location, I just have to change the "net" script to contain the IP configuration parameters of this new location. I wrote the "net" script in such a way that it is easy to extend with new locations. When moving to another network, I have to execute "net" (as user "root") in order to change the IP configuration. I perceive this to be only a temporary solution. What I would really like to do is to integrate this as a boot time option, where the system asks me for a location when it boots, and configures the network accordingly. Maybe a nice mini-project for the coming holidays?
# /root/bin/net osp
Setting network configuration for site OSP
$ telnet mailgate
My collegue Jurgen had been working on an analysis of a complex NFS/NIS cluster for a customer in the east of the Netherlands. He had written down his findings in a report that we would deliver to the customer as the first phase of the redesign of that cluster. It is a long standing OSP tradition that I review documents before they are shipped to the customer. I had proudly boasted about the Word compatibility features of ApplixWare so when Jurgen e-mailed me the document I was quite confident that I could import it without any problems. Nothing could have been further from the truth! When I started the Applix Word import things went pretty quiet......... However long I waited, the document did not appear!
When I executed "top" to see what was going on, it told me that the Applix Words process was pretty busy doing something, if only I knew what. Fortunately, Linux contains a command called "strace" that allows you to track the system calls that a process makes. An "strace" of the Words process revealed that it was busy writing data to a file. This is in itself not bad, however when I reviewed the data that was written it occurred to me that the data patterns were repeating! When I looked in the "/tmp" directory I saw a temporary file that was growing like wildfire, obviously Applix was looping! When I killed the Applix process (using the "kill" command) the temporary file was automatically removed.
Ten years experience in IT taught me that it is never a bad idea to try and repeat an action that goes wrong. As you can probably attest to, usually any errors mysteriously disappear the second time! This time, I was not in the favour of the gods of IT: the same problem manifested itself. Hmmm, a bug in ApplixWare? I am however a quite resourceful fellow. I asked Jurgen to export the document to Rich Text Format (RTF) and send it to me again. I downloaded the RTF document to my local hard disk, and tried to import it into Applix Words. To my horror another error occurred! Applix Words complained that the format of the RTF file was not correct. I conferred somewhat with my collegues and we formulated the hypothesis that the RTF file as created by Microsoft Word contained long lines, leading to a buffer overflow in Applix. My collegue Wout wrote a small Perl script to determine the length of the longest line of a file. In this case it turned out that the longest line in the RTF file was 262 characters. Being a C/C++ programmer myself I can imagine that the import routines of ApplixWare restrict the maximum line length to 256 characters. I really should take this up with Applix.
However, I still was not out of ideas. I asked Jurgen to export the document as a WordPerfect file, which I subsequently tried to import in Applix Words. Another error popped up. This was definitely not my lucky day! As this document seems to defy import, I finally asked Jurgen to print the document so I could review it the old fashioned way. I was beaten for now :-(.
was rather uneventful. Although I did not do anything particularly special, I was engulfed by a very strange, special, feeling. I felt conceptually home at last :-).