code-complete

est.1998 :: v. 8.0

Tuesday, February 26. 2008

Final Tweaks to Fedora 8 on Lenovo Y410 Laptop

I have to admit that over the past couple of weeks transitioning to linux as my primary OS more than once I though to myself that for sure I'd be back on windows soon. I've been admining/using redhat distros since 1995, but always in a server environment. But as I get more and more comfortable with my configuration, I'm looking back less and less. At this point nearly everything is working with 2 exceptions:
1.) when plugging headphones in, sound still comes out the speakers
2.) I have been unable to get the PCCard reader to work (the machine does play well with MMC, MS, MSPro, SD, SDPro and xD cards, however.)

I have also found the following bits to be useful: While getting the webcam to work is outlined below, I found that most apps out there still would not work with the webcam. This is because most of the apps like camstream and gyachi work with Video4Linux and I needed to to use V4L2 with the built in webcam. The solution for this is to roll with Kopete for web camming and IMing. Works great!

I also had some issues getting an external VGA monitors set up and working correctly with spanning desktops. It wouldn't be quite so complicated if I didn't have different screen resolutions between my home monitor and work monitor. Basically, one needs to add some information to the /etc/X11/xorg.conf file that specifies you would like a virtual desktop. The video section in my config file looks like this:

Section "Device"
Identifier "Videocard0"
Driver "intel"
Option "monitor-lvds" "lvds"
Option "monitor-vga" "vga"
EndSection

Section "Monitor"
Identifier "lvds"
Option "LeftOf" "vga"
VendorName "Monitor Vendor"
ModelName "LCD Panel 1680x1050"
HorizSync 31.5 - 65.5
VertRefresh 56.0 - 65.0
Option "dpms"
EndSection


Section "Monitor"
Identifier "vga"
Option "RightOf" "lvds"
VendorName "Monitor Vendor"
ModelName "LCD Panel 1680x1050"
HorizSync 31.5 - 65.5
VertRefresh 56.0 - 65.0
Option "dpms"
EndSection


Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "lvds"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Virtual 2880 900
EndSubSection
EndSection


With this configuration, I can now use the xandr command to set up the different monitors. when leaving work I turn off the VGA by calling xrandr --output VGA --off from a quick launch icon, then when I plug in at home i do the same using xrandr --output VGA --auto --right-of LVDS and everything's great.

There is also a KDE applet called KRandRTray that will let you dynamically change screen resolutions.

Finally, because we use Office 2k7 native formats in the office because of the enhanced features I had to figure out what to do. Wine wasn't going to cut it, though I did get Fireworks and textpad running under wine. So I installed VirtualBox, created a VM and gave it 1.5 GB RAM (The box has 3GB) and 32MB Video memory. I was able to cleanly install Vista Home Premium from the recovery CD that came with the machine with no problems whatsoever. I spun up the virtual PC, installed the VirtBox client extensions along with OfficeUlimate 2k7 and TurboTax and Quicken. Everything works flawlessly!

Posted by thaddeus in Redhat Linux, Vista at 16:16 | Comments (2) | Trackbacks (0)

Friday, February 15. 2008

usb video working under fedora 8 on lenovo Y410

Last piece of the configuration puzzle solved. To get the built in webcam, which has the following characteristics:

Bus 002 Device 005: ID 04f2:b008 Chicony Electronics Co., Ltd
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x04f2 Chicony Electronics Co., Ltd
idProduct 0xb008
bcdDevice 3.25
iManufacturer 2 Sonix Technology Co., Ltd.
iProduct 1 USB 2.0 Camera
iSerial 3 SN0001
bNumConfigurations 1


one needs to modprobe the video for linux driver (v4l2-common), which came with the fedora install and modprobe uvcvideo, which is the usb video driver available here:

svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk


Once I modprobed these 2 drivers i was able to get video from the cam by running gstreamer-properties, selecting the video tab and under default input selecting the Video for Linux 2 Plugin, USB 2.0 Camera device and then selecting test.



Posted by thaddeus in Redhat Linux at 12:36 | Comments (0) | Trackbacks (0)

Thursday, February 14. 2008

Fedora 8 on Lenovo Y410 - The Gotchas

So in my quest to be vista free in 08, I mentioned that I got a new laptop. So far I have installed Fedora 8. It didn't work out so well becuase I couldn't get wireless working (more on that later) and I had no sound. Looking for a quick fix to these problems, I decided to give another distro a quick try to see if it would work out of the box. I installed ubuntu 7.10 and while I was installing it noticed my Function F5 key. this key activates/deactivates wireless on the laptop. Too bad I didn't notice this before when I was focusing energy on the wireless on/off switch on the front of the machine.

So Ubuntu came up and wireless was all good, but still no sound. I looked around for info on drivers for my sound card, which is the 82801H ICH8 HD Audio Controller. There's a lot of info in the ubuntu forums regarding this card, and many, many suggestions on how to get it running. After trying all of them without success, I decided to go back to what I knew best, and that's Fedora.

So I reinstalled fedora from dvd - the wireless working this time out of the box since I had it turned on. But still no sound. After verifying the correct driver was being used (snd-hda-intel.ko), I updated the alsa-utils package to >=1.0.15, which from my ubuntu research I understood could support my card. The I added the following lines in /etc/modprobe.conf:

alias snd-card-0 snd-hda-intel
options snd-card-0 index=0
options snd-hda-intel index=0 model=fujitsu


Reboot and run system-config-soundcard and audio was working. So I downloaded and installed frog, which provides quick and easy installs of multimedia codecs. After running the ncurses program it updates some package repositories, then says that "it is strongly recommended you allow fedora frog to update your installation now." mmkay, guess that'll do. My updater was telling me there were a couple hundred updates available so I figured I'd let frog do the updates. Very Bad Choice.

Because earlier I was looking for some software using the Add/Remove Software app I had checked the development repository so Frog updated everything on my Fedora 8 to the Fedora 9 alpha versions, INCLUDING my kernel. I was a bit concerned when I saw what was happening, but even more bunched up when I went to reboot and the kernel could not mount the LargeVolume001 or whatever.

Completed a reinstall and selected NO for frog updates.

Next up, I'm installing virtualbox and windowsXP - or I might try the vista cd that came with the laptop...
Posted by thaddeus in Redhat Linux at 14:17

Wednesday, February 6. 2008

Nearly done with Vista, and with SP 1 so close..

After Using Vista as my primary OS for just over a year I can say without a doubt that it has hindered my productivity and caused more heartache that any other OS I've ever used. I am running the 32-bit version of Vista Ultimate on a gateway laptop with Turion64 Processor and 2.5 gigs of RAM. The Vista I'm working with is the result of and upgrade install from XP Media Center 2005, which may be part of the problem, and it was probably stupid to do the upgrade rather than a clean install, but I was lazy and didn't want to have to reinstall all my progs.

I am going to enumerate all the problems:


  • Slower launching all programs

  • Initially, I could no longer use a cisco VPN client because their vista-compatible client was not vista upgrade compatible

  • Now can use the cisco vpn client, but when it's installed on the system it breaks my wireless so I have to uninstall it after I use it to get wireless working

  • Have to run many progs as admin for them to function - packet sniffers, SQL Server Manager, lots...

  • Annoying UAC pop ups require more clicks to get things done (ended up disabling User Account Control)

  • Cannot move files > 3GB to local machine over the network.... WTF?!?

  • Moving files over the network is much slower than xp/linux/macOS (even after turning off Vista -TCP Auto Tuning)

  • All MS product short cuts in quick launch and recent programs on the start menu stopped working

  • My volume control mixer in the status bar area periodically disappears

  • Intermittent crashes of windows explorer at least one or two times a week

  • Outlook often hangs/crashes even with all mailbox maintenance performed

  • TortoiseSVN status cache crashes daily

  • Windows gets my monitors confused when switching between my home and work configuration about 50% of the time

  • Acrobat reader 7 posts application warning before starting regarding compatibility issues



The list could probably go on, but just those issues have made me want to move on. So yesterday I bought a Lenovo 3000 Y410 dual core 2G RAM laptop (which will come loaded with Vista Home Premium) and a 250GB laptop sata drive both on fire sale from compusa. I will be pulling the OEM drive, dropping in the 250GB drive and loading up Fedora 8. This will become my primary work computer, and I'm going to see if I can get away with not running windows at all, but I think I'm probably going to have to run XP under VMware because we use a lot of features from Office 2007 and I do use Visual Studio to create dtsx packages pretty often. Then there's Mapforce and Motorola phone tools and probably a bunch of other stuff. Oh and I'll have to somehow get 10 years worth of emails into mbox format somehow. That'll be ugly.

Well, I've almost talked myself out of it - maybe SP1 will solve all my problems. Ohh the pain.


Posted by thaddeus in Redhat Linux, Tools of the Trade, Vista at 12:00 | Comments (2) | Trackbacks (0)

Thursday, January 24. 2008

Always know your DHCP Assigned IP Address whereever you are

I could use a static IP address for the broadband connection at my cabin because I have a webcam in place up there so that I can check in on the place when I'm not there. Well today I went to check the webcam and could not get a connection. That could mean a few things: the house burned down, the power went off, the computer bluescreened, or my router got assigned a new IP address.

I called comcast and yes, my router had gotten a new IP. So I asked about getting a static IP and that was about 3x the cost of my current service so instead I put together 10 lines of code in 2 files that, if you have curl installed on your system, will let you set up a scheduled task that generates a file called ip.html containing IP information and timestamp and uploads the file to an ftp server.

Now I'll always know my IP. Unless the house burns down, the power goes off, or the computer bluescreened...

Get the scripts here: ftpYourDHCPaddy.zip

Posted by thaddeus in Tools of the Trade at 12:44 | Comments (2) | Trackbacks (0)

Wednesday, January 23. 2008

Flex 2 https socket requests to a server with a self-signed certificate

We are building a flex application that makes REST webservice requests to a Jetty webserver. The server requires basic authentication and we are able to pass the credentials through in the headers and can successfully access the webservices. The problem is that we will need to make these requests over SSL. When we change the protocol in the Flex application to use https, the suthentication and service requests fail.

I'm pretty convinced that this is due to the fact that the webserver is using a self-signed certificate, and the default https behavior is to deny the connection request over https unless the certificate has been issued from a trusted authority. I have looked at the raw packet traffic, and this seems to be what's happening.

When using a command line utility like curl to access https on a server with a self signed cert, it denies the connection, but provides this super helpful message:

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). The default
bundle is named curl-ca-bundle.crt; you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.


My question is does Flex provide the -k switch to just accept the damn certificate and move on?

I have a ticket opened with adobe on this and will post the info on the resolution to this issue.

Posted by thaddeus in Flex at 10:26 | Comments (5) | Trackbacks (0)

Monday, November 19. 2007

0-Byte CFMail files in Spool and Undeliv Directories - scripts to delete

Way back in the olden days of Coldfusion 4.5/5 I would occasionally see a 0-Byte file sitting in coldfusions mail spool directory which seemed to cause Coldfusion to hang and mail to queue up in the spool folder. Well, since then in CFMX 7/8 when the server notices this file in the spool directory, it moves it immediately into the Undelivr directory. However, it seems that the 0-Byte file in Undelivr does have some effects on the CF server, and we have seem Coldfusion MX7 become unreponsive to requests after a period of time when the 0-Byte file is present. Here are a couple ways to get rid of that file. The first is a windows batch file that can be called as a scheduled task, and the second is a coldfusion script that could be invoked as cf scheduled task or via GET or curl from the command line:

Here's the batch file:

:: file rem0bytefiles.bat
:: SpireMedia, Inc. Thaddeus Batt thad@spiremedia.com
:: windows batch file for removing 0 byte files to be called on a scheduled
:: basis when 0-byte files get written to the cfmx mail undeliv folder
:: causing cfmx to go into a death spiral

@echo off

for /f "tokens=* delims=" %%F in ('dir /s/b/a-d C:\CFusionMX7\Mail\Undelivr') do (
if 0 equ %%~zF del "%%F"
)


And here's the cfscript:

<!---
:: file rem0bytefiles.bat
:: SpireMedia, Inc. Thaddeus Batt thad@spiremedia.com
:: windows batch file for removing 0 byte files to be called on a scheduled
:: basis when 0-byte files get written to the cfmx mail undeliv folder
:: causing cfmx to go into a death spiral
--->

<cfparam name=\"url.do\" default = \"nothing\">
<cfdirectory action=\"list\" directory=\"#ExpandPath(\"./\")#\" name=\"dir\">
<cfif url.do eq \"delete\">
<cfif \"#dir.size#\" eq 0 and \"#dir.type#\" eq \"File\">
<cffile action = \"delete\" file = \"#dir.Directory#\#dir.name#\">
</cfif>
<cfdirectory action=\"list\" directory=\"#ExpandPath(\"./\")#\" name=\"dir1\">
<cfdump var=\"&dir1;\">
</cfif>

<cfdirectory action=\"list\" directory=\"#ExpandPath(\"./\")#\" name=\"dir1\">
<cfdump var=\"&dir1;\">

Peace!

Posted by thaddeus in Coldfusion Programming, Coldfusion Server, Win2K3 Server at 14:41 | Comments (3) | Trackbacks (0)

Wednesday, November 14. 2007

Google limits search results when searching for resumes - WTF??

There was a thread on another blog a couple of weeks ago about someone being approached by google and encouraged to apply for a position. I too was contacted by a google recruiter last year and after some back and forth I determined that he found me by using google, (Duh!) So since then I have been using google to proactively seek out local talent by using an advanced query like this one:

coldfusion develop (“Denver” | 303 | 720) -intitle:job (“colorado” | co) -intitle:jobs (~resume | ~cv) -job -intitle:training -intitle:sample -intitle:solutions -intitle:classifieds -intitle:group -intitle:forums -intitle:opportunities -intitle:openings -intitle:titles


Unfortunately, I can't take credit for making up the query - I found it in the google analytics search refer terms for this blog. Now however, it appears that google doesn't really want people to use google for headhunting because today when I ran the query, google politely allowed me to browse results through the first 11 pages, then puked up the error here ("your query looks similar to automated requests from a computer virus or spyware application") and wouldn't let me proceed with the result set . There's no way the traffic pattern that I was generating could look like a bot, a virus, or spyware as I was clicking on a link in the result set, reading a resume, clicking back, next page, look a few more resumes, etc. Normal search result user pattern.

So I tried changing the query to look for flex developers: again, trying to click through to the 12th page (without going through the pages in between) threw up the error.

So, who knows why google is limiting result sets on this kind of query? Is it b/c recruitment firms have been running automated queries through google to collect resumes? Is that somehow outside of googles use agreement? It kind of makes me wonder: WTF?


Posted by thaddeus in Tools of the Trade at 13:50 | Comments (0) | Trackbacks (0)

Friday, November 2. 2007

Crontab or CGI Script to Check on CFMX and Restart if it's Hung

Here is a perl script that can be called via command line in a crontab file or via http post. It takes one paramter, which is host=www.foo.com. This is follow up posting to my earlier code post for checking and restarting cfmx remotely, which was more focused on a windows enviro. The following script is primarily geared toward use in a n*x environment running on the localhost, though it could easily be modified to run on a single host and be invoked to check on and restart multiple servers.

Here it is:

#!/usr/bin/perl

# SpireMedia, Inc. Thaddeus Batt thad@spiremedia.com
# Perl script for restarting coldfusion to be called on a scheduled
# basis when frequent and unanticipated restarts of a cf server are required
#
# Please note that there are 2 ways to use this script
# it can be set up as a cgi script that is involked by a web browser
# or it can be run from a cron job directly (this is preferred)
# if the script is used in cgi mode, you will need to use
# the telnet method of restarting cf which means you need to
# enable telnet as well as allow root access via telnet, which
# may be a security risk for which I take no responsibility
# USE THIS CODE AT YOUR OWN RISK
# Date: 10/23/2007

#first lets flush the writes
$|=1;

#bring in the modules we need
use Net::Telnet;
use English;
use HTTP::Headers;
use HTTP::Request;
use LWP::Simple;
use LWP::UserAgent;
use URI::Escape;
use File::Basename;
use POSIX;

$host = 'http://' . GetCgiParam('host');

#you can use this to set up a default hostname
if (! $host) {
$host='http://localhost';
}

$timeout = 30;
$reload = 1;
$url = '/CFIDE/administrator/';
#if restart_on_err is set the function will restart cfmx services and log the error
$restart_on_err = 1;
#this needs to be set to a directory on the machine where you want the log files to live
$path2log = 'c:\\temp\\';
#this is just to see what's going on from command line
print $host.$url;

#and here we go...
$alive = GetCFMXPageOrRestart("$host$url",
$timeout, $user, $pass, $reload);

exit;


sub GetPage {
my ($url, $timeout, $user, $password, $reload) = @_;
my $ua = new LWP::UserAgent;
$ua->use_alarm(1);
$ua->timeout($timeout) if ($timeout);
my $headers = new HTTP::Headers;
$headers->authorization_basic($user, $password);
$headers->header(Pragma => 'no-cache') if $reload;
my $request = new HTTP::Request("GET", $url, $headers);
my $response = $ua->request($request, undef, undef);

($response->is_success,
$response->code,
$response->content,
$response->error_as_HTML);
}

sub GetCFMXPage {
my $url = $_[0];
my ($httpstatus, $httpcode, $httppage, $httperrorHTML) = GetPage(@_);
if ($httppage =~ /TDS stream/) {
open LOG,">>widelog";
print LOG "<<<<<<<<<<<<<<<<\n$url\n>>>>>>>>>>>>>>>>\n";
print LOG $httppage;
close LOG;
$httpstatus = 0;
}
($httpstatus, $httpcode, $httppage, $httperrorHTML);
}

sub GetCFMXPageOrRestart {
my ($httpstatus, $httpcode, $httppage, $httperrorHTML) = GetCFMXPage(@_);
my $url = $_[0];
if ( $restart_on_err ) {
if ($httpcode != 200
|| (!$httpstatus && 200 == $httpcode) ) {
($sec, $min, $hour, $mday, $mon, $year) = localtime;
$mon++;
my $fname = sprintf( "$path2log%2.2d%2.2d%2.2d-%2.2d%2.2d%2.2d.err",
$hour, $min, $sec, $year, $mon, $mday );
open(ERRFILE,">$fname");
print ERRFILE "GetCFMXPage failed at $hour:$min:$sec on $mon/$mday/$year\n";
print ERRFILE "starttime=$starttime\n";
print ERRFILE "reportcount=$reportcount\n";
print ERRFILE "url=$url\n";
print ERRFILE "httpstatus=$httpstatus\n";
print ERRFILE "httpcode=$httpcode\n";
print ERRFILE "httperrorHTML=$httperrorHTML\n";
close(ERRFILE);
print "\nfile=$fname\n";
RestartCFMX();
exit;
#die "Aborted: $fname\n";
}
}
}


sub GetCgiParam {
my ($paramname) = @_;
my ($request_method, $query_string);
if (! %cgiparams) {
$request_method = $ENV{REQUEST_METHOD};
if ($request_method eq 'GET') {
$query_string = $ENV{QUERY_STRING};
}
elsif ($request_method eq 'POST') {
read (STDIN, $query_string, $ENV{CONTENT_LENGTH});
}
elsif ($ARGV[0]) {
$query_string = $ARGV[0];
}
else {
die Usage();
}
foreach $pair (split /&/, $query_string) {
my ($key, $value) = split /=/, $pair;
$value =~ tr/+/ /;
$value =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack 'C', hex($1)/eg;
$cgiparams{$key} = $value;
}
}
$cgiparams{$paramname};
}


sub RestartCFMX {

#the following allow this script to run from cgi, note that you will
#be putting the root user password in here if you run it this way
#this is a security risk - if your webserver ever got it's
#mime-type mappings screwed up this pl could be served as plain text
#exposing your root pawword to anyone who can find it
#you should take security measures appropriate to your situation

# $telnet = new Net::Telnet ( Timeout=>30, Errmode=>'die');
# $telnet->open('$host');
# $telnet->waitfor('/login: $/i');
# $telnet->print('root');
# $telnet->waitfor('/password: $/i');
# $telnet->print('password');
# $telnet->waitfor('/# $/i');
# $telnet->print('/opt/coldfusionmx7/bin/coldfusion restart');
# $output = $telnet->waitfor('/# $/i');
# print "Content-Type: text/html\n\n";
# print $output;

#this is safer code if you are able to run this script via
#the root user's crontab
@args_exe = ("/opt/coldfusionmx7/bin/coldfusion","restart");
system(@args_exe) == 0
or die "it didn't work: @args_exe";

print <<HTMLDOC;
<body >
<h1>restarting services</h1>
<PRE>
<p><hr>
</PRE><HR>

HTMLDOC

}



sub Usage {
print <<USAGE;
checkandrestartcfmx.pl host=HOSTNAME
host is hostname to be prepended to script URLs
example: localhost or 216.87.22 or www.code-complete.com
USAGE
}
exit;
Posted by thaddeus in Coldfusion Server, Redhat Linux at 15:43 | Comments (0) | Trackbacks (0)

Thursday, October 18. 2007

To Hell With Gateway - They Should be Paying ME!

So my wifes XP gateway laptop set to run automatic updates received one last week, then blue screened. Then wouldn't boot.

So, I figure the drive has got some problems, let's pull the drive and hook it up to an external IDE > USB to get some data off of it and try and run chkdsk on it from another machine. Pull drive, hook up adapter, plug into USB port and..... what? No daa-dink sound!!? No "installing new hardware" message???! green light is on the adapter - check drive is spinning - uhh, nope. This is truly an Oh FUCK! moment as all my wife's business data is (was) on that drive. I stuck it back in the laptop.


We went to Office Depot and bought a new HP laptop. Thankfully, it booted up. I installed office and all the other programs she needs to run her business and the machine ran fine all day. That evening I instructed the machine to download and install all windows updates. Next morning the machine was in chkdsk mode stuck at 1%. Hard cycled the machine and skipped chkdsk. It turns out it got it's hard drive stuck in a cycle where the dirty bit was set on the C: drive and every time the machine booted up it wanted to run chkdsk. Semi-normal, except that chkdsk would start and never get past 1%. Well, I thought, "That's sketchy, let's get a backup of your data." Apparently windows backup will not run if the dirty bit is set. Did you know that? I sure didn't. Returned the unit for an exchange and reinstalled all software, etc. So far new unit works.

So now the gateway part: the machine is still under warranty, so I call up explain the problem and they brilliantly deduct that the hard drive has failed (yeah, thanks). And volunteer to send out another. I inquire as to what will be on that hard drive and they respond that it will come with XP on the C: partition and the gateway recovery crap on the d: partition just like the original drive.

So off I send the failed drive to a data recovery center, really assuming it would be on the simple side for pros like them to get the data off the disks - after all, there was physical damage to the drive and it never jammed and made those clicking noises, it just stopped spinning up. Of course 4 days later I get this update:

"The current status from the lab is that we are attempting to replace the damage parts inside the hard drive. This is expected to require a higher level clean-room recovery and if we continue, it looks like it will be on the mid-upper range of the recovery ($1600-$2100)"

Then 2 days after that:

"The report from the lab is that they are still having trouble getting the drive to respond with standard recovery procedures and are expecting to move the drive onto another piece of equipment for higher level recoveries. We should have some more news within a few days."


Sweet. Meanwhile, this morning the hard drive from gateway shows up. I shove it into the laptop, happily expecting a fresh system. WTF?!!? The computer does not boot. The computer does not even realize there's a hard drive attached to it. First thought was they sent me a faulty drive. Second thought was, they sent me an empty drive! Emtpy as in not even initialized Empty. Pulling the drive and attaching it to the usb adapter proved this theory to be right. So using vista disk management tools I have initialized the disk, performed a quick format, and am currently running a deep scan (chkdsk /r /f k:) Just make sure the sectors/clusters are all good.

When that's done I'll be putting Fedora 7 on the laptop. What the hell are thinking? Here's what the enclosed note said about the drive:

"Please find enclosed the replacement part that you requested along with easy to read installation instructions."


A. There were no instructions.
B. No regular consumer would know how to deal with a disk that wasn't even initialized.
C. I suspect that if I were to call, they would send out another harddrive and I would be stuck in an infinite loop with gateway support.

So Linux it is. I guess some weeks are just bad computer weeks, and during those weeks, its good to be able to let your geek flag fly!

Peace.


Posted by thaddeus in Redhat Linux, Vista at 10:07 | Comments (0) | Trackbacks (0)

Tuesday, October 16. 2007

IIS Resource Pools and CFMX Web Services

We have a CFMX-based Web Content Management System that manages multiple websites. The system uses name-based virtual hosting and the public facing website(s) and the ESM application can live on the same box running on a single IP address or on seperate machines with seperate IPs. The Enterprise Site Manager uses web services extensively as do the sites that are being managed. The webservices are invoked using the same URL on the seperate sites:

http://www1.clientwebsite.com/wsdl/index.cfc?wsdl
http://www2.clientwebsite.com/wsdl/index.cfc?wsdl
http://www3.clientwebsite.com/wsdl/index.cfc?wsdl
http://ECMS.clientwebsite.com/wsdl/index.cfc?wsdl


Using name-based virtual hosting with a single IP, there are no problems with this when running cfmx under apache, everything works fine. But if you run this kind of set up under IIS some strange things happen: Once the wsdl URL is invoked it is cached in the Default Application pool simply as /wsdl/index.cfc?wsdl so whether you are calling the ESM wsdl, or any of the client site wsdls you may of may not get the right one. What this means is that if you have name-based virtual host applications running under IIS that have the same URLs as one another, you MUST run each site under it's own application pool otherwise you can expect to see some wacky results on your URL calls.

Posted by thaddeus in Coldfusion Programming, Win2K3 Server, Windows Server 2008 at 10:54 | Comments (0) | Trackbacks (0)

Monday, October 15. 2007

Naming Directories Using Dots and IIS Security Lockdown

The other day one of our developers was migrating a client site to a new dedicated server that the hosting company had just built. The application being migrated was an instance of our Enterprise Site Manager application which runs under CFMX 8. It had been running fine, and we were just switching boxes so we were puzzled by the fact the implementation was severely broken on the new server. Our developer was able to trace the issue to the fact that certain CFCs seemed to be inaccessible, specifically, CFCs that lived in a directory that used version numbers with dots. (for example /sitemapeditor1.1/index.cfc, or /autocompleter1.2/index.cfc)

When trying to access these files directly via a web browser, the server was returning a 302 error, then a 404 error. Strange. Remove the dot from the directory name, and the CFCs came up fine. So at first I thought there was something up with our ISAPI_Rewrite configuration, which we use to provide clean URLs on the client site. But that checked out fine. So I did what I usually do when I'm completely stumped and fired up Mark Russinovich's great utility called Procmon, which shows which processes are accessing which files in realtime. So I noticed that when trying to pull up the URL, the w3 service was accessing a a file called UrlScan.101107.1916.log. When I looked at the file, I saw this line:

[10-11-2007 - 13:48:36] URLs must not contain any dot except for the file extension.

Furthur down, lot's of entries like this:

[10-11-2007 - 13:48:37] Client at 127.0.0.1: URL contains '.' in the path. Request will be rejected. Site Instance='1456874306', Raw URL='//validator1.0/'
[10-11-2007 - 13:54:43] Client at 127.0.0.1: URL contains '.' in the path. Request will be rejected. Site Instance='1456874306', Raw URL='//validator1.0/'
[10-11-2007 - 13:55:10] Client at 127.0.0.1: URL contains '.' in the path. Request will be rejected. Site Instance='1456874306', Raw URL='//validator1.0/'
[10-11-2007 - 13:55:30] Client at 127.0.0.1: URL contains '.' in the path. Request will be rejected. Site Instance='1456874306', Raw URL='//validator1.0/'


AHA! The hosting company must have installed the IISLockdown Tools! by opening up the urlscan.ini file and setting the following parameter, all was good with the application:

AllowDotInPath=1 ; If 1, allow dots that are not file extensions.

Posted by thaddeus in Tools of the Trade, Win2K3 Server at 10:59 | Comments (0) | Trackbacks (0)

Friday, October 12. 2007

The New My Yahoo!

I have used my Yahoo! as my home page forever - I've dallied about with google, and some other rss agg engines, but always I went backto my Yahoo!. This morning, when setting up my wifes new laptop homepage in firefox something new came up when I set her home page to my Yahoo! Check it out here: http://cm.my.yahoo.com/
Posted by thaddeus at 07:18 | Comments (3) | Trackbacks (0)

Tuesday, September 25. 2007

OO Programming Opportunities in Denver

SpireMedia, ranked by DBJ as one of Denver's Best Places to Work and Denver's Top Web Development Firm, seeks multiple Web developers with advanced Web application programming abilities. We are developing Rich Internet applications on the leading edge of technology and are seeking like-minded developers who are able to leverage their existing skillset as well as learn new methodologies. You must be results-oriented and able to work in a team-based development environment.

If you are an experienced OO developer with a CFMX , Java, C#.NET, or Ruby background familiar with programming within MVC frameworks and are interested in growing your skillset to include Flex, AJAX, Silverlight, and AIR RIA development, we’re interested in talking to you.

Must have demonstrated experience programming .NET Assemblies in C# or developing custom java classes, packaging and deploying WAR/EAR applications under tomcat. Database experience with SQL Server 200-2005 and/or Oracle/PostgreSQL is a requirement. Any RIA development including AJAX and/or Flex is highly desirable, but we can train the right candidate on using Flex Remoting/Actionscript 3 and AJAX to build RIAs. You will be leveraging WebORB and LiveCycle server components and code generators. The applications we build work on the Web and within the Enterprise, so your knowledge of scalability will help. You also need to be able to multi-task across multiple projects and manage your time well.

Secondary Skills Include:

DOM 2, CSS, XHTML
XML, XSLT
CFMX - component object model development
Cairngorm Microarchitecture
Spring Framework
iBATIS Data Mapper framework
Hibernate/NHibernate
XAML
Quality Assurance
Posted by thaddeus in .NET, Apollo, Coldfusion Programming, Flex, Java, Silverlight at 12:50 | Comments (0) | Trackbacks (0)

Tuesday, September 18. 2007

Zimbra Acquired by Yahoo!

From the Zimbra announcement this morning:

Yahoo! is acquiring Zimbra to extend its leadership and reach new customers in the business, education, and service provider markets across the globe.

This major opportunity for Zimbra will accelerate our growth using Yahoo!'s worldwide reach, create a larger combined community, plus enable us to build even more powerful experiences together.

For more information please see the official announcement or view the Zimbra Blog.
Posted by thaddeus in Zimbra at 08:29 | Comments (0) | Trackbacks (0)
« previous page   (Page 2 of 4, totaling 51 entries) » next page

About Me

Thaddeus Wakefield Batt
Thaddeus Wakefield Batt

blogging from: denver, co.

blogging about: web technologies

Links

Tech Blogs
Fullasagoog - RIA
John Wilker
William .NET
Graphex

Links
SpireMedia, Inc.
The CMS Matrix




Lijit Search

Archives

  • September 2010
  • August 2010
  • July 2010
  • Recent...
  • Older...

Categories

  • XML .NET
  • XML Apollo
  • XML Coldfusion Programming
  • XML Coldfusion Server
  • XML Flex
  • XML Information Architecture
  • XML Java
  • XML Livecycle
  • XML postgreSQL
  • XML Redhat Linux
  • XML Silverlight
  • XML SpireMedia
  • XML SQL Server 2k5
  • XML Tools of the Trade
  • XML Vista
  • XML Win2K3 Server
  • XML Windows Server 2008
  • XML Zimbra


All categories

Syndicate This Blog

  • XML RSS 0.91 feed
  • XML RSS 1.0 feed
  • XML RSS 2.0 feed
  • ATOM/XML ATOM 0.3 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Comments

Blog Administration

Open login screen

Thaddeus Batt

Creative Commons License - Some Rights Reserved
Original content in this work is licensed under a Creative Commons License