ATC :: Since February 2001

Friday, January 06, 2006

As it should be - [9:18 AM] "Newsvine is a great place to work. Our office is in the scenic Queen Anne/Belltown/Waterfront district of downtown Seattle, and we're situated right next to Myrtle Edwards Park and Elliott Bay. We have a barbeque on our deck, plenty of beer in the fridge, and a great jogging route right outside the front door." - Keep an eye on this company, they're working on something very special. Also check out their location! I have fond memories of Belltown, Visio's headquarters were just down the hill at the waters edge. Rick and I used to spend countless hours in Belltown after work(we were in Seattle one week a month.) I miss that place. Until you've worked in a downtown setting you don't know what you're missing, especially downtown Seattle. Campus oriented life doesn't come close.

Note to my Pelco brethren: This is how tech companies usually run. Creative setting and lots of freedom. How do we get a downtown Fresno location? There's tons of office space just off the Fulton Mall, and there's some great warehouse space available not far from City Hall. What about a downtown Visalia location? Smile, life is good!
Click here for a permalink to this entry. Save To RawSugar comment

Where's Movie line of the week? - [9:17 AM]

Sorry folks. The holidays have messed with my internal clock a bit.

Movie line of the week will continue next week.
Click here for a permalink to this entry. Save To RawSugar comment

Thursday, January 05, 2006

.NET interop - [9:57 AM]

Steve Teixeira: "Using C++/CLI you can natively access the C-style API and provide a .NET interface on top of it that is directly consumable by C# (or any other CLR language). This is the preferred method if you have to work with a lot of functions/types because it's type safe, less error prone, and more maintainable. It's also pretty much your only option if your API exposes any native C++ objects." - This is something we're going to have to tackle at work. We're a cross platform C++ shop and we're doing some client side work(Win32 only) using C#. I think Steve has given about the best advice he can in this instance, but I'm guessing the gentleman he's giving the advice to doesn't have the requsite skills to pull off the recommendation. Alarms sounded in my head when I read "I am a VB turned C# developer..."

Duct Tape makes the world go 'round.I've written C# code using P/Invoke and it does indeed work quite well, but I wouldn't want to wrap up TONS of C/C++ code using it. This is, I believe, a perfect case for a mixed-mode assembly; written in C++. There's a good chance it's going to be quite messy on the inside but properly designed will provide a very nice managed interface to both your unmanaged C/C++ and Delphi code. One assembly could provide 'interop' classes around the old-school C code and Delphi code. I say it could be messy because of the hodgepodge of syntax sugar necessary to talk to both sides. Having said all that I can state, emphatically, I like doing stuff like this. Psycho, yep I'm bit psycho. I like seeing things work and on occasion that means creating elegant interfaces to disperate systems. From my point of view as long as it provides a usable interface to the developer, is solid, and does what's expected I can live with the ugliness inside.

As time goes by, and .NET becomes more popular, companies will begin to provide PIA's to their old code and we won't see these types of discussions. Unfortunately we have to live with the tangle of code written over the years. Someday, maybe someday, we'll all come to realize dynamic languages(Smalltalk, Ruby, Python) are a better choice for future development, and our sanity. Until then we'll have to put our heads down and get stuff done.
Click here for a permalink to this entry. Save To RawSugar comment

Congratulations Longhorns - [8:39 AM]

LonghornThe University of Texas at Austin Longhorns are College Football National Champions. Congratulations 'horns.

I was able to catch the second half of the game, and unfortunately, I was very disappointed with the outcome. I'm a Californian, what did you expect? I can't imaging how Bill's feeling this morning being an alma mater, ouch. My brother and I talked last night after the game and we'd both had the same feeling about the outcome. USC couldn't win with a weak defense, and that's what they have, a weak defense. They gave up big points to Fresno State for heavens sake! Defense wins, period.

Final AP Top 25 for 2005.
Click here for a permalink to this entry. Save To RawSugar comment

Wednesday, January 04, 2006

Python for .NET - [10:48 AM]

Jim Hugunin: "This release marks a major milestone in that we think we have workable answers to all the major design issues for a 1.0 final. " - Congratulations to the entire IronPython team. A great Python implementation on .NET is important in the evolution of the CLR.

Bring on more dynamic language implementations! Ruby is the first on my list.
Click here for a permalink to this entry. Save To RawSugar comment

Sunday, January 01, 2006

Tulare County Autism Resource - [7:42 PM]

A friend of mine I haven't heard from in a while dropped me a quick e-mail the other day to let me know what he's been working on. He's been involved for a while now helping autistic children. As a part of that endeavor he's created an Autism Resource website for Tulare County/District Special Education Local Plan Area(SELPA).

It looks great, but beyond that it's going to provide parents, teachers, and aides with invaluable Autism insights!

Great job Paul!
Click here for a permalink to this entry. Save To RawSugar comment

Tip for Nick - [7:28 PM]

Hey Nick, I've found something you should take a look at. This site should explain how to host the .NET CLR inside your Delphi application.

Good luck, and get us IBlogExtension support in the next release.

Here's a quick how-to for building IBlogExtension plugins for RSSBandit. Those plugins will work for FeedDemon as well once you have support in place for IBlogExtension.

Click here for a permalink to this entry. Save To RawSugar comment

Help using ClrCreateManagedInstance - [6:01 PM]

I'm stumped. I've been trying to use ClrCreateManagedInstance to instantiate System.Reflection.Assembly but it always throws an error of 0x8013151a. In the book .NET and COM, The Complete Interoperability Guide it states on page 469 "The string passed as pTypeName must be an assembly-qualified class name unless the class is defined in the mscorlib assembly." That's the ONLY clue I have to this problem. System.Reflection.Assembly is indeed a part of mscorlib. Does that mean I'm outta luck, or is there something special you have to do to use classes exposed in mscorlib?

Here's the code...

static const wchar_t* stc_SYSAssembly = L"System.CodeDom.CodeObject,
//static const wchar_t* stc_SYSAssembly = L"System.Reflection.Assembly,

static void testDotNet(void)

IUnknown* p = NULL;
hr = ::ClrCreateManagedInstance(stc_SYSAssembly, IID_IUnknown, (void**)&p);
if (SUCCEEDED(hr))
p = NULL;

} // testDotNet

Running this code using the line stc_SYSAssembly pointing at System.CodeDom.CodeObject works just fine, but changing it out to the line below that points stc_SYSAssembly at System.Reflection.Assembly fails.

Am I going to have to create an instance of CorRuntimeHost using CoCreateInstance and go from there?

Any help appreciated.
Click here for a permalink to this entry. Save To RawSugar comment

Kudos Starbucks - [12:14 PM]

Original Starbucks Logo.I reported a while back our Starbucks Barista Espresso machine was ill. I'm happy to report it's feeling a lot better today thanks to Starbucks' excellent customer service. I called their 800 number a couple of weeks ago, it's printed right on the machine, and was pleasantly surprised by the level of service I received. They walked me through the process of "de-gumifying" our machine, it was totally clogged. The support person on the other end of the line walked me through the process of removing a vital part of the brew head using nothing more that a pair of pliers and a penny. After bending half-a-dozen pennies I couldn't get the part off. I called back and got another support rep who promptly found my open support record and picked up where the last person left off. She was very prepared to provide me with the next series of steps I needed to take to loosen the part, so I hung up and tried the recommended procedure. Once again the part proved stubborn, it wouldn't budge. I called back for a third time, got yet another very qualified support representative! The third set of steps finally worked and not only was I able to get the part off I was able to get the machine "de-gumified".

Once the machine was clean I re-assembled it and it wouldn't work properly. Drat! I thought at this point we were in real trouble. We needed new parts. Kim called the support team back and they happily sent us replacement parts, AT NO CHARGE! That's what I call customer service.

Thanks Starbucks. Your support staff is the best I've dealt with in a very long time, possibly the best I've EVER dealt with.
Click here for a permalink to this entry. Save To RawSugar comment

New Orleans 2006 - [11:59 AM]

New Orleans Saints Logo.MSNBC: "Despite the destruction still evident four months after Hurricane Katrina, the city decided to welcome the New Year with fireworks, concerts, and in a twist on the Times Square ball drop, the lowering of a giant gumbo pot to mark the start of 2006." - I've been trying to convince my lovely wife New Orleans could be a gold rush of a city. There have been reports of people moving into New Orleans, people that didn't live there originally, and why not? Sure there's a chance of a hurricane leveling it once again but it could be worth the risk. The levees are being improved, engineers will once again save the day as long as they have enough time to do it before the next storm hits. It could be a great city once again.

Good luck New Orleans.
Click here for a permalink to this entry. Save To RawSugar comment

Happy New Year! - [11:47 AM]

Here's wishing you a happy and prosperous 2006!

2005 was a strange year for me. I began the year unemployed, which is not a great position to be in. In March I started a new job with Pelco and began developing full time in Linux, which has been quite an interesting ride after spending the last 15-years as a Windows developer.

We were blessed in 2005 in many ways and for that I'm very grateful.

Bring on 2006, it's gonna be a heck'uva ride.
Click here for a permalink to this entry. Save To RawSugar comment