Internet Explorer is truly evil.

I avoid web development.  It is just much more of a pain in the rear end
than it should be.  When I do web development, I test in Firefox.  I
write valid XHTML and valid CSS.  When I have to get something to work in
Internet Explorer, I curse.

So for future reference:

line:1

error: invalid character

can happen when one of the scripts which you reference does not
exist.

<script src=”scriptaculous.js” type=”text/javascript”>

oops, scriptaculous.js doesn’t exist.  Thank you Microsoft for writing
such excellent and accurate error messages.  The quality of this software
continues to astound me.

 

Mcafee on Corporate computers

I hate antivirus software. I do not use it.
My prefered desktop is a Linux desktop. There is no antivirus there.
Even when I am on a Windows desktop, I prefer one with no antivirus software
installed, or at least no active antivirus software installed.

I’m working on my corporate laptop with its “enterprise” install of Mcafee
framework. It is hell. This ThinkPad T42 with its 2 year old,
5400(4800?,4200?) rpm 40G hard drive is slow enough. The fact that
every file write gets intercepted by the antivirus software makes this thing
feel slower than my P3-866 home computer. The “enterprise” install of
Mcafee disables the UI so that I cannot turn off the antivirus using the UI when
I click open the Console from the tray icon. I’ve created a desktop
shortcut that runs these commands, and I have named it “turbo.cmd”.


net stop mcshield
net stop mctaskmanager
net stop mcafeeframework
pause
net start mcshield
net start mctaskmanager
net start mcafeeframework

I run this and I ctrl-c at the pause if i want to disabled the Mcafee stuff.
I run it again and I let it continue if I want to enable the Mcafee stuff.
It works. My file writes speed up tremendously. I will typically use this when
I am unzipping a large archive, or even a medium sized archive with many small
files. The antivirus seems to eat tons of CPU when the system is writing many
small files.

The catch is that Mcafee somewhere hooks into the TCP/IP
stack in windows, or something. When in a stopped state, I cannot accept
incoming ssh connections. The client gives the old
ssh_exchange_identification:
Connection closed by remote host
Message. Its like Mcafee does tcp wrappers.
I hate it.

The solution: start the Mcafee services, and restart the cygwin ssh
daemon. I should add two more lines to my turbo.cmd above


net stop sshd
net start sshd

Now ssh works. Thank you Mcafee. Thank you for NOTHING.

Google hasn’t been a tech company for a while.

Deepak Sharma writes that Google no more a Tech Company If you have read their
annual report, you know that they have never been a technology company by
revenue. 99% of their revenue, and the same ammount of their profit comes from AD SALES. Google is an ad
company.

Saying that Google is not a tech company because they own YouTube is just
rediculous. I look forward to Google bringing the same awesome software
development practices to their newly aquired product.

Solaris Find Sucks.

Solaris hates efficiency.

OK, this isn’t entirely true, but it seems like everyone
I know who strives for efficiency in their work also finds that Solaris
userspace tools aren’t up to par. This usually translates to blanket
statements like “Solaris Sucks”. I’m not going to
argue any of this. I abstain please. Call me
Switzerland.

I ran into a limitation of Solaris userspace tools
recently. The find command does not support -printf like the GNU find
command. I need to output the date of a file in a numeric format so
that I can send the output to sort.
This angered me at first, but then I remembered that I was once
quiet profficient in Perl.

#!/usr/bin/perl sub f {
$d=shift;
print "openning $dn";
opendir(DIR,$d);
while( $f=readdir(DIR) ) {
print "$f $d/$fn";
if( $f eq "." || $f eq ".." ) {
print "$f nextn";
next;
}
if ( -f "$d/$f" ) {
@s=stat("$d/$f");
$fs{$s[11].$d.$f}=push @s,"$d/$f";
print "$d/$fn";
} if ( -d "$d/$f") {
print "calling f $d/$fn";
f("$d/$f");
}
}
}

f(".");

foreach (sort { $a <=> $b } keys %fs ) {
print $_, join(" ",@{$fs{$_}}),"n"; }

Yes, it works, but anyone who knows perl a little better knows that it is
WAY too long. I should have use File::Find.

#!/usr/bin/perl use strict;
use File::Find;

find({ wanted =>&data, follow=>1 }, $ARGV[0]);

sub data {
my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime) = lstat($_);
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday)=localtime($ctime);
$year=$year+1900;
print "$ctime $year-$mon-$mday+$hour:$min:$sec $uid $gid $File::Find::namen";
}

This just outputs the data I need and in true UNIX fashion, I use sort to do the actual sort

Using Perl always makes me feel guilty, mostly because
I frequent MichiPug, and its a python group, not a perl group.
So I wanted to try the same thing using python.

import os, sys
from datetime import datetime
from os.path import join, getsize
for root, dirs, files in os.walk(sys.argv[1]):
print os.stat(root).st_ctime, datetime.fromtimestamp(os.stat(root).st_ctime), root

I don’t know about you, but I know which of these I find most readable. 🙂

Burning CDROMS (or DVD) from ISO in Windows XP for free.

I hate buying software.  I’m a fan of Linux and Open
Source more for the price than for the philosophy.  I’m cheap.

Open Source on Windows is great.  Freeware is OK.  But the strange
hidden gems are the ones that have existed for years and I just don’t know
about.  Well, this one I have know about for a few years, but it has been
around for as many as 6.

The Windows Resource Kit comes with CDBURN.EXE.  It burns ISO files to
disc.  I am all for command line, but sometimes toggling between windows
explorer and command line is just not as efficient as it could be.  It is
also a hassle to click all the way through Start->Programs->Windows
Resource Kit Tools->Command Shell.  This stuff should be at my
fingertips!

I make this little file and call it cdburn-d.cmd and place it on my
desktop.  Now I can drag an iso to it and it immediately burns.  No
right click, no next button, no “are you sure” prompt.  This is efficient
🙂

"C:\Program Files\Windows Resource Kits\Tools\cdburn.exe" D:
%1

pause

Now as a Gnome and Ubuntu user I am sad to admit that I have no idea how I
can do the same thing in Gnome.  Could I create a shell script and do the
same thing?


cdrecord dev=/dev/hdc -dao $1

echo press enter to continue...

read


It pains me to admit that I don’t know if such a simple thing will work.
Especially since I’ve been using Gnome since before the 0.30 release.
That was pre-Nautilus, so I guess what may have worked then wouldn’t work
now, but it still pains me.

Not Allowed to Work Efficiently

I try to live in denial and tell myself that my job isn’t so bad, and that I like it, but some things really irk me. OK, OK, perspective. I’m not crawling on my arms through a forest because I was shot and my legs don’t work. In America, even a low standard of living is far above what much of the world has to live through, but I’m allowed at least point out stupidity, so here goes.
I read my email this morning and I get this

We have been observing a gradual increase in Associates downloading desktop search software. This type of software is supplied through companies such as Google, Microsoft, Yahoo, and several ‘open source’ products. The following compliance and risk issues are associated with the execution of such software:
Such software is not licensed under terms and conditions that meet ******** requirements, and therefore its use is in violation of ********’s Computer Hardware and Software Policy;
We are aware of several information security risks associated with the use of such software. For example, such software can enable the performance of searches beyond your desktop and can lead to search information and indexes being sent to servers external to ********. Either of these security vulnerabilities create a risk that ******** confidential data can be unknowingly placed “at risk”;
An operational risk has been identified whereby the searching capabilities of such products have introduced significant performance implications to backend infrastructures (such as servers).
At this time we are requiring that you take immediate action to uninstall such software.
As a further safeguard, as of June 16, 2006 we will begin to identify those Associates that continue to have such software on their workstations. SAMI Compliance Officers will be directly contacting those individuals and their supervisors to ensure any discovered desktop search tools are uninstalled.

If there is a business reason for such software, please provide those requirements to your BU management team so appropriate licensing, funding, and the necessary IT infrastructure and security engineering can be planned.

Now, I’ll admit that I understand the concern. In fact I even uninstalled Google’s Desktop search after reading the EULA and privacy notice and deciding that it did not meet my criteria. MSN Search Toolbar/Windows Desktop Search on the other hand does seem to be truely desktop only. Further, I take great exception to the “and several ‘open source’ products” phrase. Apparently someone is so stupid that they think Beagle is a security risk. As employees we take these computers home(laptops are standard here). We plug them into home networks, possible attached directly to a cable modem with no firewall. Forget the threat from Google, Microsoft or Novell(?). What about the threat from within.

On a completely different limb of the same giant tree of stupid, these tools help me work more efficiently. Last time I checked efficient workers make the company more many. This policy spits in the face of efficiency and thus in the face of profit. I shall be selling my stock that much sooner. For those employees like myself who strive for continuous efficiency improvement, this policy is also demoralizing. Look, it is blue skies and eighty degrees outside right now. Why do I want to sit in this 10×6 cube of death if you don’t even let me do a good job?

Super fun Windows Security Stuff

“The one security demo you should watch…” links to an awesome awesome security presentation. This video is a must watch.

It is very awesome to see him (Jesper Johansson) actually hack completely patched Windows Servers starting from a SQL Injection attack in a web application. That one weak link allowed him to take over an entire network methodically. Did I mention it was cool. Some unix and linux heads out there may disagree a few times when he says that many of the things are the same on linux and unix. Disagree all you want, but from a very realistic point of view, it is true. I find that having used both Windows and Linux very extensively for over 10 years, I find more things in common between them than I do find things which set them apart.

Today’s “The Daily WTF” on Seth, Amanda, and Greorge and Day Of Dot Net Awesomeness

http://thedailywtf.com/forums/thread/73098.aspx

Seth, Amanda and George bugs sure are a pain in the rear.

Yes Awesomeness for Saturday, May 13th was Day Of Dot Net.

The .NET Rockstar has a great summary.

Jason F. says “no hiccups”.

Michael Eaton says “What a great time!”

Darrell Hawley says “Mission Accomplished”.

Bill Wagner says “What pleased me the most are the comments from some of the attendees that the content rivaled or even exceeded the bigger conferences.” I’d have to agree with those comments!

Jim Holmes chose to comment on our location and the awesomeness that is Ann Arbor, MI rather than directly on the Awesomeness that is day of dot net.

Gerg Huber says “The Ann Arbor Day of .NET TOTALLY rocked.” Of course those are my sentiments.

I just wanted to echo their sentiments. The only thing missing from the conference for a crazy left wing hacker like myself was content on Mono, NHibernate or Castle Project’s ActiveRecord. But those may be good topics for next year.

Barely related, on June 8th, I’ll be presenting many things related to Mono at SemiSlug. Since SemiSlug is a “unix” group, I’ll probably focus on using it like any other unix utility: command line. I won’t focus on the really interesting things like MWF, GTK# and ASP.NET. So that will give me lots of time to go deeper into some general usage topics.