Blog Stats
  • Posts - 19
  • Articles - 0
  • Comments - 4
  • Trackbacks - 8

 

Saturday, May 19, 2007

New Blog

I have setup a subtext installation on my business website. As I am getting into more and more blogging, I wanted to have my own installation and subdomain.

You can find the new blog here

Thank you very much to the GeeksWithBlogs staff. I appreciate your patronage.

Sunday, April 29, 2007

Managing Web.Config settings on different machines

I have come to a crossroad recently since I got a new laptop at home and was wondering what some peoples solutions are to the problem I am faced with.

Basically, I have desktop and a laptop development machines at home. Sometimes if I go on the road I will work on a  project on the laptop, and while at home on the desktop.

In my domain layer, I have a configuration file that needs to change depending on the environment. So for my most recent project the environments would be, DESKTOP, LAPTOP and WEBHOST since this project will be deployed to a webhost4life account.

I am curious as to how other people solve this problem. I see some code project articles that have 3 sets of configurations for each scenario but this seems a little repetitive and unweilding.

Anyone that can give me their 2 cents would be greatly appreciated!

Saturday, April 28, 2007

Programming as a way of life

We all know it. We all try to follow it. GeeksWithBlogs.net is a community with many lifelong geeks. Many of them programmers.

In the last year with constant research I feel that I have come futher than I have in the last five years. It goes to show that programming really is a way of life. Nowadays I live, breath eat and sleep it. Don't get me wrong, I firmly believe that you need to take breaks every once in awhile. It's good to be immersed in new ideas and methodologies, but you need to step away and take a couple of days off once in a blue moon. One of the best things I could have done for myself in the last 6 months is I try to read at least one article on the code project, every other day. I try to focus in what area I read articles. It's easy to waste your time in areas that you don't necessarily need to be researching about. For instance, I am not going to read an article about how to get something to work that is C++ specific, when I use C#.

The technology age is speeding up faster and faster every year. More people get online, more businesses integrate their procedures to computers, and more dollars are spent in computers every day. If you want to be a part of it, you need to be on the cutting edge.

What I've noticed recently that I think has helped me alot is to always be on the edge of the unknown. As soon as I understand something (maybe not fully, but at least working knowledge), I move onto something else I am unfamiliar with. I firmly believe that you always need to be in this "unknown" area. This forces me to learn more and understand more technologies. At the same time you need to really focus what area that is. There are so many technologies out there, that it is easy to start learning stuff that doesn't necessarily apply to you.

If you don't yet have an RSS reader then get one. The BEST information can be found in blogs. Especially experts blogs. I have been using Google Reader for quite awhile and love it. I am subscribed to a large number of blogs and also subscribe to the code project recent articles rss feed. This helps SO much in keeping on top of new information coming into the blogosphere.

Bottom line here is, If you are a good programmer, or even a decent programmer you will always strive to learn more. Not because you have to, but because you want to. If you are going to work from 9-5 and not doing any new learning after hours, you will be left behind choking on the dust. To give you an example:

I once worked with two guys at a telemarketing company that refused to learn any new technologies. So while I was researching multi-threaded applications and how to make their reporting applications more effecient, they were checking sports scores online and reading useless information. As a result, I was making more effecient programs that saved the company more money and helped them meet more of their goals. Within a couple of months the two other programmers were asking me questions. Mind you, they had been programming for 15+ years. I didn't understand how they had lasted as long as they had.

I am not trying to put anyone down here, I'm just sayinig that if you don't have a passion for programming, then perhaps you chose the wrong field of work. When I get home after work and after I relax for awhile, I am surfing programming forums, open source projects and blogs trying to consume more information. This part of technology, above all is moving faster than any other area. All of us need to stay on the very edge of programming technologies no matter how tiring =)

Continuous Integration with CruiseControl

I just posted a new article on thecodeproject. You can find it here

I've been meaning to write it for awhile. It was hard for me to gather together all the information when I first started playing with CI. I was setting up another CI server at home and figured while I was walking through setting it up I might as well take notes and make it into an article.

I hope people find it useful. I wish I had an article that was that well detailed when I was first setting up Cruise Control.

Cheers!

Sean

Tuesday, April 24, 2007

Open Source and the Gift Economy

Jeff Atwood has an interesting post about Open Source Billionaires and why they aren't any. I find this topic very interesting as I always enjoy researching differences in open source vs. commercial software. At one point in time I write a paper for an English class that spoke about the differences between the two.

As Jeff states in his posting, there really is no true "revenue" so to speak from the actual software. We all know that it is free and thus is why it is open source. The project might get enough contributions to support webservers/integration server etc... That is required to run day to day activities. The code is contributed by people that enjoy doing it in their spare time, or who add on to the software for their own needs and then give those changes back to the project as a "thank you". It's really quite amazing.

This is where a Gift Economy comes into play. People are no longer paid by direct revenue from the software, but rather from fringe benefits if you will. People start hiring the developers to do other projects for them, after seeing how good their software is. They are asked to do talks, and gain alot of notoriety and publicity from the software that was originally written. The Castle Project is a prime example of this. The founder of the project, hammett started his own consulting company called Castle Stronghold which provides software design and support for large projects.

Before rambling on too long about the gift economy, I will state that we may have not seen any open source billionaires yet, but I am very interested to see what will happen in the next decade. I doubt that we will ever have any open source billionaires, but we will definitely see a large increase in the number of open source millionaires. The whole open source market is becoming more agile and efficient as it chugs along. I can't wait to see where it goes from here.

There is something rewarding about contributing to something that you know others will use. You feel like you have been useful more than just than making money, but actually helping someone out with something. Much like when you answer a forum post, or a newsgroup question. More and more people are realizing this and there is a surge of people wanting to contribute to open source projects now. It feels like something is starting to turn, maybe not the tide but definitely something. We'll all have to wait and see =)

Tuesday, April 17, 2007

Getting Started with MonoRail Screencast

Colin Ramsey has posted a getting start with MonoRail screencast. It walks you through downloading monorail and setting up a demo project. It's very basic but it gets you started really quickly.

Cheers Colin!

Monday, April 16, 2007

SQL Server Agent

I haven't searched google or anything to find a solution but has anyone else found that their SQL Server Agents just randomly stop running? I've had this problem with a couple of my SQL Servers off an on for the last two years.

I have a large number of scheduled jobs that run that massages data to feed into other software systems on a daily basis. Every now and then some of the sql server agents will just stop running and I have to manually go in and start them. I can't seem to reproduce the problem and it is quite annoying to have to go in everyday and make sure that all of my jobs completed.

I know sql server has an e-mail notification feature, but I have never played with it. Perhaps its time to finally upgrade all the sql installations at work to sql 2005, perhaps this problem is fixed in the newer version of sql.

Sunday, April 15, 2007

Linq for NHibernate code samples 1

Bobby Diaz made a posting of some code samples of the Linq for NHibernate functions.

I haven't read through all of his linq posts yet, but this guy is doing some pretty ingenious stuff. I can't wait to start playing with Linq when I get some more time. I've been too busy with other development projects lately to really do any worthwhile research.

I would have imagined that Microsoft would have made it easier to make providers for Linq, but I guess thats not the case. I must admit that some of bobby's code is beyond my comprehension, but I think looking at it and trying to understand it only helps me realize more complex code. I feel its always good to be just inside that "wondering" area, it accelerates your thinking more and forces you to always be learning more.

Keep up the good work bobby!

Saturday, April 14, 2007

Ayende on Orthogonal Frameworks

Ayende has a recent post talking about Orthogonal Frameworks in relation to open source projects.

Personally, being a developer for an educational institution (a public school district), this is the reason open source frameworks so appealing. The last thing I want to do is require the district to purchase a framework that is closed source. This creates more problems than it solves. I won't get on the soapbox and preach about why I like using open source projects so much, but it makes all the sense in the world for educational institutions.

If I ever want to modify or drive the development into a different direction, I don't have to ask for more funds from my directors, I simply extend the functionality that I am looking for. This in itself, is priceless.

There is a few side effects to using open source projects, the main one being it takes a good level of understanding as most open source projects are trickier to use than commercial products, and sometimes the documentation is lacking.

This brings me to my final point about NHibernate. When I first started looking at O/R Mappers for the district, I was very turned off by the majority of the commercial frameworks for the reason that Ayende states, they make alot of assumptions on how their framework is going to be used which makes for more difficult usage of the mapper. Since NHibernate is open source, if I ever do needed additional functionality (which I haven't yet), its available to me. In addition, NHibernate has a very large following and support staff which is only growing every day. The Castle Project is another framework that this applies to as well, and I have begun to use in my day to day development of web projects.

TDD with SqlCe and NHibernate

I just posted an article to TheCodeProject describing how to use Ayende's Rhino.Commons to connect together all the pieces of SqlCE and NHibernate to achieve disposable Database Unit Tests.

Amazingly the perfomance of SqlCE and NHibernate is very good. Once the initial SessionFactory is built, tests run pretty quickly. No benchmarks right now but I'll post them at a later date.

You can find the article here

Enjoy!

Tuesday, February 20, 2007

CastleProject.org down?

Yesterday was presidents day, and I had a day off from my cushy school district job. As a result, I decided to read up on ActiveRecord and other portions of the Castle Project.

Only to find that all day yesterday and this morning that CastleProject.org seems to be down. Reverse lookup is working, but their server is responding to pings or anything. TraceRoute dies at the first hop inside their network. Looks like someone may have a burned out switch :(

I'm surprised someone at castleproject hasn't caught this earlier.

Wednesday, February 14, 2007

CruiseControl.NET, NAnt & MSBuild, Oh My!

Ok,

I'm sitting glaring at the radiant glow of my laptop monitor, barely keeping my eyes open after messing with my continuous integration server trying to get it up and running. CC.NET, NAnt have all gone fine, it's once I start messing with actually building one of my test solutions that I run into problems. Granted, this is the FIRST time I am messing with automated building outside of the IDE, so this was bound to happen.

The solution I am trying to compile has about 8 projects, one has a dependency on NUnit, another has a dependency on NHibernate. One project has a reference to another project I use for all internal ActiveDirectory communication. Another project has a reference to a library that holds base classes for persistence that is reused across the organization.

I was having problems with using the solution file that I was using on my development machine, with MSBuild, apparently when I checkout the project, it sets the relative path to the project on my development machine. I struggled with this for an hour or so and finally just created a second sln file called "Integration" to be used by msbuild only. fixed that problem.

Now msbuild is complaining about framework 2.0 sdk, so ok...go download it...good, done with that.

I am also using NAntContrib to be able to use the <msbuild> task, although now I can't seem to figure out how to tell the build where to find referenced assemblies, such as NUnit and NHibernate. I do have a vssget task running that is getting the sourcesafe folder containing my thirdparty components, so it is in the source directory prior to compilation, but I can't for the life of me figure out how to tell msbuild where to find the dependecies.

I think at this point I am just beating a dead horse and am very exhausted.

I guarentee as soon as my head hits that pillow I will get an AH-HAH!...goodnight

 

Monday, December 11, 2006

Microsoft and OSS courtesy of Ayende

Just read an interesting post that makes alot of sense. Ayende talks about problems with Microsoft's lack of adoption for OSS in relation to tools available to .NET developers

Post on Ayende's Site

And here's some more to add to it on Jeremy Miller's blog: Jeremy Miller's Ditto Post

Friday, November 17, 2006

Two new Books

Just purchased the following books:

 

Hopefully these are good books, I've been hearing alot about them. I figured I would pick them up as they were only $20 each. I am peticularly interested in the pragmatic unit testing.

I'll let you know how they turn out!

Sunday, November 12, 2006

Hindsight is 20/20

The purpose of this blog posting is to hopefully identify my own pitfalls as well as help others out in avoiding pitfalls that I encountered on my current large project.

I recently (8 months ago) started my own business with a partner. My partner has vast knowledge of the marketplace (the domain expert), and I have vast knowledge (or so I would like to believe), of the technologies needed to create our business model in relation to the Technology point of view.

Let's say for the sake of argument that our website that drives the business is ebay-like. Users post items for sale, people come and purchase them, upon purchasing we charge the seller a %5 commission and a small listing fee, usually around $1.50.

Now, I started developing this website using ASP.NET 2.0, Membership/Role Providers, C# as the language used. My first error was choosing the Membership/Role Providers. It was my first attempt at using these tools in a large website, I struggled with them for about a month trying to get them to work correctly. In the end, I removed these features and just wrote my own registration/role providers within the app. This proved to be much easier than wrestling with Microsoft's Role Providers. I am in no way saying that Microsoft's Providers are not good, they just did not do what I wanted them to do and weren't flexible enough to accomplish what I needed them to do.

Second, myself being very logical-minded, and my business partner being very abstract-minded can be a very difficult comboination, especially when the abstract person is trying to convey the business requirements of the application. I feel like I didn't spend enough time in the planning stage of this application (even though I was planning for about 3 weeks). Looking back, I should have spent much more time in this space, perhaps 2-3 months bouncing UI mocks off of my domain expert and inspecting much more how my domain would be constructed. I found after starting to design the domain that I left many objects out, missing details or just plain wrong. I blame the short planning stage on this error.

Third, when I first began this project I had little knowledge of Agile/XP programming methodologies, and didn't adopt them as I felt I wouldn't program the domain correctly. In peticular, I didn't use any TDD which has hurt me considerably. A direct result is now as I am making further changes to the domain model, I am breaking other components within the application, which in turn is extending the development much longer than first thought. I really should have put the domain model through a number of refactors and now the code stench is almost unbearable. Specifically in the image manipulation portion and then item management portion. Along with the code stench there is a couple of interfaces that are not even utilized, which adds to the stench.

Now I am to the point of what I feel like a crossroad. The development is about 90% done and I am now in the beta-testing/debugging stage and am proceeding forward ever so slowly. At this point would it be better to re-work the entire domain model, possibly adding several more months onto the development, or proceed forward with a buggy, smelly domain model and re-design immeaditely upon launching the site. To give you an idea of how far behind the deadline we really are, we were supposed to launch in june; and we are quickly approaching december.

The main reason I posted this was to convey the thoughts that are repeating over and over everytime I delve into the stinky heap of code that I have created. More than anything now, I am constantly asking myself what would be easier at this point, continue to the end, or go back to the beginning with the new knowledge I have obtained in the last year and try to re-work it much better. I feel strongly that I must continue to the end and launch something as my business partner is quite agitated as well as myself for taking so long to develop this mess.

Like I said, Hindsight is 20/20. I hope this post helps someone in the future. Cheers!

 

 

Copyright © Sean Chambers