<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Steve Friedl&apos;s Weblog</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/blog/" />
<modified>2006-12-03T06:06:08Z</modified>
<tagline>I had a backup. Really.</tagline>
<id>tag:www.unixwiz.net,2007:/blog//3</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2006, steve</copyright>
<entry>
<title>Anti-freeze in your TV?</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/12/antifreeze_in_y.html" />
<modified>2006-12-03T06:06:08Z</modified>
<issued>2006-12-03T02:59:42Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2078</id>
<created>2006-12-03T02:59:42Z</created>
<summary type="text/plain"> My 13-year-old Pioneer Elite Pro-97 50&quot; rear projection TV finally died an unrepairable death, and since the local trash hauler won&apos;t take a TV, I decided to tear it apart and separate the &quot;hazardous materials&quot; from the cabinet. Then...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
My 13-year-old Pioneer Elite Pro-97 50" rear projection TV finally died an unrepairable death, and since the local trash hauler won't take a TV, I decided to tear it apart and separate the "hazardous materials" from the cabinet. Then the cabinet is just furniture and can be taken away easily.
</p>
<p>
While taking apart the three-tube gun assembly - where each gun is a small 7" high-power single-color TV tube - to separate the lens assemblies from the CRT, the last "lens" was actually the glass cover for a reservoir containing a clear viscous fluid. Said fluid promptly exited the chamber, and I'm not sure I could have been any more surprised. I was <b>not</b> expecting my TV to drool all over my carpet.
</p>
<p>
It turns out that this is <b>optical grade ethylene glycol</b> (anti-freeze), and it's used as a coolant for the CRT. These things put out tremendous amounts of heat, and this apparently draws it away from the face of the tube. It also seems to be serving as part of the first lens to focus the beam before the real lenses get it.
</p>
<p>
There was not <i>one iota</i> of clue that this was a surprise waiting to happen: not in the user's manual, not a label on the tubes, not a mention in the "Be careful around the tubes" stickers right next to the tubes. I don't think I could have been more surprised.
</p>
<p>
<a href="http://www.prestone.com/">Prestone</a>&trade; for my TV: who knew?
</p>]]>

</content>
</entry>
<entry>
<title>Steve&apos;s Election Analysis - Nov 6, 2006</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/11/steves_election.html" />
<modified>2006-11-06T15:45:18Z</modified>
<issued>2006-11-05T02:39:55Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2077</id>
<created>2006-11-05T02:39:55Z</created>
<summary type="text/plain"> If you don&apos;t live in California, you won&apos;t care about this at all. Even if you do live here, you still may not :-) I&apos;m way, way late for this election cycle, but have finally finished my customary analysis...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>California Elections</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
If you don't live in California, you won't care about this at all. Even if you do live here, you still may not :-)
</p>

<p>
I'm way, way late for this election cycle, but have finally finished my customary analysis of the ballot measures in the upcoming California general election. I have been writing about these for years, posting them to the web since 2000, and normally I have them done far in advance.
</p>

<p>
But a crushing workload (I have no life) has kept me from spending the many hours required to complete this until today. Four days before the election is not really very helpful, but it's better late than never.
</p>

<p>
My analysis is nonpartisan, and mainly viewed from a libertarian perspective. I try to find what the measure is really about, and this cycle was surprised to find that most of the measures didn't have many hidden agendas (even if the titles were a little misleading).
</p>

<p>
This was very slow slogging, but I really do read nearly everything I can find on the measures. I save every political mailer I receive, and it's taken weeks of off-and-on work to finish this.
</p>

<p>
But it's done, and I believe it offers a fair view of the issues. Mainly I care that you make an educated vote: if my commentary gets you to vote the other way for reasons that matter to you, my job is done.
</p>

<ul>
<li><a href="/voting/">Steve's Election Analysis: Nov 6, 2006</a> </li>
</ul>]]>

</content>
</entry>
<entry>
<title>&quot;user-defined ObjectClass has inappropriate SUPerior&quot;</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/10/userdefined_obj_1.html" />
<modified>2006-10-25T17:55:58Z</modified>
<issued>2006-10-25T16:23:32Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2076</id>
<created>2006-10-25T16:23:32Z</created>
<summary type="text/plain"> This is mainly written for Google. I&apos;ve been engaged in building a custom LDAP directory with OpenLDAP on a Linux system, and it&apos;s been pretty slow slogging. The net is full of resources for how to use LDAP for...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>LDAP</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
This is mainly written for Google.
</p>

<p>
I've been engaged in building a custom LDAP directory with <a href="http://www.openldap.org">OpenLDAP</a> on a Linux system, and it's been pretty slow slogging. The net is full of resources for how to use LDAP for authentication, or to hook a mailserver into an existing directory, but very little for building entirely new systems from scratch. "Schema design" is going to be mostly self taught.
</p>

<p>
Though I could do what I want with MySQL, I really believe that a hierarchical, nonrelational system is a better fit to my application, (particularly because of better distributed, partitionable replication) but I still have a long learning curve ahead of me.
</p>

<p>
I had one particular error when defining a schema, and Google did not help me, so I'll plant the resolution here for the next one down this road.
</p>

<p>
After creating a schema to define the object of interest, trying to start the server produced an error message:
</p>

<pre style="background: #FEE; margin-left: 3em; padding-left: 0.5em">
<b>user-defined ObjectClass has inappropriate SUPerior</b>
</pre>

<p>
I'm defining a network device to be monitored, and that includes a whole raft of attributes. Hostname, IP address, description, parameters to various types of monitoring, and so on. This also includes SNMP credentials to make these queries.
</p>


<pre style="background: #FEE; margin-left: 3em; padding-left: 0.5em">
objectclass ( myObjectClass:1
    NAME '<b style="color: red">mySnmpCredentials</b>'
    DESC 'All the stuff needed to access SNMP'
    <b style="color: red">AUXILIARY</b>
    MAY ( mySnmpVersion
        $ mySnmpCommunity
        $ mySnmpUseTCP
        $ mySnmpAuthKey
        $ mySnmpEncrKey ) )

objectclass ( myObjectClass:2
    NAME 'myDevice'
    DESC 'A monitored device'
    <b style="color:red">SUP</b> ( top $ <b style="color: red">mySnmpCredentials</b> ) STRUCTURAL
    MUST ( cn $ myHostname )
    MAY ( myEnabled
        $ myDescription
        $ myComments
        $ myDnsIPAddress
        $ myDnsAliases
        $ myDnsTxtRecord
        $ myBGPRouteCountType
        $ myBGPRouteCountEnabled ) )
</pre>

<p>
Though a <b>myDevice</b> object works fine when all the attributes are provided in a long list, attempting to abstract out the SNMP credentials (which are likely to be used elsewhere in this same form) produced the above error.
</p>

<p>
It turns out that using <b>AUXILIARY</b> for the mixin object is responsible for this: <u style="color: red">changing it to <b>ABSTRACT</b> fixed it right up</u>.
</p>

<p>
It's not entirely clear to me what the difference is between <b>STRUCTURAL</b> and <b>AUXILIARY</b> object types, and it appears that some servers don't enforce a distinction.
</p>]]>

</content>
</entry>
<entry>
<title>Reloading Linux - How hard could it be?</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/09/reloading_linux.html" />
<modified>2006-09-24T16:46:47Z</modified>
<issued>2006-09-24T16:15:10Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2075</id>
<created>2006-09-24T16:15:10Z</created>
<summary type="text/plain"> God didn&apos;t want me to reload the OS on a customer server, though it wasn&apos;t apparent right away that this was going to be such an involved process. This was to be a routine reloading of Fedora Core 5...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
God didn't want me to reload the OS on a customer server, though it wasn't apparent right away that this was going to be such an involved process. This was to be a routine reloading of Fedora Core 5 - how hard could it be?
</p>

<p>
Scenarios: customer's office working late (by myself), a stack of 5 Dell PowerEdge servers that were quite old but still entirely functional. All were purchased in 2000, were no longer under warranty (Dell apparently won't sell extended warranty coverage for servers past 5 years). One machine simply needed an upgrade from Red Hat 9 to something newer, so I was to wipe and reload. Did a quick network backup of the data, rebooted the machine and pushed the eject button on the CD-ROM to load the first disc.
</p>

<p>
<b>Or not.</b> Heard a small buzzing sound for about the right amount of time, but no ejectage was seen. Hmmm. Used the paperclip eject method, and one end of a rubber drive belt popped out. Guess that belt reached end of life - it happens, I'll just swap one of the other units in.
</p>

<p>
<b>Or not.</b> <u>All five units</u> had the same failure - not a working CD-ROM in the stack. Well that's sure a nasty turn, but no matter: I had just bought a new USB CD-ROM drive and had it in my car.
</p>

<p>
<b>Or not.</b> This "new" unit purchased from Fry's was in fact a customer return, and it had a sticker on the side noting the condition of the product: "Missing USB cable". How about that! I'll just scrounge around the office for a USB cable and get cracking.
</p>

<p>
<b>Or not.</b> Scoured the IT supply cabinet and all over the office - not a spare USB cable in the place. Not a lot of choices at the office supply store, but found one suitable. Returned ready to reload.
</p>

<p>
<b>Or not.</b> These old PowerEdge units simply do not support USB booting - Dell added that a generation or two later. Well ok, so we'll just replace the drives: cheap CD-ROM drives suitable for OS loading couldn't be more than $40-$50, right? And they can be picked up at the office supply place.
</p>

<p>
<b>Or not.</b> These are <u>SCSI</u> units, not IDE, and are more expensive and harder to find. At this point I decided that God won this round, so I headed home.
</p>

<p>
I had a few old SCSI CD-ROM drives on my shelf, and was able to return another day to complete the job, but the string of hurdles (especially all five NEC CD-ROM units failing the same way) was something I'd certainly not have been able to plan for.
</p>]]>

</content>
</entry>
<entry>
<title>What is &quot;stopfaxnow.com&quot;?</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/09/what_is_stopfax.html" />
<modified>2006-09-03T21:48:35Z</modified>
<issued>2006-09-03T21:10:52Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2074</id>
<created>2006-09-03T21:10:52Z</created>
<summary type="text/plain"> My fax machine gets one interesting/useful fax for every 20 or 30 ones it actually receives (the rest are spam), and today I got a curious one: Help us put an end to junk faxes once and for all....</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>Spam / email</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
My fax machine gets one interesting/useful fax for every 20 or 30 ones it actually receives (the rest are spam), and today I got a curious one:

<blockquote><hr /><p>
Help us put an end to junk faxes once and for all. It's time to get paid back for the paper and wasted supplies that junk faxes have cost you. Did you know that you oculd get $25 to $100 for each junk fax advertisement sent to your fax machine?</p>

<p>
This is a public announcement from StopFaxNow.com, a group dedicated to informing people about the recent changes taking place in the law. Our goal is to help people like you put a STOP to the companies behind unsolicited faxes.
</p>

<p>
If you were sent COMMERCIAL FAX ADVERTISING, like a product of some kind, a hot stock or travel offering, or some locak service, without your prior consent, the advertiser's behind those faxes may be liable and you could be receiving a settlement for each fax.
</p>

<p>
As of August 1, 2006, we have completed our new national database of collection organizations that will legally persue junk fax offenders and send you a portion of the money they receive. All you do is mail them your unwanted junk faxes, up to four years old, and they do the rest. These companies are starting to make a real difference and their hard work is paying off.
</p>

<p>
We offer this list free of charge so take advantage of it. Now join the crusade to stop junk faxes and help make it un profitable for them to continue business!
</p>

<p>
Log on to our website at www.stopfaxnow.com and register today. Our site also contains free resources, articles, tools and tips that will help you stop fax spammers. And while you are there, be sure to sign up for our quarterly newslatter designed to keep you informed of all the latest news and events as they happen.
</p>

<center><b>WWW.STOPFAXNOW.COM</b></center>
<hr /></blockquote>

<p>
OK, so what's this about? Google shows nothing, and the website itself is kinda thin on details, but my overall impression is that this borders on a scam, but is not quite one (though this is subject to change).
</p>

<p>
The law in some areas provide for damages if one gets unsoliciated faxes - and I get at least a dozen a week: grrr - and this looks to me like a front for collection agencies or attorneys who plan to make a business out of going after the senders.
</p>

<p>
By getting people to send in their fax spam, they crank up the damages, then share a portion of the fine/penalty with those who were part of the "class" (term not used in the legal sense).
</p>

<p>
Superficially this has some minor appeal - sue the spammers! - but the fact that the fax itself had no header or removal information seems to put it in the same category as the objectional material. 
</p>

<p>
The website itself contains very thin information, and their "resources" are really just a few links to the common places (the FTC, the FCC). It looks contrived to me, not a real "resource center".
</p>

<p>
We do see some hint about what they have in mind:
</p>
<blockquote><hr />
In the month of October, we will focus on retiring your old fax machine and show you how to receive all your fax documents over the internet, or by using a fax modem right inside your computer. This will give you the ability to print only the documents you want, delete the ones you don't and minimize the use of your supplies, saving you money!
<hr /></blockquote>

<p>
Hmmm, so they'll offer some kind of e-fax service perhaps? I think we have those already, and the other proprietors don't resort to spamming to push their business.
</p>

<p>
Looking into <b>stopfaxnow.com</b> domain, we find it registered in Hong Kong:
</p>

<blockquote><hr />
Registrant: <br />
   Ling Corporation <br />
   35 Central Plaza <br />
   18 Harbour Road <br />
   Hong Kong, Hong Kong  142587
<hr />
</blockquote>

<p>
The webservers are located there too, and this all just looks really suspicious considering they're shooting for targets in the United States.
</p>

<p>
Until I get more information, I'm giving this a thumbs down. Anybody else know anything about these guys?
</p> ]]>

</content>
</entry>
<entry>
<title>Excellent overview of memory technologies</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/08/excellent_overv.html" />
<modified>2006-08-30T16:19:18Z</modified>
<issued>2006-08-30T15:52:12Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2073</id>
<created>2006-08-30T15:52:12Z</created>
<summary type="text/plain"> I remember the good old days of buying RAM, where the only two parameters were: Capacity (32 megabytes) Speed (60 nsec) Those days are long gone. Every time I have to spec memory for a server, I start to...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
I remember the good old days of buying RAM, where the only two parameters were:
</p>
<ul>
<li> Capacity (32 megabytes)
<li> Speed (60 nsec)
</ul>

<p>
Those days are long gone.
</p>

<p>
Every time I have to spec memory for a server, I start to wallow in all the various attributes: DDR, ECC, Registered, PC1600, Dual-Ranked, etc. and even when looking at a full list of required specs, there's always the fear that I'm somehow missing a parameter that matters.
</p>

<p>
For instance: I once bought a stack of RAM upgrades for some Dell Optiplex workstations, but found that only DIMMs with chips on both sides were supported, not DIMMs with chips on only one side. Huh?
I assume this has something to do with rank or bank, but they flat-out did not work. This was not listed anywhere in the specs for the RAM, and it contributes to this "I don't know how to order RAM" mentality.
</p>

<p>
While researching this today, I ran across an outstanding Flash presentation from <a href="http://www.corsairmicro.com">Corsair</a> that covers almost all of this. It's quite technical but doesn't require a BSEE to follow, and it's by far the most informative reference I've ever seen.
</p>

<p>
I learned, for one thing, what "Registered" memory is, and it made perfect sense. In unregistered RAM, the address lines from the memory controller go to each individual chip on each DIMM, and this can be 4, 8, or even 32 chips on a single stick. As more DIMMs are added, this presents a growing <u>electrical</u> load on the output of the memory controllers: how can the memory controller drive all those inputs?
</p>

<p>
By adding a <b>register</b> - kind of like a buffer - at the edge of the DIMM, the memory controller sees <b>one</b> load per DIMM, not 4 or 8 or more, and this allows for much electrically cleaner address signals.
</p>

<p>
They even covered how to read a timing spec such as <b>2.5-3-3-7-1T</b>, and how it's even possible that half a clock can be involved (in DDR RAM, data is transferred on the both the rising and falling edges of the clock).
</p>

<p>
It's just an outstanding presentation:
</p>

<blockquote>
<a href="http://www.corsairmicro.com/memory_basics/">Corsair - Memory Basics</a>
</blockquote>

<p>
The only real missing area is a discussion on single- <i>versus</i> dual- ranked memory and the cost/performance tradeoffs involved. I think this presentation is slightly dated, so this area of ranking (not banking!) may not have settled down yet.
</p>]]>

</content>
</entry>
<entry>
<title>Gotcha with Outlook 2003 with RPC-over-HTTPS</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/08/gotcha_with_out_1.html" />
<modified>2006-08-03T21:18:48Z</modified>
<issued>2006-08-03T17:30:53Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2072</id>
<created>2006-08-03T17:30:53Z</created>
<summary type="text/plain"> One of this nicest features of Outlook 2003 is that it can &quot;phone home&quot; to the Exchange server using not only the normal NETBIOS protocols, but it can also proxy this over a secure web connection. This is ideal...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
One of this nicest features of Outlook 2003 is that it can "phone home" to the Exchange server using not only the normal NETBIOS protocols, but it can also proxy this over a secure web connection. This is ideal for remote users who need the full-strength Outlook integration (as opposed to the almost-Outlook of OWA), all without the problems associated with a VPN.
</p>
<p>
It's just a great mechanism, there there is a lot of good guidance out there. My favorite is <a href="http://www.msexchange.org/tutorials/Troubleshooting-RPC-over-HTTPS-Part1.html">Troubleshooting RPC over HTTPS</a> by fellow MVP Rodney Buike, but I've found a corner case which caused me to waste a maddening amount of time.
</p>

<p>
My environment is an SBS2003 machine hosted at a data center, and 100% of the real users being remote, not part of the domain, and with no access to any of the NETBIOS-ish protocols that Outlook normally uses to talk with Exchange.
</p>

<p>
Furthermore, the machine's real hostname uses the <b>.lan</b> extension (others typically use <b>.local</b>), as we didn't want to use our real company domain because Windows would then want to "own" it. So by calling it <b>sbs.company.lan</b>, Active Directory wouldn't interfere with the rest of our DNS.
</p>

<p>
The gotcha is during initial setup of the mailbox, you must enter the <b>internal</b> hostname of the Exchange server, and this will fail the first time. The remote users are not in the same data center, have no access to the <b>.company.lan</b> nameservers, so of course name lookup will fail. This is expected!
</p>

<p>
Simply clicking through these error messages allows you to get to the <b>[More Settings]</b> button to configure the Exchange Proxy Settings in the Connections tab. At this point you'll enter the <b>external</b> name of the machine (<b>https://sbs.company.com</b>) to allow it to make the actual TCP connection to the IIS-based proxy.
</p>

<p>
Once the proxy is configured, it becomes the exclusive communications channel for this session to Exchange. Then later, when Outlook tries to connect, it passes the <b>internal</b> name (found in the initial setup screen) over the protocol exchanged via the proxy.
</p>

<p>
My mistake was using the <b>external</b> name (the hostname of the proxy) where Outlook wanted the name of the Exchange server. Even though the proxy was indeed making the proper SSL connection, the use of the wrong name passed over the protocol failed the connection.
</p>

<p>
My familiarity with DNS was leading me astray: "that name can't resolve" got me to use the external hostname, and it always failed.
</p>

<p>
It turns out that SBS users have a little bit of extra help configuring this: the RWW (Remote Web Workplace) default website on the SBS server itself. When visiting the site (http://sbs.example.com/Remote) and logging in, there is a <b>Configure Outlook via the Internet</b> link in the box on the left; it provides instructions filled in with the particular parameters required.
</p>

<p>
So we learned something here, though I don't think I appreciate the difficulty of debugging this.
</p>]]>

</content>
</entry>
<entry>
<title>New Tech Tip: Remote Access for SBS2003</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/08/new_tech_tip_re.html" />
<modified>2006-08-01T18:14:43Z</modified>
<issued>2006-08-01T18:07:45Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2071</id>
<created>2006-08-01T18:07:45Z</created>
<summary type="text/plain"> I have quite a few customers who run SBS (Microsoft Small Business Server) 2003, and everybody wants remote access of one kind or another. Email, files, their desktop - everybody wants in from the outside. The easy part is...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>Tech Tips</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
I have quite a few customers who run SBS (Microsoft Small Business Server) 2003, and everybody wants remote access of one kind or another. Email, files, their desktop - everybody wants in from the outside.
</p>

<p>
The easy part is getting them access - the hard part is making sure it's secure, and it got overwhelming quickly to see how many choices and variation there were.
</p>

<p>
So I undertook a comprehensive survey of the available choices and produced another Tech Tip which looks to have pretty wide coverage of the technology in question. In addition to the background and details, I include a set of Pro and Con lists for each one, which hopefully will guide somebody into making the proper tradeoffs.
</p>

<p>
It's mainly intended for SBS2003 users &mdash; SBS has some special features not available elsewhere &mdash; but should nevertheless still be useful to most of the Windows Server variants.
</p>

<ul>
<li> <a href="/techtips/sbs-remote-access.html">Unixwiz.net Tech Tip: Remote Access for SBS2003 - Let Us Count the Ways</a></li>
</ul>]]>

</content>
</entry>
<entry>
<title>New tool: whoamIP</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/07/new_tool_whoami_1.html" />
<modified>2006-08-01T17:49:18Z</modified>
<issued>2006-08-01T04:10:10Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2070</id>
<created>2006-08-01T04:10:10Z</created>
<summary type="text/plain"> A customer of mine asked how he could determine, from /etc/profile at login time, the IP address of remotely-connected telnet users: He wanted to be able to figure out the general area they were logging in from - the...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>Tools</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
A customer of mine asked how he could determine, from <b>/etc/profile</b> at login time, the IP address of remotely-connected telnet users: He wanted to be able to figure out the general area they were logging in from - the office? one of several warehouses? etc. - to determine things like default printers for their business application.
</p>

<p>
This is not as easy as it sounds. There's no direct network call to make, because the shell itself is not connected to the network (it's insulated by a pseudo-tty), and the indirect methods are not widely portable. This information is usually found in the <b>utmpx</b> structure, but is not always readily available (the <b>who</b> command on SCO UnixWare doesn't seem to expose this information).
</p>

<p>
So I wrote a program, <b>whoamIP</b>, to make a best effort at retrieving this information, and so far it works properly on SCO UnixWare, SCO Open Server, and on Linux.
</p>

<ul>
<li>
<a href="/tools/whoamip.html">Unixwiz.net Tool: whoamIP</a>
</li>
</ul>

<p>
Feedback (especially on portability issues) is welcomed.
</p>]]>

</content>
</entry>
<entry>
<title>New  Tech Tip:  Converting Win32 Kernel-mode Print Drivers to User Mode</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/07/new_tech_tip_co.html" />
<modified>2006-07-30T06:54:05Z</modified>
<issued>2006-07-30T06:37:12Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2069</id>
<created>2006-07-30T06:37:12Z</created>
<summary type="text/plain"> I&apos;ve been doing print drivers on and off for a long time - back from the NT 3.51 days - but recently had to do my first conversion of a driver from kernel mode to user mode. Most of...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>Tech Tips</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
I've been doing print drivers on and off for a long time - back from the NT 3.51 days - but recently had to do my first conversion of a driver from kernel mode to user mode.
</p>

<p>
Most of the actual graphical parts of the driver are more or less unchanged, but the housekeeping and support functions differ enough to make this a challenge the first time. A few of the really trivial changes were not obvious, and I burned days and days trying to track them down.
</p>

<p>
Microsoft's documentation on this is really thin, and I looked all over the internet without success for some comprehensive guidance, so I decided to write a Tech Tip on the subject.
</p>

<p>
I started taking notes almost immediately, keeping track of big or little issues as I found them, and ended up with something that covers the major points pretty well. It doesn't replace understanding how print drivers work, of course, but for somebody thrown into the deep end of the pool with a "Convert this driver" directive, it should save a lot of time.
</p>

<p>
<a href="/techtips/win32-pdriver-ktou.html">Unixwiz.net Tech Tip: Converting Win32 Kernel-mode Print Drivers to User Mode</a>
</p>]]>

</content>
</entry>
<entry>
<title>New Tech Tip: Slipstreamed Driver Installation of SBS 2003</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/07/new_tech_tip_sl.html" />
<modified>2006-07-11T23:34:22Z</modified>
<issued>2006-07-11T23:31:23Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2068</id>
<created>2006-07-11T23:31:23Z</created>
<summary type="text/plain"> After getting really stuck installing Windows SBS2003 on a machine with a RAID controller not supported by the setup discs, I decided to figure out how to burn my own install CD with the required driver files. I figured...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>Tech Tips</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
After getting really stuck installing Windows SBS2003 on a machine with a RAID controller not supported by the setup discs, I decided to figure out how to burn my own install CD with the required driver files. I figured I was going to have to muck with config files and build it "by hand", but I ended up finding some software which completely took care of the process - it was wonderful.
</p>

<p>
So I wrote up the whole process in another one of my Tech Tips in the hopes that it will encourage others to make a go of it. <b><i>It's an easy process - try it!</i></b>
</p>

<p>
<a href="http://www.unixwiz.net/techtips/sbs2003-driver-slipstream.html">Unixwiz.net Tech Tip: Slipstreamed Driver Installation of SBS 2003</a>
</p>]]>

</content>
</entry>
<entry>
<title>New tool: lockrun</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/06/new_tool_lockru.html" />
<modified>2006-06-04T01:51:53Z</modified>
<issued>2006-06-04T00:53:39Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2067</id>
<created>2006-06-04T00:53:39Z</created>
<summary type="text/plain"> For a large Cacti network monitoring implementation on a FreeBSD machine, we found that though the SNMP polling went relatively quickly, updating the RRD data files with the collected data sometimes took more than the alloted five-minute polling run....</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>Tools</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
For a large <a href="http://www.cacti.net">Cacti</a> network monitoring implementation on a FreeBSD machine, we found that though the SNMP polling went relatively quickly, updating the RRD data files with the collected data sometimes took more than the alloted five-minute polling run. This means that the too-long-running prior job walked over the following up, delaying that one too.
</p>

<p>
If some unrelated process (say, a network backup) started competing for resources, it wasn't uncommon for this to turn into a cascading meltdown. I've seen <i>dozens</i> of polling jobs running at once while checking the system in the morning, and the only solution was to just kill everything, let the system settle down, accept the hours of lost data, and let things pick back up with a clean slate.
</p>

<p>
With the premise that missing a single polling period is superior to swamping the machine, I created a tool, <b>lockrun</b>, which wraps the given command line (such as a cron job) with the protection of a lockfile.
</p>

<p>
If a new polling period comes around, but the lockfile is still in use from the previous job, it will exit with an error message which is routed to the user via cron's normal email mechanisms. This way, we'll never have two of these jobs running at the same time.
</p>

<p>
This is a bit more sophisticated than just touching a lockfile or storing a PID in a file: this uses actual file locking, whose locks are automatically released when the program exits for <i>any</i> reason. This includes killing with -9, core dumping, or even a system crash. There are no files to clean up at system boot time either.
</p>

<p>
I'll note that this is not really a solution to the problem: the <b>real</b> problem was an underpowered machine (which we have since remedied), and it doesn't replace a proper queuing mechanism. Instead, this is a fail-safe to prevent system meltdown, and it's really served us well.
</p>

<p>
I've been using this for months on all cron jobs which have any chance at running long, and it's been completely bulletproof as far as I can tell.
</p>

<ul>
<li> <a href="/tools/lockrun.html">Unixwiz.net Tool: Lockrun</a> </li>
</ul>

<p>
I hope it's useful to others.
</p>]]>

</content>
</entry>
<entry>
<title>California Election Analysis - June 6, 2006</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/05/california_elec.html" />
<modified>2006-05-25T14:02:05Z</modified>
<issued>2006-05-25T05:06:15Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2066</id>
<created>2006-05-25T05:06:15Z</created>
<summary type="text/plain"> For every election, I do an analysis of the propositions (not the candidates) on the California ballot in the hopes of getting to the bottom of each: what&apos;s it about? what&apos;s the hidden agenda? who&apos;s behind it? I&apos;ve been...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>California Elections</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
For every election, I do an analysis of the propositions (not the candidates) on the California ballot in the hopes of getting to the bottom of each: what's it about? what's the hidden agenda? who's behind it?  I've been doing it for years, and as the election draws near, I get asked "Where's your analysis?".
</p>

<p>
It's ready.
</p>

<p>
It was easier that most because there were only two Statewide propositions, and the agendas are a lot more transparent. This made for much more straightforward analysis.
</p>

<a href="/voting/2006-06-primary.html">California Ballot Analysis - June 6 2006</a>

<p>
This is meant to elaborate on the issues, not tell you how to vote, and as always, I welcome thoughtful feedback or bug reports.
</p>]]>

</content>
</entry>
<entry>
<title>DrvStartDoc without a JobId</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/05/drvstartdoc_wit.html" />
<modified>2006-05-22T07:30:20Z</modified>
<issued>2006-05-22T07:15:49Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2065</id>
<created>2006-05-22T07:15:49Z</created>
<summary type="text/plain"> If you don&apos;t write Windows print drivers, this won&apos;t be interesting; this is here mostly for Google. I write Windows print drivers, mostly built on the Microsoft OEM PostScript driver using customization DLLs, and I spent days tracking down...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>Software Development</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>
If you don't write Windows print drivers, this won't be interesting; this is here mostly for Google.
</p>

<p>
I write Windows print drivers, mostly built on the Microsoft OEM PostScript driver using customization DLLs, and I spent days tracking down a problem where <b>DrvStartDoc()</b> was called with no job ID. This is part of the interface, and the driver depended on getting it, but even though it worked for months, upgrading to Word 2003 broke it. No Job ID.
</p>

<p>
After days of research I figured it out: <b>DrvStartDoc()</b> can be called more than once per document. The <u>first</u> time it's called with the Job ID as expected, but if the application does a ResetDC(), we'll get called again with the new DEVMODE. Those subsequent calls don't get the Job ID.
</p>

<p>
The solution is to save the Job ID into the OEM PDEV (<b>pdevobj-&gt;pdevOEM</b>) the first time we see it, and to be sure to implement the <b>ResetPDEV()</b> call to copy the private OEM PDEV as it gets reset. I had omitted the ResetPDEV() call, thinking it was not necessary, so the saved Job ID was discarded when the application changed the DEVMODE.
</p>

<p>
Even without the ResetPDEV / ResetDC, this is necessary if the application is printing via a metafile, which is set via the <b>Enable advanced printing features</b> checkbox in the Advanced tab in printer properties. Without proper PDEV management, it will break badly.
</p>]]>

</content>
</entry>
<entry>
<title>&quot;Required Reading&quot;</title>
<link rel="alternate" type="text/html" href="http://www.unixwiz.net/archives/2006/05/required_readin.html" />
<modified>2006-05-07T15:48:45Z</modified>
<issued>2006-05-06T19:58:17Z</issued>
<id>tag:www.unixwiz.net,2006:/blog//3.2064</id>
<created>2006-05-06T19:58:17Z</created>
<summary type="text/plain">I put a lot of work into my Tech Tips and hope that others find them useful, but today while wandering through my weblogs I tripped across several references to some of my Tips being required reading for college computer-security...</summary>
<author>
<name>steve</name>
<url>http://www.unixwiz.net</url>
<email>steve@unixwiz.net</email>
</author>
<dc:subject>Tech Tips</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.unixwiz.net/blog/">
<![CDATA[<p>I put a lot of work into my <a href="/techtips/">Tech Tips</a> and hope that others find them useful, but today while wandering through my weblogs I tripped across several references to some of my Tips being <b>required reading</b> for college computer-security classes!</p>

<p>Syracuse University, <a href="http://www.cis.syr.edu/~wedu/Teaching/cis785/schedule.html">CIS785</a> requires <a href="/techtips/chroot-practices.html"> Best Practices for UNIX chroot() Operations</a></p>

<p>Rensselaer Polytechnic Institute, <a href="http://www.cs.rpi.edu/academics/courses/netprog/c24.html">CSCI.4220 </a>requires <a href="/techtips/iguide-ipsec.html">An Illustrated Guide to IPSec</a></p>

<p>I'm sure that these are requirements by the individual professors rather than being a formal part of the curriculum, but it's welcome nonetheless.</p>

<p>How cool is that? :-)</p>]]>

</content>
</entry>

</feed>