PITADEV
Curiosity killed the developer's project.

Some of them do, some probably don't

Wednesday, 27 August 2008 14:24 by kevin

I excised a succession of dated hip-hop references, considered admitting I'd been involved in letting some dogs out a while back, then finally decided that what the world really, really needed from the title of my first post was the answer to the 1984 Musical Question of the Year.  Which says little about me, per se, but maybe much about my priorities.

I go by many names -- programmer, technical lead, developer, systems analyst, architect (<-- this one only when AJ's not looking).  I work for a small professional services company (to be very vague) in Minneapolis.  Over the last ten years, I've worked on designing, building, and maintaining a wide variety of systems for data collection, reporting, and facilitating certain types of communications between employees.  We use mostly Microsoft technologies, but use free/OSS tools extensively.  Lately -- basically the whole last year and a half -- I've been going back and forth on the right balance between Fire-and-Motion and learning the new technologies that are starting to make life easier.

Besides the stuff that AJ said on the "Who Are You?" post, my main reason for wanting to do this blog is to pass on some of my more obscure programming knowledge.  I often find myself doing things that no one else seems to be doing, at least as far as Google can tell me.  And I figure that the next time somebody needs to implement an AJAX driver for your pile or your bus, using the Eviscerator pattern in OBrainfsck, they could probably use the benefit of my experience.  Because it was very, very difficult.  The bus driver especially.

So, welcome, glad you're here, glad we're here, enough with the formalities, let's get down to whatever will pass as "business" around here.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:   ,
Categories:   About
Actions:   E-mail | del.icio.us | Permalink | Comments (0) | Comment RSSRSS comment feed

The CodePlex Learning Curve

Monday, 25 August 2008 14:47 by aj
 This morning I fired up Google Reader and was excited to see this post on DotNetKicks about a new "Image Generator" control in ASP.NET 3.5.  I do a fair amount of image manipulation for my current position, and displaying images to clients is always an issue.  Currently, we're using a Java viewer that works nicely on the client, once it's been finally loaded in the browser.  Unfortunately, the load time is prohibitive, what with a nearly 1.5 MB download, not to mention the time it takes for the JRE to fire up and load the plugin.  So I'm always on the lookout for new ways to display images in a browser.  This tool is advertised as a "speedy way of generating, transforming, caching images in ASP.net."  All right!  I've worked with several APIs that are available from various vendors, and though a couple of them have solutions that are quite good, a freely available tool would be great.  I hurried over to CodePlex and downloaded the assembly and examples.

One thing I always find strange about downloading stuff from CodePlex is that I often have trouble figuring out where to put it.  Like many developers, I'm sure, I have a huge directory tree packed with all of my code, which is organized to me, but would probably be impossible to dig through for anyone else.  After downloading, I attempted to drop the assembly into the GAC, but got the ubiquitous "Assembly <xxx> is required to be strongly named" error.  OK, then.  I settled on creating a "strongly named" folder in my code-maze, dropped the DLL into it, and created a website project to play around with it.  Then I remembered the sample projects, and happily using my new two-monitor setup at work (finally!!), I opened the example "SimpleGeneratedImage" website on one monitor and my test project on the other.  After jockeying the referenced assembly to get it pointed at the right file, I F5'd the example project and was a little startled to see this error:

Could not load file or assembly 'System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Hmmm, I don't see that reference anywhere.  Ah, there it is, in the web.config.  OK, what the hell is that guy?  As you can probably tell by now, I haven't had the time to keep up with the super-huge pink elephant sitting in the middle of the virtual ASP.NET room that is MVC.  So I plugged "System.Web.Abstractions" into a Google search and the first hit I get is Microsoft's page for ASP.NET MVC Preview 2.  Ah ha.  I have done a little poking around on the MVC framework, but always get interrupted with "real" work. I do know enough that CodePlex is probably a good place to start.  So I headed back over to CodePlex's ASP.NET section and found a download for ASP.NET MVC CodePlex Preview 4, which I figured would suffice, since 4 > 2.  Upon clicking the link for the application download and agreeing to the license, I watched Firefox download an .msi file.  Awesome!  An MSI!  Someone had the brilliant idea of creating a deployment project to simplify the integration for me, the lowly tool user!  I happily ran the MSI and watched the install, then switched back to my VS2008 IDE with the sample project loaded and rebuilt.  

Could not load file or assembly 'System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

What the hell?  Shouldn't the MSI have taken care of all of this?  Maybe I have the wrong MSI?  Wait, it didn't even ask me where to install itself.  I find the install folder in Program Files\Microsoft ASP.NET\ASP.NET MVC CodePlex Preview 4\Assemblies, and there's the elusive System.Web.Abstractions.dll.  I switch to view my GAC, assuming I'd find the files registered there.  Nope.  OK, then, I'll do it the old fashioned way.  I gacutil the three "System" DLL's, and they don't give me any "strong naming" issues and appear to register fine.  Except, I notice that the version on the System.Web.Abstractions assembly is "0.0.0.0."  Hmm, that's odd.  Must be a weird refresh thing.  I switch back to my IDE and rebuild.

Could not load file or assembly 'System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Son of a bitch!

Now, I know this isn't really a big deal, but it really burns my ass that these uber-developers can't take a few minutes and 1) let me know that there are prerequisites and 2) make an MSI file that actually does something.  This issue keeps coming up for me with the various plugins and toolkits I "install."  In a deadline-driven developing world, I do as much as I can to keep up with emerging patterns and practices.  But when I run into roadblocks that could be eradicated with some simple forethought by the developing team, it stifles my ability (and my desire) to use this stuff.  I understand that CodePlex is generally for open-source, bleeding edge code that might eventually get included in the framework, and hence isn't "polished."  But when did developers forget that their audience is probably going to like them a lot more if they make their stuff easy to integrate?

After complaining more to a friend, he made me feel really stupid by pointing out that I just needed to install .Net 3.5 SP1.  After this install, I was able to build everything just fine.  Of course, I haven't had the time to actually do anything with it.  So, lesson learned: When downloading and installing stuff from CodePlex, make sure the framework is the latest and greatest.  

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:   , ,
Categories:   Dev Info | Rants
Actions:   E-mail | del.icio.us | Permalink | Comments (0) | Comment RSSRSS comment feed

Who Are You?

Friday, 22 August 2008 13:33 by aj
We are developers.  What kind of developers we are depends on who you are.  If you want us to develop your business by selling stuff or getting folks to give you money, that's the wrong kind of development.  If you are a prospective employer that is about to offer us hundreds of thousands of dollars to write really interesting projects with bleeding edge technology, than we are two things:

1. Professional Information Technology Application Developers, or PITADevelopers.  Welcome to our website!  Please contact us immediately!
2. Ready for our first paycheck.  Oh, and don't read anything after this sentence.

If that is not who you are, more clarification is needed.  Pretend you are sixteen and are in your sophomore English class.  An attractive personage (gender neutral) passes you a note that says the following:

Dear <your name>,

I think you're pretty cool.  I would like to know more about you.  Are you a/n (circle one):

1. Application Developer
2. Chicken Farmer
3. Friend or family member of this site's owner(s)
4. Psychological Profiler
5. Enterprise Architect
6. Search Spider
7. Other Technology Blogger
8. Rock Star
9. IT Contractor
10. "CSI: Miami" Fan
11. Skimmer of Tech/Dev Sites for Gray Boxes with Text in Courier New
12. IBM Employee
13. Empress
14. Extrovert
15. Someone with No Sense of Humor/One Who Takes Things Very Seriously

Please return this note to me.

XOXOXO

<Name of Attractive Personage>

To further this scenario, I will be playing the role of "Attractive Personage." 

If you circled Item 2, may we acquire some chickens?
If you circled Item 3 you probably should just stop reading now.  Your eyes may not be able to handle the amount of rolling required to continue.
If you circled Item 4 you are awesome!
If you circled Item 6 then <insert sql injection attack here>.
If you circled Item 9 go work on your resume.
If you circled Item 13, we are your long-lost children.
If you circled Item 8, 10, or 15, you are in the wrong place.
If you circled Item 5, we may actually be mortal enemies, or I want your job.

All others, welcome to the Pain-In-the-Ass Developers' website.

Now, I certainly don't want to give anyone the idea that we're bad developers.  I think we're pretty good at our jobs, which mainly consist of programming (and analyzing and designing and all that stuff) various systems with Microsoft technologies.  But we have a long history of working with Perl, PHP, and other programming languages and tools outside the Microsoft ecosystem. And we pay a lot of attention to technology blogs on the web, as well as what's happening with technology at our vastly different employers and in the general technology universe.  We're certainly not extroverted, but we're thoughtful people, and have decided to share our views on this website. 

So exactly what makes us "pains in the ass?"  Exactly what I said above.  Instead of blindly munching at the technology trough, we have sufficient experience to have evolved into people that ask a lot of questions, many of which aren't always welcome.  Personally, I have seen enough unscrupulous stuff in the application development milieu to make me want to add my voice to the mix.  This site will be my place to be a pain in the ass; to ask questions and pick unwanted arguments.  But I also intend to describe my views on coding these days, which will definitely include examples of anything cool or new that I pick up (which will be in nice boxes with Courier New font, for those that circled Item 11). 

You've got it.  You've found another coding blog.  Except this one is the awesomest one ever.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   About
Actions:   E-mail | del.icio.us | Permalink | Comments (0) | Comment RSSRSS comment feed