Thursday, June 07, 2007

This section will tell the story of how the small company I work for (about 450+ people) was taken over by a very large company. While this happens all the time, I will focus on outsourcing because our new company takes this to a whole new level. They outsource everything and I mean everything from IT, accounting, HR, recruiting, facilities and more. I’m not sure who even works at the home office? Okay maybe the VP’s and the project managers that oversee the outsourcing, but that’s about it. I have never seen an abuse of outsourcing as I have witnessed since they purchased us. I could care less if it worked, but it doesn’t from what I have seen so far.

I have never seen a bigger waste of time and money. Sure, outsourcing on the surface might be cheaper but it takes about 5 outsourced people to do the job of one of us! I will for now not reveal the company that purchased the company I work for but I might use real first names.

Stay tuned!

Thursday, June 07, 2007 11:09:08 PM (Pacific Daylight Time (Mexico), UTC-07:00)  #    Comments [0]  | 
Tuesday, May 08, 2007

ABC News reported this morning about the dangers of text messaging while driving and that Washington will be the first state to make it illegal. This got me thinking on why we need laws for issues that should be common sense to people? This is obviously a very dangerous habit that seems to be common among young people since this is their main method of communication.

They also reported a news story about a bus driver that crashed a bus while text messaging and injured 30 children including one child lost her hand.  Should we have an IQ test before handing out cell phones? Well, my boss who is very intelligent does this all the time. He did it once with me in the car and I was very scared. He also sends me email from his Blackberry while driving his entire family in an SUV!

If we need legislation because so many people are clueless, why does it take so long? Why isn’t this banned country wide? Actually, in my mind, cell phone and hand-held devices should be totally banned from cars. When I sit an intersection watching cars go by, I see about 50% of people talking on their cell phones with it up to their ear (not using hands free).  There is no phone call, text message or email that is worth endangering your life or others.  How many lives have to be loss to this activity?

The Solution

Since people are addicted to their phones and messaging and no matter how much legislation you throw at them, it will keep happening. So what is the solution? I thought of an easy one… make a law that if a cell phone detects that it’s traveling more than three miles an hour (via the internal GPS), disable it! No reading messages, no dialing and no receiving calls.

 | 
Tuesday, May 08, 2007 7:10:50 PM (Pacific Daylight Time (Mexico), UTC-07:00)  #    Comments [0]  | 
Saturday, April 14, 2007
dotdetdave-head-50.jpgIf you live in the San Diego area, dotNetDave (a.k.a. David McCarter) will be teaching a 6 week Building Rich & Interactive Web Applications with ASP.NET AJAX course at the University of California, San Diego Extension beginning on Thursday 7/05/2007 from 5:30pm to 10:00pm. For more information and to enroll, please click here.
Saturday, April 14, 2007 8:58:24 PM (Pacific Daylight Time (Mexico), UTC-07:00)  #    Comments [0]  | 
Tuesday, April 10, 2007

Double CD and Double DVD Featuring the Full Theatrical Performance of Operation: Mindcrime I and II Are Both Available From Rhino June 26

LOS ANGELES — Queensrÿche brought the group’s acclaimed Operation: mindcrime albums to the stage last year performing the original and its 2006 sequel in their entirety during the group’s successful North American tour. The marathon shows included a full theatrical production complete with surround sound, video imagery and actors portraying the concept albums’ characters onstage with the band. Rhino captures Queensrÿche’s epic performance in front of the quintet’s hometown crowd at the Moore Theater in Seattle with MINDCRIME AT THE MOORE. The double CD ($24.98) and double DVD ($29.99) versions will both be available June 26 at all physical retail outlets and www.rhino.com. The album will also be available at all digital retail outlets for a suggested retail price of $14.99. An iTunes exclusive version featuring a video of “The Chase” with Ronnie James Dio will be available for $15.99.

The CD includes singer and chief songwriter Geoff Tate along with guitarists Michael Wilton and Mike Stone, bassist Eddie Jackson and drummer Scott Rockenfield performing all 32 mindcrime tracks plus a two-song encore featuring their signature hits—“Jet City Woman” and “Walk In The Shadows.” The DVD features the same performance expanded with bonus material including a tour documentary, a featurette on the band’s “Rock & Ride Across America” charity motorcycle ride for the VH1 Save The Music Foundation, and a live performance of “The Chase” from the Gibson Amphitheatre in Los Angeles, featuring Ronnie James Dio’s only public appearance as Dr. X.

“This concert is the realization of an idea that began nearly two decades ago,” says Tate. “The story and music of Operation: mindcrime is very dear to the band. We are thrilled with this performance and proud to share it with our audience.”

Queensrÿche released Operation: mindcrime in 1988. Praised by critics and certified platinum, the album was an acclaimed success remaining on Billboard’s Top 200 for more than a year. In 2006 the band released a long-awaited sequel to their magnum opus to critical and commercial success. The album debuted at #14 on the Top 200, their highest debut in over a decade.

The concept albums follow an intriguing and complex plot that revolves around Dr. X, a political puppet master who brainwashes Nikki—the story’s main character—to assassinate corrupt public figures. The story also includes Nikki’s lover, Sister Mary. A former teenage prostitute who becomes a nun, Sister Mary is murdered mysteriously, leaving the cliffhanger “Who Killed Sister Mary?” Set 20 years after the original, Operation: mindcrime II explores Nikki’s fate after being released from prison and reveals the identity of Mary’s killer. The album centers on revenge and what it does to people, their emotions and the choices they make.

MINDCRIME AT THE MOORE
Disc 1
1. “I Remember Now”
2. “Anarchy-X”
3. “Revolution Calling”
4. “Operation: Mindcrime”
5. “Speak”
6. “Spreading The Disease”
7. “The Mission”
8. “Suite Sister Mary”
9. “The Needle Lies”
10. “Electric Requiem”
11. “Breaking The Silence”
12. “I Don’t Believe In Love”
13. “Waiting For 22”
14. “My Empty Room”
15. “Eyes Of A Stranger”

Disc 2
1. “Freiheit Ouvertüre”
2. “Convict”
3. “I’m American”
4. “One Foot In Hell”
5. “Hostage”
6. “The Hands”
7. “Speed Of Light”
8. “Signs Say Go”
9. “Re-Arrange You”
10. “The Chase”
11. “Murderer?”
12. “Circles”
13. “If I Could Change It All”
14. “An Intentional Confrontation”
15. “A Junkie’s Blues”
16. “Fear City Slide”
17. “All The Promises”
Encore
18. “Walk In The Shadows”
19. “Jet City Woman”

Bonus DVD Content
-Tour Documentary
-“The Chase” performed live with Ronnie James Dio in Los Angeles
-Queensryche Rock & Ride featurette

Tuesday, April 10, 2007 11:33:59 PM (Pacific Daylight Time (Mexico), UTC-07:00)  #    Comments [0]  | 
Wednesday, March 28, 2007

Wednesday, March 28, 2007 6:40:05 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Tuesday, March 20, 2007

I'm Anna Nicole's Baby's FatherOkay, I'm not... but I am tired of hearing about this! So I decided to do something about it. Check out my new web site:

http:\\ImAnnaNicolesBabysFather.com

You too can register as the "real" father of the baby and see a map of the world to see where her donor tour went (coming soon). Wonder what country will win? You can get your very own I'm Anna Nicole's Baby's Father swag and let the world know that you are the true father!


Wednesday, March 21, 2007 5:01:21 AM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Monday, March 19, 2007
dotdetdave-head-50.jpgIf you live in the San Diego area, dotNetDave (a.k.a. David McCarter) will be teaching a 6 week Fundamentals of the .NET Framework course at the University of California, San Diego Extension beginning on Wednesday 4/4/2007 from 5:30pm to 10:00pm. For more information and to enroll, please click here.
Monday, March 19, 2007 7:48:34 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Wednesday, March 07, 2007

Want to see what's coming in the next version of Visual Studio? Check out what Scott Guthrie has to say:

http://weblogs.asp.net/scottgu/archive/2007/02/08/my-first-look-at-orcas-presentation.aspx

Wednesday, March 07, 2007 7:00:15 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Saturday, March 03, 2007

Ever wonder what is on your magnetic key card? Answer:

  1. Customer's name
  2. Customer's partial home address
  3. Hotel room number
  4. Check-in date and out dates
  5. Customer's credit card number and expiration date!

When you turn them in to the front desk your personal information is there for any employee to access by simply scanning the card in the hotel scanner. An employee can take a hand full of cards home and using a scanning device, access the information onto a laptop computer and go shopping at your expense. Simply put, hotels do not erase the information on these cards until an employee re-issues the card to the next hotel guest. At that time, the new guest's information is electronically "overwritten" on the card and the previous guest's information is erased in the overwriting process. But until the card is rewritten for the next guest, it usually is kept in a drawer at the front desk with YOUR INFORMATION ON IT!

The bottom line is: keep the cards, take them home with you, or destroy them. NEVER leave them behind in the room or room wastebasket, and NEVER turn them in to the front desk when you check out of a room. They will not charge you for the card (it's illegal).

For the same reason, if you arrive at the airport and discover you still have the card key in your pocket, do not toss it in an airport trash basket. Take it home and destroy it by cutting it up, especially through the electronic information strip!

Information courtesy of: Pasadena Police Department

Sunday, March 04, 2007 2:48:31 AM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Tuesday, January 30, 2007

One week ago today, Microsoft officially released ASP.NET 2.0 Ajax. This includes the core components (Extensions), the ASP.NET AJAX Control Toolkit and Futures January CTP. If you have been using an older version of this software or are new, I might hold off installing the official release! For a week now I have been finding nothing but bugs and issues with things that worked in the previous release but now are broken. I will keep adding to this post, but here is the first and major issues that I am seeing:

UpdatePanel and a Simple Trigger

One of the simplest bugs to reproduce is a trigger in the UpdatePanel. The code below shows an TextBox that is configured to cause a postback on the UpdatePanel when you press return. The code below works just fine.

<form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="SM" runat="server">
            </asp:ScriptManager>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                <ContentTemplate>

                    Time:
                    <%= datetime.Now.ToString() %>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="TextBox1" />
                </Triggers>
            </asp:UpdatePanel>
        </div>
    </form>

Simply add a TextBox to the ContentTemplate and the trigger no longer works!!!!

More To Come

I'm also having issues with ValidatorCalloutExtender inside of an ItemTempate, AutoCompleteExtender inside of an UpdatePanel and more. All worked 8 days ago!

Also, if you have already started an Ajax site before version 1.0 there are major migration issues with the web.config. In previous updates you could simply copy the web.config from a new 'AJAX Enabled Web Site'. For some reason, this no longer works. The only way I could get my sites working with 1.0, is to create a new AJAX site, and copy all of my code over to the new project. Go figure.

If you read the install requirements, they 'strongly' recommend installing SP1 of Visual Studio. Make sure you have something to do during this process. Depending on what machine I was updating it took anywhere from 1 to 3 hours!

 

Wednesday, January 31, 2007 12:48:02 AM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Monday, January 29, 2007

I hope you all enjoyed the SoCal Rock & Roll Code Camp 2007 as much as I did. As promised, below are my slides and sample code. Those of you that live in San Diego, don't forget about my AJAX class at UCSD next semester that starts in May.

Also, don't forget to pick up a copy of my book: VSDN Tips & Tricks .NET Coding Standards, so I can buy an Intel based MAC :-)

Why You Need .NET Coding Standards

NET Coding Standards & Best Practices200701.zip (329.65 KB) (slides)

Programming AJAX with the ASP.NET AJAX Control Toolkit

Programming AJAX with ASP.NET AJAX200701.zip (393.22 KB) (slides)

AjaxExample200701.zip (523.38 KB) (code)

See you next year!

Monday, January 29, 2007 7:59:35 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Wednesday, January 17, 2007

Tired of going to mutiple travel sites looking for the best deal? Well, check out SideStep. They search all the major travel sites so you can get the best deal/schedule. Pretty cool, but nothing is ever perfect. I used it today to make a flight with American via Orbitz but I found if I went to the American web site, I saved almost $6.

Wednesday, January 17, 2007 7:41:08 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 

I just stumbled across this cool FREE website that will monitor your upsite for you called Montastic. It's 100% free, no ad, no spam. Can't beat that deal! It checks your site about every 10 mintues from two different locations. You can monitor up to 100 sites. It even has an RSS feed for your list of sites!

This site is montasticated
Wednesday, January 17, 2007 7:35:36 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Tuesday, January 02, 2007

Below are my slides and demo code for the "Programming AJAX with the ASP.NET AJAX Control Toolkit" talk I did on January 2nd at the San Diego .NET Developers Group.

Sides: Ajax.pdf (494 KB)

Code: AjaxExample.zip (809.84 KB)

Don't forget about my class on the same subject starting this month at UCSD Extensions! Hope to see you there :-)

Tuesday, January 02, 2007 8:11:06 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Sunday, December 31, 2006

Are you ready for another Rock & Roll Code Camp???  

That’s right, we are planning the next event for January 27 & 28, 2007 at Cal State Fullerton (CSUF). We have room for 200 sessions this time around and speakers are already submitting sessions! We're also planning another GEEK dinner with some great bands this year!

We are building a new web site dedicated to our SoCal Rock & Roll Code Camp events. Going forward here is how it will work.

You register on the site ONCE. This gets you on our list of folks that wants to know about Rock & Roll Code Camp events. We will send you an email as we get closer to each event, so you can decide if you want to enroll in the event. Register now, even if you aren’t sure if you can attend in January. that way you are on the list to receive the notification email with more information!

I will giving two talks at this Code Camp. Programming AJAX with the ASP.NET AJAX Control Toolkit & Why You Need .NET Coding Standards

Geek BandThe Geek Band that played last year will not be playing at the dinner :-( If you want to see us play again, email Michele Leroux Bustamante via her blog site: http://www.dasblonde.net/contact.aspx

 

Sunday, December 31, 2006 11:28:56 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Wednesday, November 15, 2006

The new version of WinZip has been released that include practical image handling through thumbnails and a new internal image viewer, more efficient compression, enhanced data backup functionality, and support for RAR and BZ2 files. For more info, click here.

Wednesday, November 15, 2006 6:45:18 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Wednesday, November 08, 2006

Both VB.NET and C# now has the 'Using' statement that will automatically Dispose of objects that implement IDisposible. This makes for much cleaner code. In well written programs, calling Dispose will release resources, close file handles etc. Take for example the DataView object in .NET:

protected override void Dispose(bool disposing)
{
      if (disposing)
      {
            this.Close();
      }
      base.Dispose(disposing);
}

As you can see, calling Dispose will also Close the object. No need for you to worry about closing the DataView. Now, lets talk about Crystal Reports that comes with Visual Studio 2005. Calling Dispose on their ReportClass does not close the report. After 75 report generations it will actually cause an exception! To fix it you have to close your application (not an easy thing to do for an ASP.NET application) and restart. So if you use 'Using' with the ReportClass, you first need to call .Close before the end of the statement. Reason #77 why Crystal Reports sucks!

Wednesday, November 08, 2006 10:09:14 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Tuesday, October 31, 2006

Today I almost got hit a few times from a woman doing her makeup in her car!!! I am so tired of people doing things in their car besides driving... talking on cellphone, makeup, eating, not paying attention etc. So I found this great site, www.roadrage.com, that has these AWESOME flip card that allow you to express your feelings. Below are one of my favorites.

Cell Phones Suck!

Tuesday, October 31, 2006 9:52:58 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Monday, October 30, 2006
dotdetdave-head-50.jpgIf you live in the San Diego area, dotNetDave (a.k.a. David McCarter) will be teaching a 6 week 'Programming AJAX with the ASP.NET Control Toolkit' course at the University of California, San Diego Extension beginning on Monday 1/22/2007 from 5:30pm to 10:00pm. For more information and to enroll, please click here.
Monday, October 30, 2006 7:08:28 PM (Pacific Standard Time (Mexico), UTC-08:00)  #    Comments [0]  | 
Monday, October 09, 2006

Web Services are supposed to be interoperable, right? Well I'd like to think so at least. I've been continually frustrated about how .NET serializes DataSets. While it's gotten slightly better in 2.0, it's far from being interoperable. Since DataSets are the easiest way to retrieve data from a database, manipulate it etc., .NET has given us strong typed DataSets. With 2.0 they are even better with the addition of TableAdapters that allow you to easily write code to query the database right from the TableAdapter. This works great when hooking up to web page or WinForm controls, but not so great when using them for web services.

Here is what I mean... below is a snip-it of the WSDL of a simple Persons class that I wrote and used as a return type of my web service:

<s:complexType name="Persons">
<s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="Persons" type="tns:ArrayOfPerson" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfPerson">
<s:sequence>
  <s:element minOccurs="0" maxOccurs="unbounded" name="Person" nillable="true" type="tns:Person" />
</s:sequence>
</s:complexType>
<s:complexType name="Person">
<s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="FirstName" type="s:string" />
  <s:element minOccurs="0" maxOccurs="1" name="LastName" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="Persons">     

The WSDL schema for the Persons class above is really how it should look for the web service to be used by 'any' language or platform.Now, if I re-create this class as a typed DataSet in .NET, here is how it comes out:

<xs:schema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:mstns="http://tempuri.org/Data.xsd" xmlns="http://tempuri.org/Data.xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://tempuri.org/Data.xsd" id="Persons2" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element msdata:IsDataSet="true" msdata:UseCurrentLocale="true" name="Persons2">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Person">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" name="Firstname" type="xs:string" />
              <xs:element minOccurs="0" name="LastName" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

Not too bad, but as you can see, there is some Microsoft specific tags in it (msdata). What is worse is that if you look at the 'help' page generated by ASP.NET, you see this:

<GetPerson2Response xmlns="http://tempuri.org/">
  <GetPerson2Result>dataset</GetPerson2Result>
</GetPerson2Response>

The return type is 'dataset'? Yuck. Now, lets say I create a DataSet from a stored procedure which will automatically create a TableAdapter. For some reason, there is a lot more unwanted tags:

<xs:schema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:mstns="http://tempuri.org/Pricing.xsd" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" xmlns="http://tempuri.org/Pricing.xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://tempuri.org/Pricing.xsd" id="Pricing" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element msdata:IsDataSet="true" msdata:UseCurrentLocale="true" name="Pricing">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="sprptPricingWorldwide">
          <xs:complexType>
            <xs:sequence>
              <xs:element msprop:Generator_UserColumnName="Catalog Number" msprop:Generator_ColumnVarNameInTable="columnCatalog_Number" msprop:Generator_ColumnPropNameInRow="Catalog_Number" msprop:Generator_ColumnPropNameInTable="Catalog_NumberColumn" name="Catalog_x0020_Number">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="15" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element minOccurs="0" name="ProductName">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="160" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element msprop:Generator_UserColumnName="Dist 1" msprop:Generator_ColumnVarNameInTable="columnDist_1" msprop:Generator_ColumnPropNameInRow="Dist_1" msprop:Generator_ColumnPropNameInTable="Dist_1Column" minOccurs="0" name="Dist_x0020_1" type="xs:decimal" />
              <xs:element msprop:Generator_UserColumnName="Dist 2" msprop:Generator_ColumnVarNameInTable="columnDist_2" msprop:Generator_ColumnPropNameInRow="Dist_2" msprop:Generator_ColumnPropNameInTable="Dist_2Column" minOccurs="0" name="Dist_x0020_2" type="xs:decimal" />
              <xs:element msprop:Generator_UserColumnName="Dist 3" msprop:Generator_ColumnVarNameInTable="columnDist_3" msprop:Generator_ColumnPropNameInRow="Dist_3" msprop:Generator_ColumnPropNameInTable="Dist_3Column" minOccurs="0" name="Dist_x0020_3" type="xs:decimal" />
              <xs:element msprop:Generator_UserColumnName="Dist 4" msprop:Generator_ColumnVarNameInTable="columnDist_4" msprop:Generator_ColumnPropNameInRow="Dist_4" msprop:Generator_ColumnPropNameInTable="Dist_4Column" minOccurs="0" name="Dist_x0020_4" type="xs:decimal" />
              <xs:element msprop:Generator_UserColumnName="Dist Japan" msprop:Generator_ColumnVarNameInTable="columnDist_Japan" msprop:Generator_ColumnPropNameInRow="Dist_Japan" msprop:Generator_ColumnPropNameInTable="Dist_JapanColumn" minOccurs="0" name="Dist_x0020_Japan" type="xs:decimal" />
              <xs:element minOccurs="0" name="US" type="xs:decimal" />
              <xs:element minOccurs="0" name="CN" type="xs:decimal" />
              <xs:element minOccurs="0" name="CHF" type="xs:decimal" />
              <xs:element minOccurs="0" name="ECU" type="xs:decimal" />
              <xs:element minOccurs="0" name="GBP" type="xs:decimal" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

Now, not only are there the 'msdata' tags but 'msprop' tags too. Of course these are all Microsoft (or .NET) specific and have no place in XSD schemas for web services, unless you are always going to talk to .NET web services. Most programmer's solutions are to create their own custom objects using xml serialization tags, which takes a lot of time which turn out to be a coding and maintenance nightmare. Using a tool like the Sample Code Generator (XSDObjectGen) tool (http://go.microsoft.com/?linkid=5559918) makes life somewhat easier, but still not the solution.

What I would like to see is a property, attribute or something to turn off all the .NET specific tags, so the XSD would be truly Interoperable!

Monday, October 09, 2006 10:16:06 PM (Pacific Daylight Time (Mexico), UTC-07:00)  #    Comments [1]  | 
Tuesday, September 19, 2006
dotdetdave-head-50.jpgIf you live in the San Diego area, dotNetDave (a.k.a. David McCarter) will be teaching a 6 week .NET Framework course at the University of California, San Diego Extension beginning on Monday 10/2/2006 from 5:30pm to 9:15pm. For more information and to enroll, please click here.
Tuesday, September 19, 2006 3:37:46 PM (Pacific Daylight Time (Mexico), UTC-07:00)  #    Comments [0]  | 

Theme design by Jelle Druyts