A Progressive Viewpoint

September 28th, 2012 by Mike Fitzpatrick

Many progressives share views with libertarians:

  • fiscally conservative
  • pragmatic
  • believe in freedom.

But progressives are compassionate and insist on society’s roll in helping those in need. A progressive person would never suggest that fire departments should be privatized and require a subscription to get fire protection.

Here is a list of some of my core beliefs-

  • Medicare for all.
  • Free quality education.
  • Make all drugs and drug use legal with a doctors prescription. Treat drug use like a medical problem, not a legal problem.
  • Legalize non-violent activity between consenting adults.
  • Drastically reduce the military budget. Close overseas bases unless we can partner with another nation at each one for staffing and expenses. Presently the USA spends as much as the next 17 countries combined, and 15 of them are our allies. The USA has 5% of the world population and spends 50% of the money spent in the world on military.
  • A Balanced Budget Amendment (except in times of DECLARED WAR).
  • A fair tax system that is not regressive (like sales tax), but very progressive. Throw out the entire tax code and start over with an income tax with no deductions.
  • The USA should be more concerned about contract law than people’s sex lives. Get the USA out of the sex business. Instead of gay marriage, civil unions for everyone. If you want to get _married_ go to your church and it is between you and the church. If you go to city hall, civil union.
  • Corporations are not people (and shouldn’t pay ANY taxes- only people should pay taxes).
  • Income is income. No type of income is better or worse than any other type of income. It should all be taxed the same way (a progressive rate).
  • Money is NOT speech! (see: http://MoveToAmend.org)


SAR Tracking in San Benito County

April 30th, 2009 by Mike Fitzpatrick

I just got back from Pinnacles National Monument in San Benito County. I was helping Fernando Moreira and George Dresnek teach a tracking class for the San Benito SAR team.

Here are a few YouTube videos:

Here are some photos I took while there:

Brainbench “C Fundamentals” Certification

April 8th, 2009 by Mike Fitzpatrick

Brainbench made some of their certification tests free for April 2009 so I took the C Fundamentals test.

Here’s my latest certification: Brainbench C Certification

Brainbench C Fundamentals Icon

Individual Test Results

Completed Test
Name: C Fundamentals
Score: 4.42 Date: 2009-04-08

View detailed topic results

Scored higher than 90% of all previous test takers.

Demonstrates a clear understanding of many advanced concepts within this topic. Appears capable of mentoring others on most projects in this area.

Compiler Operations
Program Statements
C Expressions
Weak Areas
Debugging and Error Handling

I was ding’ed for debugging and error handling, and I’ll look into that, but the score wasn’t too bad considering I took the test on a whim and without preparation.

My EMT Ride-alongs

April 6th, 2009 by Mike Fitzpatrick

For those who don’t know, I am in an EMT class at Santa Rosa Junior College. After the class I still need to pass the National Registry Exam for EMT’s.

Part of this class requires that I do “Ride-Alongs”, that is, I must spend two 8 hour shifts on the back of an ambulance with other EMT’s to get an idea of what it is like to be an EMT.

Russian River Fire Protection District – Sunday March 8, 2009

My first ridealong was Sunday March 8 at the Russian River Fire Protection District (RRFPD) in Guerneville, CA (the Guerneville firehouse). That day was VERY uneventful. I arrived at 10:00 AM to a clean and orderly firehouse. I spent most of the day in the residence reading.

There was only one call at about 1345 HRS to a house in Oddfellows Park with a stuck flue on a pellet stove. The house was filling with smoke and the residents called for help. The rule at RRFPD is that on any call the entire house, two firefighters and one paramedic, will respond. So we went- one engine with two firemen (Ryan Lantz and Travis Wood), and an ambulance with a paramedic (Glenn Rampone and myself). The call was resolved by Steve Baxman from Monte Rio who made it there before we did.

After we returned from the call Glenn gave me a tour of the ALS rig. He described all the gear he uses and the situations that the gear is used in.

Ryan Wood- RRFPD Firefighter

Ryan Lantz- RRFPD Firefighter

Travis- RRFPD Firefighter

Travis Wood- RRFPD Firefighter

Glenn Rampone EMT/P

Glenn Rampone- EMT/P

VeriHealth – April 3, 2009

My second ridealong was on Friday April 3 at VeriHealth in Santa Rosa. I worked with Bodhi Canfield and Mike Stevenson, both are EMT/B. We only had two calls but we were busy all day.

I arrived at 7:50 AM and met them as I drove into the parking lot while they were preparing their ambulance for the day. Our first task was a trip to Airgas on Piner Road to get new oxygen bottles, which took about 30 minutes. After that we went to the self serve car wash on Santa Rosa Avenue and washed the ambulance, also about 30 minutes. It was about 0920 HRS and we had a call scheduled for 1015 HRS so we took a break back at the VeriHealth headquarters.

VeriHealth Bodhi Canfield & Tiffani Parks
VeriHealth: Bodhi Canfield & Tiffani Parks

VeriHealth: Mike Stevenson
VeriHealth: Mike Stevenson

VeriHealth: Taking A Break
VeriHealth: Taking A Break

Verihealth Break room
VeriHealth Break Room

Call: Transport CHF Patient.

We had our first call at 1000 HRS to transport a 90 year old man from Memorial Hospital to Summerfield Convalescent center. We arrived at Memorial at about 1015 HRS. There was some confusion as to the BSI precautions to take. This patient had been in the hospital for 3 or 4 days and came in suffering from chest pain.

Our initial information from VeriHealth was that the patient had MRSA bacterial infection and we needed to take special care and don a full body suit before entering the room. When we arrived the nurse said that the MRSA had subsided and was only present in the nares (nasal hairs) so full protection was not required. She gave us a full report on the patient that included the vital signs and general condition of the patient. After the patient was packaged on the gurney and prepared to move to the ambulance we learned from the doctor that she would have preferred for us to have full MRSA protection.

After the Patient was loaded into the ambulance, Bodhi asked me to do an initial assessment, take vitals, and get SAMPLE history. Basically, the first two pages of the medical patient assessment skills sheet we use in the EMT class. We delivered the patient to his destination then prepared for our next call.

Call: Transport Bariatric Patient

Our second call was to transport a bariatric patient (morbidly obese person) from St. Helena Hospital to Queen of the Valley Medical Center (QVMC) in Napa. For this call we had to stop by the headquarters at 200 Montgomery St. in Santa Rosa and swap out our standard gurney for a bariatric gurney. We hit the road at about 1130 HRS and were due in St Helena at 1200 HRS. It is a long drive so we didn’t arrive until 1215 HRS.

When we arrived Stephannie, the nurse on duty, gave us a report including vital signs and blood sugar level. The patient was diabetic and had received dialysis the day before. The patient was very difficult to package because of her size. She was very big, about 6 feet tall and over 400 pounds! It was fortunate that she could “skooch” herself to the edge of the bed so we could slide her on to the gurney.

Once we loaded her onto the ambulance Bodhi drove and Mike took SAMPLE while we were en route. I was impressed how Mike kept the patient engaged in conversation during the trip.


I had a great time on this ride along and learned a lot. It was entirely due to the professsionalism of the Verihealth staff, Mike and Bodhi. I experienced first hand what it was like to work as an EMT on a BLS rig. I hope that I can see both of these people in the future. In fact, Mike is joining the Sonoma SAR team. He is finishing his background check and I should be working with him by the start of summer 2009.

FineArtWork.com is UP!

March 18th, 2009 by Mike Fitzpatrick

Lorraine’s new website is up!

See it here: http://FineArtWork.com

Please buy a print or two if you want to support it.

New Sonoma SAR Videos on YouTube!

February 27th, 2009 by Mike Fitzpatrick

You can see me in this video riding the ATV.

I must say that Eric Thompson, the narrator, is great here. I think he really missed his calling.

BrainBench C# Test

November 13th, 2008 by Mike Fitzpatrick

I took the C# test at BrainBench today. Here’s the result…

Individual Test Results – Actionable Data Just For You

Test: C#
Date: 13-Nov-2008
Score: 3.99
Weights: 100% C#
Elapsed time: 57 min 31 sec
Score: 3.99
Percentile: Scored higher than 89% of previous examinees

Demonstrates a clear understanding of many advanced concepts within this topic. Appears capable of mentoring others on most projects in this area.
Strong Areas
  • Grammar
  • Object-Oriented Programming
  • Value and Reference Types
  • Delegates
  • Developing Data Consumers and Services
  • Properties, Indexers, and Fields
  • Methods
Weak Areas
  • None noted

Your results are now posted to your online account. You can log on to your account anytime via the Brainbench home page.

You can also prove your C# skills to employers, recruiters, or anyone else by pointing them to your online Brainbench public transcript. Just send them this link:


Trackers Class – Napa, CA – October 2008

October 31st, 2008 by Mike Fitzpatrick

I just came back from Fernando Moreira’s tracker class in Napa held at Camp Coombs in Napa. I took some pictures and they are available at Picasaweb and on YouTube.

Fernando is a first rate tracker, maybe the best tracker working in the U.S. I learned a lot from him and it is really great fun to spend the weekend tracking.

A Case Insensitive Hashtable for .Net

September 17th, 2008 by Mike Fitzpatrick

I recently needed a case insensitive hashtable to store various types of values so I created one by wrapping the .Net hashtable. This hashtable works with any “object” type, but when the key is a string the value is not case sensitive. This is useful for:

  • Reading profile settings from multiple sources.
  • Reading XML elements where the attributes are not case sensitive.Here’s a link: CIHash.vbIn composer free nokia ringtones | 24 free ringtones | nextel ringtones | yahoo ringtones free download | 3g for free ringtones | 24 theme ringtones | music ringtones | 3g for free ringtones | free hindi ringtones | cell cingular free phone ringtones | 24 fox ringtones | ringtones converter | download new ringtones free | boost free ringtones | real tone ringtones | make your own free ringtones | yahoo ringtones | free mobile phone ringtones | samsung polyphonic ringtones | christian music ringtones | ???????? ????? ???????? addition to the .Net hashtable methods, I added some new methods.
  • The Overlay method adds one hashtable to another and if a key already exists it’s value is updated.
  • The Swap method (as it’s name implies).

  • Why Visual Studio 2005 debugger is broken

    September 17th, 2008 by Mike Fitzpatrick

    Visual Studio 2005 is a pretty big improvement over Visual Studio 2003. So what’s wrong with it? The debugger is broken, that’s what! And that’s no small thing either!

    I suppose that I should be more precise. The debugger is broken for all the code that I work on, and those projects are all mixed mode (managed / unmanaged) projects. I have many projects that I work on that predate the emergence of .Net when it came out in 2002 with Visual Studio. That’s why I have written so much about porting legacy (unmanaged) code to .Net.

    I was eager to use VS2K5 so I downloaded it a week before the official release date in November 2005. Right away I could see that the debugger was broken for my mixed mode project so I created a bug report on the MS website. Here’s a link:
    VB File locked while Debugging Mixed Mode project
    (You might need an MSDN license to view this link)

    The gist of this report is this:

    In VS2K5 it is not possible to both edit and debug a source file while debugging a program. That is, you can either:

  • Set a breakpoint in your project and the debugger will stop there, but you cannot modify the code while you are stopped.
  • Or change the VS2K5 options and the breakpoint will never be hit, but you can edit your code at any time.Changing modes requires going to the “Tools > Options” menu and changing the debug mode.
  • I want to be clear, I am not talking about that truly marvelous feature that MS calls “Edit & Continue” where you can, on the fly, edit and recompile code in a single debug session. I am talking about just editing the code without a recompile.

    The most frustrating thing about communicating this to MS tech support was that EVERYTIME the MS tech support kept saying that E&C is not supported in mixed mode. And EVERYTIME I had to explain that I wasn’t talking about E&C at all!

    So, debugging legacy code with VS2K5 becomes very time consuming and I choose to forgo using it until MS fixes it. However, it looks like they won’t acknowledge that the bug exists, even though at least one MS tech confirmed it for me (I burned one of my MSDN incidents to get at least some traction on it).

    .Net and the falacy of security

    September 17th, 2008 by Mike Fitzpatrick

    .Net purports to be a secure platform, but when I create a .Net setup package and used a custom action I found that I could not run the setup package on a network.

    I have a VB.Net installer. The installer program I created
    (System.Configuration.Install) handles the various events
    like MyBase.AfterUninstall, etc. This program works fine
    but when I run the installer on a network resource (a UNC
    path) it generates a System.Security.Security exception
    before the program even starts. The .MSI installer kicks
    off just fine, but throws the exception just when the .EXE
    program starts.

    The installer works fine if the UNC drive is mapped, or if a
    local drive. Any idea on what may be happening?

    The solution may surprise you. It surprised me! The setup package created in VS.Net has to be given permissions to execute from a UNC path, but not from a mapped drive! My users would never go for having to do that. They want to click a link in the email I send or on a web page and have the installer run. Fortunately, there is an easy work around, but it shows just how crummy the .Net security is.

    Here’s the trick: Create a batch file named setup.bat that gives the user all the permissions the setup package needs to run on the network. Here’s the contents of the batch file used to set security on .Net 1.1:

    /* $Date: 2006/06/09 17:51:05 $ */
    /* $Revision: 1.1 $ */
    /* $Author: mike $ */
    IF NOT "%1" == "/?" GOTO :TESTOS
    	ECHO CONFIGNET.BAT - Sets up the .NET configuration
    	GOTO :END
    IF "%OS%" == "Windows_NT" GOTO :SETLOC
    rem Trim the command line to be only a drive letter and path only
    rem Test the SETUP DIR to see if we are on a UNC path. UNC paths start with "\\"
    rem A UNC path requires us to run caspol to give .NET permissions to run the setup
    	IF "%MYROOTDIR:~0,2%" == "\\" GOTO :TESTCAS
    rem At this point we have assumed that the batch file is run from a UNC path
    rem This requires that we SET the .NET permissions using CASPOL.EXE
    rem Verify that CASPOL.EXE is on the system
    	SET CASPOL_EXE=%SystemRoot%\Microsoft.NET\Framework\v1.1.4322\CasPol.exe
    rem Run CASPOL and see if the permissions are already SET for this UNC.
    rem CASPOL has the nasty habbit of creating permissions each time,
    rem regardless if they are already present or not.
    rem Change the "\" to "/" which is what caspol likes to see
    ECHO Testing .NET security: "%MYROOTDIR%"
    "%CASPOL_EXE%" -lg 2>NUL | findstr /I /C:"%MYROOTDIR:\=/%" >NUL
    rem CASPOL is required for this UNC Path. Add it to the .NET configuration
    ECHO Setting .NET security
    "%CASPOL_EXE%" -q -machine -addgroup 1 -url "file:%MYROOTDIR%*" FullTrust -n "mmGrasp" >NUL
    	ECHO !!! ERROR: Setting .NET for "%MYROOTDIR%"
    	ECHO.NET security OK
    	GOTO :END

    So there it is- one of the ways that .Net security falls short and an easy way to beat it.

    .Net and Legacy Code

    September 17th, 2008 by Mike Fitzpatrick

    As you can see from my previous post I am interested in recycling my old “C” code for use in .Net. I don’t want to rewrite the code in C# or VB so I am wrapping it with a C# DLL. The good thing about .Net is that it already has much of the functionality that I put into some of these old C libraries. However, there is a lot that I didn’t write that I would like to wrap, in particular: GSL gets wrapped here: Gnu.dll.

    One of the big problems I have had with wrapping old DLLs is with arrays. .Net managed arrays are quite different from C arrays. Consider the following from GSL:
    // double gsl_stats_mean (const double data[]
    // , const size_t stride
    // , const size_t n);
    exact spelling=true,
    CharSet = CharSet.Ansi,
    public static extern double mean
    ( [In] [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)]
    double [] data
    , [In] int stride
    , [In] int n);

    It seems to work OK, so what’s the problem? Try using this on a bunch of 1,000,000 element arrays and see what happens to the resources on your PC and you’ll soon see!

    The MarshalAs class copies the data in the .Net array into a new C array. Here is a better implementation that uses the GCHandle:

    public class gsl_stats {
    internal static unsafe GCHandle _gch_pinned_ptr(double[] data, ref double *p)
    	GCHandle gch = GCHandle.Alloc(data, GCHandleType.Pinned);
    	IntPtr ip = gch.AddrOfPinnedObject();
    	p = (double*)ip.ToPointer();
    	return gch;
    public unsafe static double mean (double [] data
    	, int stride, int n)
    double *p = null;
    	GCHandle gch = _gsl._gch_pinned_ptr(data, ref p);
    	double d = gsl_stats_DLL.mean(p, stride, n);
    	return d;
    } // mean()
    } // gsl_stats
    public class gsl_stats_Dll
    	, ExactSpelling=true
    	, CharSet = CharSet.Ansi
    	, CallingConvention=CallingConvention.Cdecl
    	, EntryPoint="gsl_stats_mean")]
    	public static extern unsafe double mean
    		( [In] double *data, [In] int stride, [In] int n);
    } // gsl_stats_DLL 

    Version 0.0

    September 17th, 2008 by Mike Fitzpatrick

    Well here we are on CodeInsight.com! I’ve been writing code for a very long time now and I have a lot to share. I am working on a .Net wrapper for the GNU GSL (See GSL it here) Here’s what I’ve got so far: Gnu.dll. It is a bit generous for me to use the namespace Gnu, but there is a lot of open source legacy “C” code that I’d like to wrap for use in .Net, and the “Gnu” namespace seemed the most appropriate.

    I really like .Net and think that it is long overdue. I have been writing code pretty much entirely on MS-DOS and Windows since 1986 and I have used Microsoft products pretty consistently the entire time. As far as MS code development, the only MS products I haven’t used are COBOL and Fortran (although I have use Fortran on other platforms). I have also had the pleasure of dealing with MS for support over the years. When MS came out with Visual Studio 1.0 for use on Windows 3.0 in 1992 they really took a step backwards from Programmer’s Workbench. PWB was almost as good as emacs as a code development platform. But heck, VS 1.0 didn’t even have regular expressions in the editor- how lame is that? Plus it came on 22 floppies and took over 3 hours to install! But the telephone tech support was pretty good, and VS did improve over the years. I was really happy when VS 5.0 came out and had incremental compiles and “Edit & Continue” for C+. I thought that was just soo coool!

    When .Net came out in 2002 I thought that VS took another leap forward. I really liked VS 6.0, but VS.Net was missing something I always took for granted in VB: Edit & Continue! How could they take it away??? At least they still had it in C++, which was really killer. When VS.Net 2003 came out I was happy with it too. But when VS.Net 2005 came out I was immediately disappointed!

    Sure, VS.Net 2005 had lots of great new features and it claimed to have Edit & Continue, but the debugger was broken! At least the debugger was broken for use in “mixed mode” development (managed/unmanaged solutions). Back in the day, a mixed mode project was using different development platforms like C, assembly, and VB, and then linking them together, something I have done since ‘93 when I got VB 3.0. I still like to use VB as the GUI and C++ Dll’s for the implementation. The legacy code I use interfaces quite nicely with .Net, if you know how to do it (thus the port of GSL).

    You see in VS.Net 2005 in the unmanaged code you can either set a breakpoint or edit the code during a break in a debug session, but not both! And it is a hassle to switch the modes.

    One week before the official release of VS.Net 2005 I created a bug report on this at the MS web site. The lame-o’s at MS tech support kept insisting that this was a feature not a bug, since Edit & Continue was not supported in mixed mode. My point was that I didn’t care if the code didn’t compile and run on the fly, I only want to edit it while I stepped through the code, so as to correct and improve it during the debug session!