Try saying that 5 times quickly.
#!/usr/bin/perl -T # RFC 1035 3.3.13 # http://www.faqs.org/rfcs/rfc1035.html # The rname of a DNS SOA response gives "domain-name which specifies \ # the mailbox of the person responsible for this zone" use strict; use warnings; #use Email::Valid; if you wish # example - "noc.example.com" is "noc@example.com" # replace first non-escaped period with an @ symbol &mailstrip("noc.example.com"); # and remove escapes #&mailstrip('some\.user.example.com'); sub mailstrip { my $emailaddress = shift; # replace first non-escaped period with an @ symbol # my $brain->hurts(); $emailaddress =~ s/(?<!\\)(?=\.)/\@/; $emailaddress =~ s/\@\./\@/; $emailaddress =~ s/\\(.)/$1/g; print "$emailaddress\n"; }
Quick note: if you want a Postfix->HylaFAX email-to-fax gateway with an incoming format like aaabbbcccc@<hostname>, use regexes to allow the recipient, and also to route to a different transport.
main.cf:
local_recipient_maps = proxy:unix:passwd.byname $alias_maps $fax_recipients
fax_recipients = regexp:/etc/postfix/fax_recipients
fax_destination_recipient_limit = 1
fax_recipients:
/[0-9]{10}@.*/ OK
transport.regex:
/[0-9]{10}@.*/ fax:localhost
master.cf:
fax unix - n n - 1 pipe
flags= user=uucp argv=/usr/bin/faxmail -d -n ${user}
local_recipient_maps = proxy:unix:passwd.byname $alias_maps $fax_recipients
fax_recipients = regexp:/etc/postfix/fax_recipients
fax_destination_recipient_limit = 1
fax_recipients:
/[0-9]{10}@.*/ OK
transport.regex:
/[0-9]{10}@.*/ fax:localhost
master.cf:
fax unix - n n - 1 pipe
flags= user=uucp argv=/usr/bin/faxmail -d -n ${user}
Superstition
A fortune cookie’s message has no impact on your life. At all. It’s a stupid superstition, people. If the fortune cookie says you’re going to inherit a lot of money, your chances of inheriting money don’t change at all. No impact.
However, if you eat the cookie but don’t read your fortune at all, you’ll be dead within three days.
See Perl::Critic.
SAP actually has good facilities for lint’ing your ABAP code, built-in. From the code editor (say by starting SE38), choose Program -> Check -> Extended Check. Couldn’t be much easier. To get a more thorough review, use Code Inspector to also pinpoint data access problems, like SQL queries where a WHERE term isn’t indexed, and the like.



Insourcing Your Morals
What a pleasant surprise to find a talk by AJ Jacobs — “My Year of Living Biblically” — over in the TED archive. Jacobs, of course, is the author of one of the most humorous magazine articles ever, on outsourcing.
Problem
Windows 2003 terminal servers wouldn’t allow audio redirection over RDP.
Client: Windows XP SP3 w/ RDP 6.1 client (6.0.6001).
Servers: Windows 2003 Standard R2 (32-bit) , SP2, all current patches.
Servers are in “Terminal Services” OU that sets group policy “Allow audio redirection = Enabled.” Viewing in RSOP MMC confirms that the setting is applied.
gpresult /v:
GPO: Terminal Server Test
KeyName: SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\fDisableCam
Value: 0, 0, 0, 0
State: Enabled
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\fDisableCam == 0
Connect via RDP. Open Control Panel -> Sounds and Audio Devices. Uncheck “Mute” and click “Apply.” “Mute” is checked again.
Clicking “Advanced” under “Speaker Settings” results in error “DirectSound settings not available.”
Similar
http://www.virtualpcfaq.com/Virtual_Server_2005/rn-738-15532_DirectSound_settings_not_available.aspx
Solution
RDPCLIP.EXE wasn’t running.

I didn’t realize that rdpclip.exe was needed for audio redirection and must have unloaded it when trimming startup programs to lower cpu/memory. I had already disabled clipboard redirection to speed things up, so I figured there was no need to run rdpclip.exe, which, as the name implies, was originally a Windows 2000 resource kit utility to allow copying and pasting files between client and server. My kingdom for an architecture diagram….
The cheap way to automate Fortinet firewall backups is:
- Enable SSH on the firewall.
- Enable SCP (System -> Admin -> Settings -> Enable SCP)
- Create a ‘backup’ admin user with read_only profile.
- Run a script to scp the configs.
Uses Net::SCP::Expect
#!/usr/bin/perl -w
use warnings;
use Net::SCP::Expect;
@firewallips = ('192.168.1.1',
'192.168.2.1',
'192.168.3.1',
'192.168.4.1',
'192.168.5.1',
'192.168.6.1'
);
foreach $ip (@firewallips) {
print "$ip\n";
my $scpe = Net::SCP::Expect->new(auto_yes=>1);
$scpe->login('backup', 'SUPERSECRET');
$scpe->scp("$ip:sys_config","/home/fortinetbackups/fortinet-$ip\.conf");
}
Or you could do it this way.
Cash vs. Credit Cards
Got into a discussion with someone about the effectiveness of cash-back credit cards vs. cash. If a credit card company is going to give you 3% back on a purchase, isn’t that better than buying with cash and getting 0% cash back? Not at all.
You’re far more likely to spend more when using a credit card, so you’re not saving any money at all. Look at what happens when you spend 12-18% (Dun and Bradstreet report I can’t find primary source for) more when paying with credit card than cash:
CASH: $10 purchase. No “cash-back”. [Completely ignoring situations where cash gets you better deals...]
CREDIT CARD: $11.20 (lowballing the 12% number). Instead of getting water and lemon with your lunch, you went ahead and got the Pepsi. Why not? You’ve got credit… Minus 3% “cash-back”. $10.86
Now how is $10.86 cheaper than $10.00? It’s not. And that doesn’t include the risk inherent in cards (credit card companies jacking your rate up, “losing” your payment, dropping carryovers, etc.,).
What I found most interesting is that people are marginally more inclined to buy more when being exposed to credit card logos, even when paying with cash.
Dave Ramsey says that there is no responsible way to use a credit card, and answers “Can You Get Rich Off Credit Cards?”
Get Rich Slowly (about 50% useful) “Research Reveals Credit Cards Encourage Spending”
“Monopoly Money: The Effect of Payment Coupling and Form on Spending Behavior”
(PDF) Priya Raghubir and Joydeep Srivastava. “Journal of Experimental Psychology: Applied” 2008, Vol. 14, No. 3, 213–225
“The Realities of Spending” (PDF) (2003). Greg Davies. Argent, 2 (6), 22-27.
“Always Leave Home Without It: A Further Investigation of the Credit-Card Effect on Willingness to Pay” Marketing Letters 12:1, 5±12, 2001. DRAZEN PRELEC1 AND DUNCAN SIMESTER
Debian’ Lintian automatically checks for rule violations (e.g., “‘bashism’” in /bin/sh”). Nice.
Beware the Grass Eaters of Japan!
And we used to be afraid of these guys ……
Just about the stupidest thing I’ve ever heard of: W Hotel (Atlanta) apparently claims a trademark on “WET”. What is “WET?” A pool surrounded by trees.
Recent Reading
“Bangkok 8″ – John Burdett
“Bangkok Haunts” – John Burdett
“Bangkok Tattoo” – John Burdett
“Atlas Shrugged” – Ayn Rand
“Replay” – Ken Grimwood
“Lucifer’s Hammer” – Larry Niven and Jerry Pournelle
“Orthodoxy” – G.K. Chesterson
“The Intruders” – Michael Marshall
“By the Time You Read This” – Giles Blunt
“Cuckoo’s Egg” – Clifford Stoll
“Surely You’re Joking, Mr. Feynman” – Richard P. Feynman
“Tropic of Night” – Michael Gruber
“Valley of Bones” – Michael Gruber
“Night of the Jaguar” – Michael Gruber
The Bangkok series was really different. Liked it a lot.
I’ve read a lot more than this, but I can’t think of them offhand. Asked the county librarian to get a printout of my checkout history, and she said, “Oh, there’s no way the system could store all that.” Well, there is a way — buy more hard drive space. It’s cheap now. Oh, bother…..
Here’s a Get Rich Slowly blog entry recommending Hulu and kin, including a link to an extensive list of online video content source (bookmark that one). Don’t forget your local library as a source of DVD’s — you helped pay for ‘em.
When using bginfo, have ReconnAct run this on every login and reconnect:
bginfo.exe terminals.bgi /timer:0 /NOLICPROMPT
Where the terminals.bgi includes:
<Full Name> = WMI query:
SELECT FullName FROM Win32_NetworkLoginProfile WHERE FullName is not NULL
login:<User Name>
server:<Host Name>
Default Printer:
<Default Printer> = WMI query:
SELECT Caption FROM Win32_Printer where Default = True
Please call the IT Department
if you need assistance.
Tabbloid (free service from HP) has very nice output and is simple to use.
Go to http://www.tabbloid.com/
Add your feed links, and enter your delivery options, including your email address. When your first issue is sent, there’ll be a link in the email for you to edit your settings.
Outsource Your Life
“My Outsourced Life” (A.J. Jacobs, for Esquire) is still one of the funniest articles I’ve ever read. Go ahead; it’s a great read.
If you don’t have time to read it, you could have a “virtual assistant” summarize it for you. TimeSvr has “virtual assistants” for the low, low price of $69/month. For 30 days, that’s only $2.30/day for: “Unlimited basic Tasks on your behalf. No limit on phone calls, reminders, reservations, bookings. Up to 8 hours a month for complex time consuming tasks(long web searches, transcribing, etc.).” They’ll manage your contacts and calendar.
The first thing I’d do is schedule a daily wake-up call. Who wants to hear an alarm, when you could have some foreign college girl wake you up?
The second thing I’d do is offload my RSS aggregation duties. I have a number of websites I like to check, and I just hate poking through them. Copy the content into a well-formatted PDF and email it to me every morning. RSS is such a great idea, but all the aggregators suck. Honestly, can’t you just specify content to automatically be inserted into a paper/newsletter format? XeTeX plug.
That includes my email. The 4-hour-a-week guy who makes a living out of not actually doing anything has a guide for outsourcing your inbox.
That also includes my finances. List the prior day’s checking account activity. Stock prices. Weather forecast. Current house price on zillow.com. A daily newspaper of things relevant to me (and mostly only me). [Yahoo! Pipes can do much of this, but I'd prefer better formatting, and there are some things it can't do.]
The third thing I’d do (“up to 8 hours of time-consuming tasks”) is to get a monthly meal plan amenable to all parties familia. Aldi (I love Aldi’s!) has a great starter meal planner (the chicken corn tacos rock). The first month, I think, would pay for itself.
I might try it for one month….
ReconnAct has been updated, and now “adds support for all Windows client and server operating systems from Windows XP/2003 and up.” ReconnAct allows you to script events on remote desktop logon, disconnect, and reconnect, which is handy for things like remapping printers when a user reconnects to a session from a different location.

