Archive for the ‘Computers’ Category

Just noticed today that Certification Magazine is a free subscription.  Also, Sys Admin magazine isn’t distributed to retail stores any longer; you have to subscribe and get it mailed to you.

Internet Appliances haven’t hit the mainstream yet, and I don’t know why. The constraints are simple: I want a web browser that has no moving parts and makes no noise, so it can go in the bedroom and not annoy me. Back in the day, I had great hopes for the BeOS-based Sony eVilla and was the only person, I think, who liked Be’s focus shift to BeIA. The wife and I recently experimented with an MSN tv 2, which lasted all of one day — it was difficult to read and cumbersome to navigate.

The present setup pleases me. I picked up an NCD nc900 X terminal on eBay for $50, and I picked up a 17″ flatscreen at CompUSA for $130 after rebate. It just runs X sessions off an OpenBSD box in the basement. In theory, I could have just run a KVM extender cable down to a Windows PC, but there is the geek factor…. NCD is out of business, by the way.

nc9001.jpg desk.jpg

The OpenBSD box runs a tftp server that serves up the nc900 boot file (p4v4013.tar.gz is the latest — os.900 is the operating system file, and you’ll want the newest boot_mon.900 you can find to update the flash). It also runs X with xdmcp, xfce, and FireFox (only because IE7 isn’t available). It took a little bit to get running. For instance, it took a while to figure out to set root_depth to 24 in ../config/xp.cnf to get 24-bit video. And it really took a long time to figure out how to change the resolution on the terminal (“BOOT> selftest monset” –> for instance, mine is monset 121 [1024x768 at 70Hz at 17"]). Here’s a somewhat related FAQ.

Works splendidly.

When you get bored talking to tech support and have to read off serial numbers….

A again
B back
C champagne
D double
E eye
F finally
G gnaw
H heiress
I ink
J Jose
K knife
L line
M mnemonic
N number
O over
P phantom
Q quiche
R repeat
S skip
T triple
U unreadable
V verbose
W wrong
X Xerox
Y yes
Z zed

“F” was “five,” but I reconsidered that cheating and changed it. The basic guide is that the initial letter shouldn’t sound like familiar sounds for that letter (“P” = “phantom”), no foreign words (“Jose” is acceptable, though, by fiat), and if those aren’t possible, then just make it as confusing as possible as though you were reading a serial number (“T” = “triple”).

So MIDYE5I2USS becomes: mnemonic ink double yes eye FIVE ink 2 unreadable skip skip.  You get your fun where you can.

As stated in Choco’s User Guide, “Constraint programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming: the user states the problem, the computer solves it. (E. Freuder)” Constraints are limits on something: you must be at least 48 inches tall to ride the roller coaster; you have to deposit the check before the bank closes at 5:00; only five adults will fit in the car; and so on. The most that people are consciously aware of solving constraint problems are when budgeting money or planning errands. Or doing laundry: after doing a load of socks, do towels, because they’re quicker to fold, and matching socks takes a long time.

Choco is a Java implementation of constraint satisfaction programming. In my opinion, it’s one of the world’s most underrated software packages. I’m surprised it doesn’t get more attention, and I’m surprised that there isn’t at least a C# port. It’s BSD-licensed, so it’s business-friendly.

If you’re charged with time, materials, and resource planning, give Choco a look.

See: Roman Barták’s “Constraint Programming: In Pursuit of the Holy Grail.” (PDF)

See: Markus P.J. Fromherz’s “Constraint-Based Scheduling.” (PDF)

I’m considering doing some independent contracting, and am looking at lowering the upfront costs for software.� As an exercise, given quality commercial software, what are the most viable free (beer) alternatives?

  • General Productivity: Microsoft Office  (Office 2007 rocks) -> OpenOffice�(note from OpenBSD portathon�- “many stupid bugs fixed, amazing it works on linux (as usual, by luck).”
  • Diagramming: Microsoft Visio -> Dia and Graphviz.  I do love Graphviz…
  • Video Documentation: TechSmith Camtasia Studio -> Wink.
  • Documentation Repository: Microsoft SharePoint -> WordPress (maybe Docuwiki). As an aside, if  Wordpress and WordPress MU started including LDAP support in base, adoptability would jump overnight, since Windows Active Directory (and other, lesser LDAP) environments could instantly use it.  As another aside, why didn’t the Dublin Core people release a reference implementation in SQL-92, which the whole world understands?  Dublin Core would be ubiquitous now….  Honestly, in Qualified DC, can you have an Alternate Title without a Title?  How would that happen?  Can you have a record consisting of only a date? Where was I?  Docuwiki frustrates me, but it’s the standard wiki for doc.
  • Host Monitoring: For smaller environments, commercial options include IPSwitch’s What’s Up Gold and IP Sentry, among others.  The free monitoring option of choice would be Nagios, whose simplicity is its brilliance.  Note to self: investigate Fruity.

Authoritative nameservers should never be recursive (caching).  Never run both types on the same IP.

See:

Alvin Fernald lives!  Get thee to an order form and pick up Alvin’s Secret Code, by Clifford B. Hicks.  Fond childhood memories, there.  All the Alvin books rock.

Well, here’s a quick Perl script to decode the Subject: lines in archived maillogs from Borderware MXtreme mail firewalls.  Simple substitution.  Nothing fancy.  Adjust to taste.  Doesn’t do any MIME decoding.

mxdecpl.txt (rename to mxdec.pl — added .txt extension because I’m too … to fight WordPress’ security settings)

The two handiest email / SMTP references are:

Using spamd in greylisting mode, I’m running greyscanner to pick off some low-hanging fruit (senders with no A or MX).  But I also have an old domain that isn’t used for production any more, and it gets tons of spam.  Here’s how I used that to my advantage. Continue reading ‘spamd greyscanner regex checking’ »

Minor errata for the Que Certification book, by Todd W. Mathers and Elias N. Khnaser.

Continue reading ‘Citrix CCA MetaFrame Presentation Server 3.0 and 4.0’ »

Overview Thumbnail If you’d like a simple, front-end spam filter that you can place in front of an existing SMTP mail server, try an OpenBSD transparent bridge running spamd.  Here’s the no-nonsense version on undeadly.org, written by Chris Kuethe.

I did the same thing with a couple of Soekris 4801′s, running off 1GB Compact Flash cards.  My 4801 model has a 266Mhz processor, which sustains around 10-15%% utilization during peak use: mass DNS lookups against the sbl-xbl.spamhaus.org list. 256MB RAM  – 128 reserved as an MFS drive [RAM drive] for /var, using Bill Maas’ mfsmount script, 10MB reserved for dnscache, and the rest for general OS duty.  No moving parts.  Low power.  Low heat.

I was perplexed at how all the spamd parts worked together, until I drew it out.  Ah, now it makes sense.  Hopefully you’ll find it helpful, as well.

Click on each image to get larger version:

spamd and friends overview Soekris 4501 (case off) Soekris 4501 (case on)

Here’s some late-night brainstorming on what can be done with spamd greylist entries during the time they’re greylisted.

Continue reading ‘Brainstorming spamd greylisting’ »

…on Donner on Blitzen….

 When running an OS off Compact Flash, it’s prudent to write as infrequently as possible to the CF card, since they tend to wear out.  The usual solution is to mount / read-only and put all read-write activity in an MFS (ramdisk) and sync regularly.

For OpenBSD 4.0 on Soekris, I use Bill Maas’ script: (script , README).  It’s very well done.  The original /var is kept on-disk but used only on drive mount failure.  Otherwise, the config copies /var to /mfsvar, and the boot-time mount command loads /mfsvar into an MFS mounted as /var.  Just call “mfsmount sync” every hour or so to sync the MFS back to CF for persistence.  Works like a champ.

And verily this shall be the place where I write down everything I always have to search for, repeatedly. Continue reading ‘Things I Can Never Remember’ »

I’m doing some things with qmail, which is boasted as “the second most popular MTA on the Internet,” and I was curious to see how popular different MTA’s were, based on posted job requirements at Monster.com.  “Percentage of Internet email delivered” isn’t the same as “what employers are willing to pay you to do.” Continue reading ‘Email Software Popularity’ »

Microsoft’s Exchange email server allow users to set Out-Of-Office replies which autorespond to people who send you email.  So, if you’re on vacation, you can set Outlook/Exchange so that when Bob in Accounting sends you a message that your expense check has been processed, Exchange will automatically reply to him with whatever text is in your OoO message, like, “I’m out of the office today, Thursday the 21st, to help build a float for the annual Garlic Festival.”  Bob then deletes your message and carries on.  Out-of-Office provides the same functionality as the UNIX vacation(1) program.

Now, Exchange by default does NOT send replies outside the Exchange organization, so when your buddy with the @aol.com account emails you, he doesn’t get an Out Of Office reply (by default).  This is by design (“…to prevent unauthorized people from learning when users are out of the office….”).

But you’re bound to have users request that you enable global Out-of-Office replies so that when any spammer, burglar, busybody, mailing list member, or other email user in the world emails you, they’ll be notified that the user isn’t at home, or monitoring their work system. Continue reading ‘Dear World, I’m Out Of The Office’ »

Here’s a quick way to graph a two-column Comma Separated Values file, where the first column points to the second.  I use this for email virtual mappings.

graphcsv_pl.txt

Continue reading ‘Graph a CSV file (graphcsv.pl)’ »

graphdnszone.pl is a script I’ve been using for a while to give me a quick picture of a zone, using the GraphViz perl module.  It’s so much simpler to be able to look at a node www.example.com and see what IP address(es) it points to, and what may be CNAME’d to it, or what other A records point to the same IP’s.

For instance, here’s a picture sample of part of the UK. zone. Click on the thumbnail to open linked picture in a new window.

Sample picture of a portion of the UK. zone

Download the script:  graphdnszone_pl.txt and the required patch from here.

Just change the server and zone names.  I’ll add those as arguments later.  As you can tell, it’s not finished, but it does what I currently need it to do.

And I typically convert the output to Scalable Vector Graphics (SVG), because it scales (go figure) and allows text searches.  Adobe’s SVG Viewer works fine.

If a picture’s worth a thousand words, then a picture of a thousand words is worth a million words. And you can quote me on that.

GraphViz is handy graph visualization software. Go to the GraphViz website and check out their Gallery, at least.

When coupled with Perl, GraphViz becomes truly spectacular. Leon Brocard’s GraphViz Perl module just might save you a lot of time. One thing I needed modified on it, however, was the handling of node names. If you wanted a node named “bob@example.com” the module would produce a generic node name of “node141″, which was restrictive for the two things I primarily use the module for (email addresses, and DNS mapping).

What follows is a quick diff to allow one to use arbitrary node and cluster names. They’re just straightforward regexes. They work for everything I use them for, and I haven’t had them bomb out. I think the reserved words (e.g., “graph”) need expanded, as well, but this will work for now.

graphviz_quoted_names.diff.txt

While looking at the time conversion methods in .NET, I was surprised by this entry in the .NET Date and Time FAQ:

Q: “Does the .NET Framework support time zone conversions to any given time zone?”

A: “People are often surprised why this feature cannot be supplied by Microsoft at low cost. In particular, data to do conversions exists in the Windows registry and is used by the time zone selection dialog. However, there is a big distinction between having UI and registry data and having an API. This is a more expensive feature for Microsoft to undertake than most people would imagine because (a) an API must provide consistent behavior from one machine to another so we cant just re-expose the registry data, and, (b) there is cost for Microsoft in exposing an official time zone conversion because we face ongoing geopolitical costs for any country/region based data we gather and maintain. For example, a country may threaten to boycott our product if it is not listed in the data. This has happened to us with our CultureInfo data on many occasions, and we often need to tweak data in service packs, which is expensive and risky.”