Friday, July 13, 2007

Things to do to become a better developer

I was listening to Scott Hanselman's 'Be a better developer in 6 months' and he made reference to a blog entry about becoming a better devloper: http://graysmatter.codivation.com/HowIAmBecomingABetterDeveloperPart1OfInfinity.aspx.

I began thinking of what I have done recently and what I want to do over the next few months to better my skills and overall approach to technology.

First, blogs. I read blogs daily and try to keep up with article/blog series on development, such as Jeremy Miller's Build your own Cab, where I learned more about coding approaches as well as seeing how different programmers do things that I've done before. Usually I like approaches that other's have taken and I adopt them over time. It's a lot like a code review, but instead of me correcting code its more about learning how and why the approach was taken.

Second, new technology. I try to keep up with Microsoft's pace to at least review the new technologies coming out. It is very difficult for me to fully grasp everything that comes out of MS, so I read up on as much as I can, but I do get my hands dirty with beta and ctp's of software that I think I'll use in the future. For example, at the time if this posting, I'm working with Beta1 of Visual Studio codename Orcas. I know I'll be using it, so I check it out with my side projects or just for fun. It's a good way to stay ahead of the game and it's nice to mix it up a bit with a new IDE or a new library to code against.

Third, books! I dont read as many programming books like I used to. I used to get 2-3 ASP books or C# books so that I could understand the language or environment that I was working with, but now I'm tending to choose books that are changing the way I think and giving me new perspectives, for example reading something like Pragmatic Programmer is language and platform agnostic, but a great programming book. I also like to read things that give me deeper insight to the platform, specifically .NET, such as CLR via C#. There are a ton of books that are great, and Scott Hanselman has a good list here: http://www.hanselman.com/blog/SixEssentialLanguageAgnosticProgrammingBooks.aspx.

Fourth, learn a new language. This is not so much learning another .NET language, rather learning a language that is completely different from your primary language. For example, if I were a completely C# guy and didn't know a thing about any other .NET languages, VB.NET would be good to know so I could read it, but not necessarily learning anything outside of new syntax for the same platform. I'm sure most people have already been aware of the Ruby or Python buzz. It wouldn't be a bad idea to learn something that is completely different than your used to. Every language has it's strenghts and weaknesses. Learning the strengths of other languages may teach you a thing or two about desgin as well as prepare you for future enhancements of your primary language. C# is adopting a lot of old ideas into the language that will be new to most .NET developers, but old to a lot of existing python/ruby devs.

And last but not least: code, code, code, code! Reading books, reading articles, reading blogs and watching movies for a year on how to fly an airplane does not mean you are able to jump in a plane and fly it at night through clouds! Without practice, we all only have is unverified knowledge. For example, Runbot is a robot that is learning to walk like humans. In this video, it tries to walk up a ramp knowing only what it knows about walking level terrain. As it tries, it falls and learns something new about its experience. As it tries over and over, it masters that ability. We as humans have superior ability to learn from our mistakes and learn from others' sucesses and failures. The only way we can make that into our own experience is to practice those skills. No amount of books, articles or books will replace actual experience.

I hope someone finds inspiration and feels challenged after reading this, becaus I know now that I have it up and shared, I will be challenged to become a better developer.
...read more!

Monday, June 18, 2007

Global.asax and PrecompiledApp.config

I spent the better part of the day and a bit more a few days back trying to figure out this problem!

I have put some exception handling int he application_error event of my global.asax, and everything ran smoothly on my dev and staging box. For some reason, I could not get our production environment to handle the exception handling for our unhandled exceptions. At first I thought it was our logging mechanism, but after a few tests, we figured the code was ok.

We looked at permissions for the account running the site, but there was nothing wrong there. Finally there was a link that a co-worker gave me that suggested that the PrecompiledApp.Config be removed from the root of the application. As it turns out, that file has been missing (due to some deployment issues), so we put it back in and it started to work. The application_error event was finally firing. I can't figure out exactly why the config file is needed, but it is for precompiled applications. Hope it helps someone!...read more!

Wednesday, June 6, 2007

Creating my LLC

As of June 5th of 2007, Angle Technologies, LLC is hereby incorporated!

I finally got around to getting my LLC in place after some setbacks. I contacted an attorney referred to me by my brother. After discussing with the attorney what the purpose of my business was (mostly software) we both decided to move forward with an LLC over any other types of business models.

After that, everything just seemed too easy! He asked for the following information:
My name and address
Company name and address
Name and address of any other owners of the company (not required if you solely own it)
Purpose of the business
Name and address of secretary for the business (must be someone other than the owner, as they are responsible for keeping minutes for meetings)

Within an hour, the State of Texas came back with my official documentation delivered to the attorney, who then forwarded them on to me.

I had already gotten my domain names and I will continue to brand the name and get a website up and running to tell the public more about what the company offers in services.

If you are in Texas and would like to get incorporated, please let me know via the comment section and I can pass along the attorney's info....read more!

Wednesday, May 30, 2007

Microsoft Surface

If everyone hasn't already heard by now, Microsoft has created a coffee table: Surface/...read more!

Tuesday, May 29, 2007

ASP.NET Web Application Project problems

This past weekend I was working with a continuous integration build with an ASP.NET project. I was attempting to get a website staged on a staging environment by using msbuild. I build the site and published it to another directory that had IIS pointed to it. Due to some reference issues (particularly, with the default web project template that I was using, I could not get my referenced assemblies to be available for msbuild to build the project), I switched to the Web Application Project template, that basically took the VS.NET 2003 project template, and copied all my files from the old project to the new one.

Everything debugged and ran just fine, but when I published the site and hosted it via IIS, I was being plagued with an error somewhat like this one:

The type 'objectname' exists in both
'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\\assemblyName.DLL'
and 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\\assemblyName.DLL'


I couldn't figure out why I had this issue. I could run the site just fine from VS.NET 2005, but could not actually publish it without getting that error. Searching online only yielded deleting my temporary asp.net files, bouncing IIS or even bouncing the machine. None of the issues resolved the problem.

I finally found the resolution, and it I wish I could find the post that had the resolution so I could give due credit to them, but basically the Web Project (default out of VS.NET) uses the CodeFile attribute to find the code behind file. Changing CodeFile to CodeBehind on all my aspx pages resolved the issue.

Hope this helps someone!
...read more!

Saturday, May 19, 2007

Volunteer service

I am trying to get a volunteer service up and running that will allow users to find volunteer activities by zip code without any log in or required information.

For now, the service will be hosted here: http://www.angletechnologies.com/...read more!

Monday, April 9, 2007

Great introduction to StructureMap 2.0

I've always been intrigued by StructureMap and Spring.net, but I've never known really how or why I should use them. I guess I never had the visibility in their benefits, but I figured that they could come in handy at some point.

Recently Jeremy Miller released version 2 of StructureMap, but it was still hard for me to get solid examples without previous knowledge of what the tools do.

He recently posted an introduction to StructureMap 2.0, and it really helped me get a better understanding of how to use it, and I can see the benfits immediately from the examples on the intro.

I still have a few questions on overall usage, mostly around configuration since the examples that Jeremy has revolve around configuration objects and the default implementation in some sort of startup method/event. If that is the case, would I have this enormous list if declarations? Surely this could be done in a config (and I think it does, so I'll just wait and see!)...read more!