13 Paint.NET Effects and a Framework to create your own

I've created 13 "new" Paint.NET effects (9 adjustments and 4 effects) and a framework to create your own effects more easily. Download Vandermotten.PaintDotNetEffects from my download page. Full source code is included in the download.

The nine adjustments are:

  • Cyanotype: the classical blueprint look, see http://en.wikipedia.org/wiki/Cyanotype. This actually is a demonstration of the Monochrome Ink on Paper adjustment, see below.
  • Darken: darkens an image, simple demo of the framework. See also below.
  • Lighten: lightens an image, simple demo of the framework.
  • Duotone Ink on Paper: see http://en.wikipedia.org/wiki/Duotone. Set the two ink colors using the Colors window.
  • Duotone Light: a variation on the traditional duotone, where two colored light sources are mixed additively. Set the two light colors using the colors window.
  • Grayscale on Colored Paper: well, it looks like a grayscale image on colored paper :-). Set the paper color using the colors window. Or maybe it's a black and white image projected with a colored light...
  • Monochrome Ink on Paper: looks like a grayscale image printed with one color ink. Set the ink color using the colors window.
  • Negative: duplicate of the built-in Invert Colors adjustment, provided as a very simple demo of the framework. See also below.
  • Sepia: simple demo of the Grayscale on Colored Paper adjustment, configurable though.

And four effects:

  • Drop Shadow: creates a drop shadow under an image with transparency. Offset, widening and shadow blur can be controlled. The widening option also allows creating outlines around images. Shadow color is set using the colors window before starting the effect.
  • Fade Edge: a simple demo of the framework. Fades the edge of an image. Width and power can be controlled.
  • Average Blur: averages all pixels within a controlled radius.
  • Smart Blur: averages pixels in a controlled radius if their color is close enough to the center color. This is very useful to reduce aliasing from scanned prints, especially of cartoon-like images.

So how do you create an effect with the framework? Let's starts with a very simple adjustment example: negative. An adjustment processes one pixel at a time, where one color is transformed into another color, no matter where the color appeared in the original image. In essence, an adjustment is a function that takes one color parameter, and returns another one.

public delegate ColorBgra Adjustment(ColorBgra source);

To create a Paint.NET adjustment effect, create a dll project and add references to PaintDotNet.Base, PaintDotNet.Core, PaintDotNet.Effects, and ... Vandermotten.PaintDotNetEffects. Create a class inheriting from Vandermotten.PaintDotNetEffects.SmartAdjustment:

using PaintDotNet;
using PaintDotNet.Effects;
using Vandermotten.PaintDotNetEffects;

[EffectCategory(EffectCategory.Adjustment)]
public class NegativeAdjustment : SmartAdjustment
{
public NegativeAdjustment()
: base("Negative")
{
}

protected override Adjustment AdjustmentToRender
{
get
{
return c => new ColorBgra()
{
B = (byte)(255 - c.B),
G = (byte)(255 - c.G),
R = (byte)(255 - c.R),
A = c.A
};
}
}
}

Attribute the class with the EffectCategory attribute, to make it appear under the adjustments menu. In the constructor, call the base constructor to set a name, and optionally an icon, submenu and effect flags. All you need to do now is override the AdjustmentToRender property. Return a function that transforms one color into another and you're done.

Notice also how easy it becomes to unit test your adjustments. Just call the function returned by AdjustmentToRender from your unit tests and validate the results.

And what about configurable adjustments, such as Darken? Rick has made developing configurable effects much easier than it used to be, but SmartProperties go one step further:

[EffectCategory(EffectCategory.Adjustment)] 
public class DarkenAdjustment : SmartAdjustment
{
public DarkenAdjustment()
: base("Darken", null, EffectFlags.Configurable)
{
}

SmartDoubleProperty factor = new SmartDoubleProperty("Factor")
{
DefaultValue = 1.5,
MinValue = 1,
MaxValue = 16
};

protected override IEnumerable<ISmartProperty> GetProperties()
{
return new ISmartProperty[] { factor };
}

protected override Adjustment AdjustmentToRender
{
get
{
if (factor == 1)
{
return c => c;
}
return c => new ColorBgra()
{
B = (byte)(c.B / factor),
G = (byte)(c.G / factor),
R = (byte)(c.R / factor),
A = c.A
};
}
}
}

Tell the base class the effect is configurable, declare and initialize the properties (of type double, int or bool for now), and override GetProperties(). You can then use those properties in your AdjustmentToRender implementation.

Notice how AdjustmentToRender varies the function it returns by the values of the configuration properties. This is a key aspect of the functional programming style: this basic form of partial evaluation becomes almost trivially easy to implement, and can yield important performance benefits. In fact, the Drop Shadow effect in the download can be terribly slow for certain image and parameter combinations, but this partial evaluation, combined with the lazy evaluation of some parts of the function, make it perform very fast in most cases.

Non-adjustment effects work similarly to adjustments, but there are some very important differences as well. More about those in a later post. Or take a look at the source code that's included in the download. You'll need Visual Studio 2008 to compile it, but you can use the framework from Visual Studio 2005 as well (though you'll miss the convenient C# 3.0 syntax).

Enjoy.


Comments

March 17. 2009 07:37 AM

Hi Kris:  I'm new to Paint.NET and after downloading your effects package tried to get the text to do drop shadow (I'm adding text to an image). After selecting the Text tool and typing in the text, I selected Stylize/Drop Shadow, picked a color, OK. Nothing happened.   Paint.NET does not allow me to select the text I just typed (unlike Fireworks). I'm sure I'm missing something obvious. What am I doing wrong? Thx, C

March 17. 2009 11:00 AM

C,  I suspect you need to look into layers. Layers are managed by the Layers Window, typically in the botton right corner of the Paint.NET window. Create a new layer and type your text in that new layer. The drop shadow should work then.  Kris.

March 20. 2009 12:59 PM

Yep, that did it. Hadn't worked with layers before. Thanks!

April 13. 2009 02:03 AM

Hi Kris,  The drop shadow works great except perhaps one thing....  my image and shadow overlay a multi-color background.  Is there anyway to specify a level of transparency to the color of the drop shadow (like the transparency - alpha in the Paint.net color tool)?   Otherwise it is an opaque shadow and not nearly as realistic.   Perhaps there is a way and I am missing it.  Thanks.  Oh and one things that would help in the instructions is to mention that the selection of the object needs to be a box/area bigger than the object itself (on a transparent background).    I kept trying to do this with just the object selected at first.  Thanks again for the great tool,  Peter Vanderheiden  

April 22. 2009 01:56 PM

Kris,  I retract my comment about the lack of transparency in this tool.  The shadow seems to fade to transparent by default (as I thought it should).  I am not sure what was happening before where my shadow seemed to lack transparency (fade to gray even with a transparent background).  However, today I tried it again and the shadow was a perfect fade to transparent.  If I figure out what I did wrong the first time, I'll re-post here so others that might trip over this can avoid it.  Seems to work fine now.  A really neat fact about your drop shadow tool is that it works perfectly creating a fading shadow on a fading relief image.   I created the fading relief by using the standard paint.net tool bar's rectangular fade tool with the primary color the same as my web site background and a secondary color of transparent.  Then I applied the drop shadow with zero x and zero y offset (shadow all the way around).  The result was that the shadow faded away on the end of the object that faded into the background color.  This left the perfect resulting appearance of my object in relief sloping down into the background.   Very cool.    Thanks again Kris,  Peter Vanderheiden     Only suggestion I can think of is to allow a greater value of Blur Radius.   I seem to max it out all the time (wanting more).  

April 22. 2009 07:43 PM

Hi Kris,  OK, once again I think that the transparency/alpha color adjustment would be a good addition to this excellent tool.     My first use of the Drop Shadow tool (original posting above) was a different application than the second (second posting above).  The first showed the need of having a transparency adjustment.  The second didn't need it.  The difference was in the setting of the x & y offset.  My first application I needed a significant "shadow" down and to the right of the object, requiring a significant x/y offset.  The shadow cast by the Drop Shadow tool has semi-transparent effects around the blurred edges, but the center area of the shadow (only visible when x & y have significant values) is opaque.  In my application this center shadow area overlays a multicolored background, so I need this center area to be semi-transparent too.   My second application required more of an all around glow type shadow (with x & y offset set to zero).  In this case all of the shadow that showed was semi-transparent (the blurred edges).  That worked perfect as it was all semi-transparent.   BTW, it was this second application where I found myself maxing out the Blur Radius value (mentioned in my second posting).  The current range was fine for my first application.  Again, Kris if I am missing something here and there is a way to have a transparent shadow center with a significant x/y offset, I would appreciate knowing.  Until then I am continuign to do this manually.    Thanks again, Peter Vanderheiden

April 26. 2009 02:21 PM

Hi Peter,  I already answered a similar question on the Paint.NET forum. Here's a copy/paste: -----  You can get a transparent shadow with the current version already:  Depending on your exact needs, the first option is to blur the shadow. That blurs the edges of the shadow into full transparency. The shadow itself is not transparent though.  Your second option is to use layers. Copy the layer containing your "object" using the copy button in the layers window. Then select the bottom layer, i.e. the one you copied, not the one that contains the copy. Apply the drop shadow effect to this layer, but make sure that you turn the "Keep original image" option off. The layer will now contain a shadow only, not the "object" that created the shadow. That "object" is however still visible in the layer above it, i.e. the copy you created earlier. Now set the opacity of the layer containing the shadow, that will give you the effect you want. You can do so by editing the options on the layer. Double click the layer in the layers window, leave the blending mode to normal (or experiment with other modes!) and change the opacity.  Hope this helps.

May 12. 2009 02:11 PM

I just installed lastest Paint.net at home, with latest .net framework, and also just installed your lastest 13 effect package. I start a new image and type in a text and draw a solid disc. Applying DropShadow produces no effect, and turning "keep original image off" just fill the entire image with the solid color I chose for the shadow...  I feel uncomfortable ;)

August 6. 2009 07:06 PM

its just in DILL file??!?!?!   i put it on paint.net folder then nothing in the effects!!

August 6. 2009 07:09 PM

WHERES THE README!!!!!!!!!!!!!!!!!

November 17. 2009 04:12 PM

faxless payday loans

Like your writing! Still you can do some things to improve it.

faxless payday loans

November 21. 2009 07:24 PM

cash loans

I guess there's always an easier way ...

cash loans

December 18. 2009 04:25 AM

Potato Egg Recipes

You may have not intended to do so, but I think you have managed to express the state of mind that a lot of people are in. The sense of wanting to help, but not knowing how or where, is something a lot of us are going through.

Potato Egg Recipes

December 22. 2009 06:20 AM

jump manual

I admire the valuable information you offer in your articles. I will bookmark your blog and have my children check up here often. I am quite sure they will learn lots of new stuff here than anybody else!

jump manual

December 22. 2009 07:16 PM

payday loans

Interesting post

payday loans

December 23. 2009 03:20 AM

Bathmate

nice posting....i like it...it is really helpful to all...

<a herf="www.bathmateus.com">Bathmate</a>

Bathmate

January 6. 2010 01:46 AM

Las Vegas artificial grass

Dude.. I am not much into reading, but somehow I got to read lots of articles on your blog. Its amazing how interesting it is for me to visit you very often.

Las Vegas artificial grass

January 6. 2010 02:16 AM

lionel train set

Howdy, i read your blog occasionally and i own a similar one and i was just wondering if you get a lot of spam comments? If so how do you prevent it, any plugin or anything you can advise? I get so much lately it's driving me mad so any assistance is very much appreciated.

lionel train set

January 8. 2010 08:54 PM

free living will

Howdy, i read your blog occasionally and i own a similar one and i was just wondering if you get a lot of spam comments? If so how do you prevent it, any plugin or anything you can advise? I get so much lately it's driving me mad so any assistance is very much appreciated.

free living will

January 8. 2010 10:32 PM

corioliss flat iron

There are certainly a lot of details like that to take into consideration. That is a great point to bring up. I offer the thoughts above as general inspiration but clearly there are questions like the one you bring up where the most important thing will be working in honest good faith. I don?t know if best practices have emerged around things like that, but I am sure that your job is clearly identified as a fair game.

corioliss flat iron

January 10. 2010 06:44 PM

self catering cornwall

Hrmm that was weird, my comment got eaten. Anyway I wanted to say that it's nice to know that someone else also mentioned this as I had trouble finding the same info elsewhere. This was the first place that told me the answer. Thanks.

self catering cornwall

January 12. 2010 04:32 PM

offshore havens

The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

offshore havens

January 13. 2010 02:46 AM

investments Jackson MI

Have you ever considered adding more videos to your blog posts to keep the readers more entertained? I mean I just read through the entire article of yours and it was quite good but since I'm more of a visual learner,I found that to be more helpful well let me know how it turns out! I love what you guys are always up too. Such clever work and reporting! Keep up the great works guys I've added you guys to my blogroll. This is a great article thanks for sharing this informative information.. I will visit your blog regularly for some latest post.

investments Jackson MI

January 14. 2010 11:51 PM

e cigarette

This article gives the light in which we can observe the reality. this is very nice one and gives indepth information. thanks for this nice article

e cigarette

January 15. 2010 02:43 AM

jobs in food science and technology

Admiring the time and effort you put into your blog and detailed information you offer! I will bookmark your blog and have my children check up here often. Thumbs up!

jobs in food science and technology

January 15. 2010 06:09 AM

grants non-profit organization

I admit, I have not been on this webpage in a long time... however it was another joy to see It is such an important topic and ignored by so many, even professionals. I thank you to help making people more aware of possible issues.
Great stuff as usual...

grants non-profit organization

January 15. 2010 06:51 AM

out of body experience

The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

out of body experience

January 15. 2010 07:47 AM

food science

The beauty of these blogging engines and CMS platforms is the lack of limitations and ease of manipulation that allows developers to implement rich content and 'skin' the site in such a way that with very little effort one would never notice what it is making the site tick all without limiting content and effectiveness.

food science

January 15. 2010 08:12 AM

Wholesale Clothing

I admit, I have not been on this webpage in a long time... however it was another joy to see It is such an important topic and ignored by so many, even professionals. I thank you to help making people more aware of possible issues.
Great stuff as usual...

Wholesale Clothing

January 19. 2010 05:01 PM

meilleur casino de jeux en ligne

what is the difference between the .NET Framework and the .NET Micro Framework? Is the latter a subset of the former?

meilleur casino de jeux en ligne

January 22. 2010 09:00 PM

online payday loans

Business is never so healthy as when, like a chicken, it must do a certain amount of scratching around for what it gets

online payday loans

January 23. 2010 07:17 PM

blueair air purifier

How-do-you-do, just needed you to know I have added your site to my Google bookmarks because of your extraordinary blog layout. But seriously, I think your site has one of the freshest theme I've came across. It really helps make reading your blog a lot easier.

blueair air purifier

January 23. 2010 08:19 PM

teach yourself guitar

I personally have embraced the new technologies and the CMS platforms, I think the new tools only make the web designs better. I am glad that new technologies are coming out in web design that make things easier, improved, and better looking for design.

teach yourself guitar

January 24. 2010 12:02 AM

szerencsejáték

Well, this is my first visit to your blog! We are a group of volunteers and starting a new initiative in a community in the same niche. Your blog provided us valuable information to work on. You have done a marvellous job!

szerencsejáték

January 24. 2010 11:26 PM

club penguin

Dude.. I am not much into reading, but somehow I got to read lots of articles on your blog. Its amazing how interesting it is for me to visit you very often.

club penguin

January 25. 2010 07:55 AM

money making ideas

Couldn?t be written any better. Reading this post reminds me of my old room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thanks for sharing!

money making ideas

January 25. 2010 02:01 PM

payday loans

The more we give of anything, the more we shall get back.

payday loans

January 26. 2010 02:06 AM

Golf Club Complete Sets

Well, this is my first visit to your blog! We are a group of volunteers and starting a new initiative in a community in the same niche. Your blog provided us valuable information to work on. You have done a marvellous job!

Golf Club Complete Sets

January 28. 2010 08:26 PM

plots for sale

Great post! I am just starting out in community management/marketing media and trying to learn how to do it well - resources like this article are incredibly helpful. As our company is based in the US, it?s all a bit new to us. The example above is something that I worry about as well, how to show your own genuine enthusiasm and share the fact that your product is useful in that case.

plots for sale

January 29. 2010 11:17 PM

umbrella payroll

Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up

umbrella payroll

January 31. 2010 01:21 PM

HO Scale Trains

That is some inspirational stuff. Never knew that opinions could be this varied. Thanks for all the enthusiasm to offer such helpful information here.

HO Scale Trains

January 31. 2010 09:04 PM

short term insurance

Great post! I am just starting out in community management/marketing media and trying to learn how to do it well - resources like this article are incredibly helpful. As our company is based in the US, it?s all a bit new to us. The example above is something that I worry about as well, how to show your own genuine enthusiasm and share the fact that your product is useful in that case.

short term insurance

January 31. 2010 10:12 PM

beyerdynamic dt 770 stereo headphones

I am not much of a guy who thinks in so deeply about web design but I think your post had some valid points in it. Like designers are forced to design stuff within the limited code available and not go beyond it, their innovation is somewhat limited but still I think Web Design won't die! I agree that Amazon and other some big sites won't have a blog but now a days it's very important to have some sort of option available so people can quickly communicate their thoughts. I think Amazon if wants to shift it to that, they can get a customized CMS for themselves.

beyerdynamic dt 770 stereo headphones

February 1. 2010 08:32 PM

cheap seo

i love paint.net.. who needs paintshop?

cheap seo

February 2. 2010 03:27 AM

no loss robot

This is such a great resource that you are providing and you give it away for free. I love seeing websites that understand the value of providing a quality resource for free. It is the old what goes around comes around routine. Did you acquired lots of links and I see lots of trackbacks??

no loss robot

February 3. 2010 03:42 PM

faxless payday loans

If you think of vision and mission as an organization's head and heart, the values it holds are its soul.

faxless payday loans

February 3. 2010 03:42 PM

loans

Many receive advice, only the wise profit from it.

loans

February 3. 2010 03:43 PM

online cash advance

Do not go where the path may lead, go instead where there is no path and leave a trail.

online cash advance

February 3. 2010 03:43 PM

cash advance

Character isn't something you were born with and can't change, like your fingerprints. It's something you weren't born with and must take responsibility for forming.

cash advance

February 3. 2010 03:58 PM

cash loans

Begin somewhere. You cannot build a reputation on what you intend to do.

cash loans

February 3. 2010 03:58 PM

payday loans

Whether you think you can or whether you think you can't, you're right!

payday loans

February 4. 2010 03:09 PM

color correction

good article and have a gr8 source of info

color correction

February 4. 2010 04:35 PM

diamond shapes

I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

diamond shapes

February 4. 2010 07:19 PM

edmonton mortgage rate

Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up

edmonton mortgage rate

February 4. 2010 09:08 PM

how to tie a tie step by step

That is some inspirational stuff. Never knew that opinions could be this varied. Thanks for all the enthusiasm to offer such helpful information here.

how to tie a tie step by step

February 4. 2010 11:12 PM

pay day loans

Success is that old ABC - ability, breaks, and courage.

pay day loans

February 4. 2010 11:12 PM

bad credit personal loans

People who enjoy what they are doing invariably do it well.

bad credit personal loans

February 4. 2010 11:12 PM

online payday loans

The harder the conflict, the more glorious the triumph.

online payday loans

February 4. 2010 11:12 PM

payday loans

To do something, however small, to make others happier and better, is the highest ambition, the most elevating hope, which can inspire a human being.

payday loans

February 4. 2010 11:28 PM

no credit check payday loans

Problems are not stop signs, they are guidelines.

no credit check payday loans

February 4. 2010 11:28 PM

payday loans

Before you build a better mousetrap, it helps to know if there are any mice out there.

payday loans

February 5. 2010 04:12 AM

golf gps reviews

Hi. this is kind of an "unconventional" question , but have other visitors asked you how get the menu bar to look like you've got it? I also have a blog and am really looking to alter around the theme, however am scared to death to mess with it for fear of the search engines punishing me. I am very new to all of this ...so i am just not positive exactly how to try to to it all yet. I'll just keep working on it one day at a time.

golf gps reviews

February 5. 2010 10:53 AM

golf gps reviews

Hi. this is kind of an "unconventional" question , but have other visitors asked you how get the menu bar to look like you've got it? I also have a blog and am really looking to alter around the theme, however am scared to death to mess with it for fear of the search engines punishing me. I am very new to all of this ...so i am just not positive exactly how to try to to it all yet. I'll just keep working on it one day at a time.

golf gps reviews

February 7. 2010 09:33 PM

swing trading

I was wondering what is up with that weird gravatar??? I know 5am is early and I'm not looking my best at that hour, but I hope I don't look like this! I might however make that face if I'm asked to do 100 pushups. lol

swing trading

February 8. 2010 12:59 PM

home air conditioning units

Dude.. I am not much into reading, but somehow I got to read lots of articles on your blog. Its amazing how interesting it is for me to visit you very often.

home air conditioning units

February 8. 2010 02:08 PM

eczema treatment

Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share.

eczema treatment

February 9. 2010 08:53 AM

acai berry select

Speak when you're angry, and you'll make the best speech you'll ever regret.

acai berry select

February 9. 2010 08:54 AM

alta white teeth whitening

When a goal matters enough to a person, that person will find a way to accomplish what at first seemed impossible.

alta white teeth whitening

February 9. 2010 08:54 AM

acai berry review

Obstacles don't have to stop you. If you run into a wall, don't turn around and give up. Figure out how to climb it, go through it, or work around it.

acai berry review

February 9. 2010 08:54 AM

alta white teeth whitening

Arriving at one goal is the starting point to another.

alta white teeth whitening

February 9. 2010 09:20 AM

Natural Colon Cleansing

If you lose the power to laugh, you lose the power to think.

Natural Colon Cleansing

February 9. 2010 09:20 AM

Colon Cleanse Offer

When you come to a roadblock, take a detour.

Colon Cleanse Offer

February 10. 2010 12:19 AM

above ground swimming pool heaters

Great post! I am just starting out in community management/marketing media and trying to learn how to do it well - resources like this article are incredibly helpful. As our company is based in the US, it?s all a bit new to us. The example above is something that I worry about as well, how to show your own genuine enthusiasm and share the fact that your product is useful in that case.

above ground swimming pool heaters

February 12. 2010 01:59 AM

Victor Del Prete

Well done on the new effects.

Also need to spend some time and read you asp.net blog, looks like you're a pro..

Take care-

Victor Del Prete

February 13. 2010 06:48 AM

Entertainment Centers

Nice information, many thanks to the author. It is incomprehensible to me now, but in general, the usefulness and significance is overwhelming. Thanks again and good luck!

Entertainment Centers

February 13. 2010 10:32 AM

cash advance

When I originally commented I clicked the "Notify me when new comments are added" checkbox and now each time a comment is added I get four emails with the same comment.
Is there any way you can remove me from that service?
Thanks!

cash advance

February 13. 2010 09:50 PM

Las Vegas Garage Door Repair

Me and my friend were arguing about an issue similar to this! Now I know that I was right. lol! Thanks for the information you post.

Las Vegas Garage Door Repair

February 15. 2010 02:58 AM

dog backpack

Hrmm that was weird, my comment got eaten. Anyway I wanted to say that it's nice to know that someone else also mentioned this as I had trouble finding the same info elsewhere. This was the first place that told me the answer. Thanks.

dog backpack

February 15. 2010 03:08 AM

junior bathing suits

Couldn?t be written any better. Reading this post reminds me of my old room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thanks for sharing!

junior bathing suits

February 16. 2010 01:22 PM

essay papers

I tried it, but I don't know how to change the transparency into a particular level. Thanks for sharing this.

essay papers

February 16. 2010 01:25 PM

dmtry

Nice tips!

dmtry

February 16. 2010 01:28 PM

compare life insurance quotes

The codes seems they can work outSmile

compare life insurance quotes

February 16. 2010 08:51 PM

metal storage cabinet

Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up

metal storage cabinet

February 17. 2010 04:02 PM

blackberry sim card

Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It's always nice when you can not only be informed, but also entertained! I'm sure you had fun writing this article.

blackberry sim card

February 19. 2010 01:02 AM

Payday Cash

Dude.. I am not much into reading, but somehow I got to read lots of articles on your blog. Its amazing how interesting it is for me to visit you very often.

Payday Cash

February 20. 2010 11:29 PM

budget car insurance quotes

Couldn?t be written any better. Reading this post reminds me of my old room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thanks for sharing!

budget car insurance quotes

February 22. 2010 12:40 AM

selling on ebay

Well, this is my first visit to your blog! We are a group of volunteers and starting a new initiative in a community in the same niche. Your blog provided us valuable information to work on. You have done a marvellous job!

selling on ebay

February 22. 2010 01:24 AM

Picture Collage

Hello,I love reading through your blog, I wanted to leave a little comment to support you and wish you a good continuation. Wishing you the best of luck for all your blogging efforts.

Picture Collage

February 22. 2010 02:30 AM

chiropractic marketing

That is some inspirational stuff. Never knew that opinions could be this varied. Thanks for all the enthusiasm to offer such helpful information here.

chiropractic marketing

February 22. 2010 02:45 AM

Mothers Day poems

Resources like the one you mentioned here will be very useful to me! I will post a link to this page on my blog. I am sure my visitors will find that very useful.

Mothers Day poems

February 23. 2010 01:28 AM

folding treadmill

I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post

folding treadmill

February 24. 2010 12:36 AM

PVC Banners

Excellent read, I just passed this onto a colleague who was doing a little research on that. And he actually bought me lunch because I found it for him smile So let me rephrase that: Thanks for lunch!

PVC Banners

February 24. 2010 12:37 AM

make money online

Admiring the time and effort you put into your blog and detailed information you offer! I will bookmark your blog and have my children check up here often. Thumbs up!

make money online

February 24. 2010 08:06 AM

PVC Banners

Howdy, i read your blog occasionally and i own a similar one and i was just wondering if you get a lot of spam comments? If so how do you prevent it, any plugin or anything you can advise? I get so much lately it's driving me mad so any assistance is very much appreciated.

PVC Banners

February 24. 2010 08:40 AM

Monetize Myspace Social Traffic

The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

Monetize Myspace Social Traffic

February 24. 2010 05:42 PM

crib bedding

Aw, this was a really quality post. In theory I'd like to write like this too - taking time and real effort to make a good article... but what can I say... I procrastinate alot and never seem to get something done.

crib bedding

February 25. 2010 09:01 PM

electronic cigarette

When I originally commented I clicked the "Notify me when new comments are added" checkbox and now each time a comment is added I get four emails with the same comment.
Is there any way you can remove me from that service?
Thanks!

electronic cigarette

February 26. 2010 01:51 AM

cabin bed

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me.

cabin bed

February 27. 2010 12:51 AM

bamboo hangers

It's always refreshing to come along a site like yours. The topics are always interesting to read. Too bad there's not more sites like yours out there. Thanks.

bamboo hangers

February 28. 2010 02:49 AM

Dr Britt Borden MD

Keep 'em coming... you all do such a great job at such Concepts... can't tell you how much I, for one appreciate all you do!

Dr Britt Borden MD

February 28. 2010 05:43 AM

swoopo software

When I originally commented I clicked the "Notify me when new comments are added" checkbox and now each time a comment is added I get four emails with the same comment.
Is there any way you can remove me from that service?
Thanks!

swoopo software

February 28. 2010 08:14 PM

free restaurant forms

That is some inspirational stuff. Never knew that opinions could be this varied. Thanks for all the enthusiasm to offer such helpful information here.

free restaurant forms

February 28. 2010 11:59 PM

Leather Reclining Chairs

Excellent read, I just passed this onto a colleague who was doing a little research on that. And he actually bought me lunch because I found it for him smile So let me rephrase that: Thanks for lunch!

Leather Reclining Chairs

March 3. 2010 03:33 AM

reo properties

This article gives the light in which we can observe the reality. this is very nice one and gives indepth information. thanks for this nice article

reo properties

March 3. 2010 03:52 AM

Middlebrook Heights NJ Electrician

I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post

Middlebrook Heights NJ Electrician

March 3. 2010 04:56 AM

debt consolidation

I have recently started using the blogengine.net and I having some problems here? in your blog you stated that we need to enable write permissions on the App_Data folder...unfortunately I don't understand how to enable it.

debt consolidation

March 3. 2010 11:02 AM

North Plainefield NJ Electrician

There are certainly a lot of details like that to take into consideration. That is a great point to bring up. I offer the thoughts above as general inspiration but clearly there are questions like the one you bring up where the most important thing will be working in honest good faith. I don?t know if best practices have emerged around things like that, but I am sure that your job is clearly identified as a fair game.

North Plainefield NJ Electrician

March 3. 2010 01:21 PM

roulette killer

I must say that overall I am really impressed with this blog.It is easy to see that you are passionate about your writing. If only I had your writing ability I look forward to more updates and will be returning.

roulette killer

March 3. 2010 09:15 PM

roulette killer

That is some inspirational stuff. Never knew that opinions could be this varied. Thanks for all the enthusiasm to offer such helpful information here.

roulette killer

March 5. 2010 01:04 PM

boards

Just wanted to give you a shout from the valley of the sun, great information. Much appreciated.

boards

March 5. 2010 01:21 PM

boards

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me.

boards

March 6. 2010 02:15 AM

boards

The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

boards

March 6. 2010 03:42 AM

boards

Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share.

boards

March 6. 2010 11:03 AM

replica watches

I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

replica watches

March 6. 2010 02:16 PM

replica watches

Hey - nice blog, just looking around some blogs, seems a pretty nice platform you are using. I'm currently using Wordpress for a few of my sites but looking to change one of them over to a platform similar to yours as a trial run. Anything in particular you would recommend about it?

replica watches

March 9. 2010 05:18 AM

Rolando Lorr

Outstanding site, where did you come up with the knowledge in this blog? I'm glad I found it though, ill be checking back soon to see what other articles you have.

Rolando Lorr

March 9. 2010 08:32 PM

george brown

Hey - nice blog, just looking around some blogs, seems a pretty nice platform you are using. I'm currently using Wordpress for a few of my sites but looking to change one of them over to a platform similar to yours as a trial run. Anything in particular you would recommend about it?

george brown

March 9. 2010 11:41 PM

carpet cleaning equipment

You got a really useful blog I have been here reading for about an hour. I am a newbie and your success is very much an inspiration for me.

carpet cleaning equipment

March 10. 2010 12:06 AM

computer camera reviews

The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

computer camera reviews

March 10. 2010 12:26 AM

robotic massage chair

Admiring the time and effort you put into your blog and detailed information you offer! I will bookmark your blog and have my children check up here often. Thumbs up!

robotic massage chair

March 10. 2010 09:45 AM

oregon bankruptcy lawyer

I was wondering what is up with that weird gravatar??? I know 5am is early and I'm not looking my best at that hour, but I hope I don't look like this! I might however make that face if I'm asked to do 100 pushups. lol

oregon bankruptcy lawyer

March 10. 2010 09:56 AM

oregon divorce lawyer

This article gives the light in which we can observe the reality. this is very nice one and gives indepth information. thanks for this nice article

oregon divorce lawyer

March 10. 2010 10:57 AM

oregon chapter 7

There are certainly a lot of details like that to take into consideration. That is a great point to bring up. I offer the thoughts above as general inspiration but clearly there are questions like the one you bring up where the most important thing will be working in honest good faith. I don?t know if best practices have emerged around things like that, but I am sure that your job is clearly identified as a fair game.

oregon chapter 7

March 10. 2010 04:55 PM

oregon divorce lawyer

I completely agree with the above comment, the internet is with a doubt growing into the most important medium of communication across the globe and its due to sites like this that ideas are spreading so quickly.

oregon divorce lawyer

March 11. 2010 01:07 PM

portland divorce lawyer

The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

portland divorce lawyer

March 12. 2010 03:16 AM

andrew reynolds

Well, this is my first visit to your blog! We are a group of volunteers and starting a new initiative in a community in the same niche. Your blog provided us valuable information to work on. You have done a marvellous job!

andrew reynolds

March 12. 2010 12:04 PM

Quick Loans

Keep 'em coming... you all do such a great job at such Concepts... can't tell you how much I, for one appreciate all you do!

Quick Loans

March 12. 2010 12:10 PM

mens watches

I was wondering what is up with that weird gravatar??? I know 5am is early and I'm not looking my best at that hour, but I hope I don't look like this! I might however make that face if I'm asked to do 100 pushups. lol

mens watches

March 12. 2010 12:16 PM

Mens Wigs

Dude.. I am not much into reading, but somehow I got to read lots of articles on your blog. Its amazing how interesting it is for me to visit you very often.

Mens Wigs

March 14. 2010 12:01 AM

traffic ultimatum

I have recently started using the blogengine.net and I having some problems here? in your blog you stated that we need to enable write permissions on the App_Data folder...unfortunately I don't understand how to enable it.

traffic ultimatum

March 14. 2010 07:55 AM

bağkur

I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post

bağkur

March 15. 2010 09:45 PM

Nicolas Daul

This is a exceptional write-up, I discovered your weblog researching google for a similar theme and arrived to this. I couldnt come across to much additional material on this piece of writing, so it was awesome to locate this one. I will likely be back again to look at some other articles that you have another time.

Nicolas Daul

March 16. 2010 09:50 AM

emekli sandıgı

This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article.

emekli sandıgı

March 16. 2010 04:09 PM

door handles

Just wanted to give you a shout from the valley of the sun, great information. Much appreciated.

door handles

March 16. 2010 04:44 PM

traffic ultimatum bonus

I completely agree with the above comment, the internet is with a doubt growing into the most important medium of communication across the globe and its due to sites like this that ideas are spreading so quickly.

traffic ultimatum bonus

March 16. 2010 06:50 PM

Link building service

Nice information, many thanks to the author. It is incomprehensible to me now, but in general, the usefulness and significance is overwhelming. Thanks again and good luck!

Link building service

March 16. 2010 07:41 PM

water filter system

Admiring the time and effort you put into your blog and detailed information you offer! I will bookmark your blog and have my children check up here often. Thumbs up!

water filter system

March 16. 2010 07:42 PM

bbq grills

Couldn?t be written any better. Reading this post reminds me of my old room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thanks for sharing!

bbq grills

March 16. 2010 09:12 PM

building a pond

Hello,I love reading through your blog, I wanted to leave a little comment to support you and wish you a good continuation. Wishing you the best of luck for all your blogging efforts.

building a pond

March 16. 2010 09:15 PM

magnifying lamp

Well, this is my first visit to your blog! We are a group of volunteers and starting a new initiative in a community in the same niche. Your blog provided us valuable information to work on. You have done a marvellous job!

magnifying lamp

March 16. 2010 09:27 PM

nonprofit fundraising software

Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up

nonprofit fundraising software

March 16. 2010 09:27 PM

affordable health care insurance

Admiring the time and effort you put into your blog and detailed information you offer! I will bookmark your blog and have my children check up here often. Thumbs up!

affordable health care insurance

March 17. 2010 01:05 AM

removing stretch marks

Hi webmaster, commenters and everybody else !!! The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!b Keep 'em coming... you all do such a great job at such Concepts... can't tell you how much I, for one appreciate all you do!

removing stretch marks

March 18. 2010 09:53 PM

stable flooring

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me.

stable flooring

March 18. 2010 11:57 PM

tutor

That is some inspirational stuff. Never knew that opinions could be this varied. Thanks for all the enthusiasm to offer such helpful information here.

tutor

March 19. 2010 12:00 AM

beds for kids

Admiring the time and effort you put into your blog and detailed information you offer! I will bookmark your blog and have my children check up here often. Thumbs up!

beds for kids

March 19. 2010 02:13 AM

electric gate

Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It's always nice when you can not only be informed, but also entertained! I'm sure you had fun writing this article.

electric gate

March 19. 2010 04:42 AM

solar patio lights

Keep 'em coming... you all do such a great job at such Concepts... can't tell you how much I, for one appreciate all you do!

solar patio lights

March 24. 2010 12:35 AM

baby gifts

Thanks for sharing this and keep them coming.
<a href="http://www.babyoso.com">baby gifts</a>

baby gifts

March 26. 2010 11:13 PM

Parker Burgbacher

This is a useful piece of content, I discovered your weblog checking yahoo for a related content and arrived to this. I couldnt find to much additional material on this blog, so it was pleasant to find this one. I definitely will end up being returning to check out some other posts that you have another time.

Parker Burgbacher

March 30. 2010 06:47 PM

Rufina Geddis

I don't agree with everything in this piece of writing, but you do make some very good points. I'm very interested in this subject and I myself do alot of research as well. Either way it was a well thoughtout and nice read so I figured I would leave you a comment. Feel free to check out my website sometime and let me know what you think.

Rufina Geddis

March 31. 2010 06:54 AM

SD Payday Loans

The winners in life think constantly in terms of I can, I will, and I am.

SD Payday Loans

March 31. 2010 06:55 AM

TN Payday Loans

To succeed... You need to find something to hold on to, something to motivate you, something to inspire you

TN Payday Loans

March 31. 2010 06:55 AM

TX Payday Loans

You see things and say 'Why?'; but I dream things that never were and I say 'Why not?'

TX Payday Loans

March 31. 2010 06:55 AM

UT Payday Loans

To think creatively, we must be able to look afresh at what we normally take for granted.

UT Payday Loans

March 31. 2010 06:55 AM

VA Payday Loans

Thoughts lead on to purposes; purposes go forth in action; actions form habits; habits decide character; and character fixes our destiny.

VA Payday Loans

March 31. 2010 06:55 AM

WA Payday Loans

All successful people men and women are big dreamers. They imagine what their future could be, ideal in every respect, and then they work every day toward their distant vision, that goal or purpose.

WA Payday Loans

March 31. 2010 07:49 AM

OK Payday Loans

Winners take time to relish their work, knowing that scaling the mountain is what makes the view from the top so exhilarating.

OK Payday Loans

March 31. 2010 07:49 AM

OR Payday Loans

The only limits are, as always, those of vision.

OR Payday Loans

March 31. 2010 07:49 AM

PA Payday Loans

The ability to concentrate and to use time well is everything.

PA Payday Loans

March 31. 2010 07:50 AM

SC Payday Loans

Do not turn back when you are just at the goal.

SC Payday Loans

March 31. 2010 07:50 AM

SD Payday Loans

Twenty years from now you will be more disappointed by the things you didn't do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbour. Catch the trade winds in your sails. Explore. Dream. Discover.

SD Payday Loans

March 31. 2010 07:50 AM

TX Payday Loans

One worthwhile task carried to a successful conclusion is worth half-a-hundred half-finished tasks.

TX Payday Loans

April 15. 2010 04:25 AM

write examples

Before getting a burial insurance plan, it is important to discover what the state laws are concerning these sorts of funeral insurance policies. It's also vital to verify the license of the funeral director that your will be planning your services with. Als

write examples

April 15. 2010 03:04 PM

kapadokya

Excellent post.I want to thank you for this informative read, I really appreciate sharing this great post. Keep up your work.

kapadokya

April 15. 2010 11:43 PM

introduction write

My ONLY care is ’security.’ I studied 1 blog telling that the armed services utilizes ‘VoIP’ to code their calls in assorted methods. Even So, with VoIP being directly connected to my USB there is invariably a hazard of my computer becoming hacked and my con

introduction write

April 19. 2010 11:13 PM

Beatrice Guyll

This is a very useful post, I was looking for this information. Just so you know I located your webpage when I was researching for blogs like mine, so please check out my site sometime and leave me a comment to let me know what you think.

Beatrice Guyll

April 20. 2010 09:16 AM

Marlin Duron

Very good site, where did you come up with the information in this blog? Im glad I found it though, ill be checking back soon to see what other articles you have.

Marlin Duron

April 21. 2010 12:53 PM

Jacqualine Giles

I have read a few of the articles on your website now, and I really like your style of blogging. I added it to my favorites blog page list and will be checking back soon. Please check out my site as well and let me know what you think.

Jacqualine Giles

April 21. 2010 09:22 PM

plaka sorgulama

Thanks a lot for enjoying this beauty article with me. I am apreciating it very much! Looking forward to another great article. Good luck to the author! all the best!

plaka sorgulama

April 23. 2010 07:38 AM

rezzan kiraz

I just couldnt leave your website before saying that I really enjoyed the quality facts you provide to all your visitors. Would be back generally to check up on new stuff in you article!

rezzan kiraz

April 23. 2010 07:54 PM

fallar fal bakma

Thanks a lot for enjoying this beauty article with me. I am apreciating it very much! Looking forward to another great article. Good luck to the author! all the best!

fallar fal bakma

April 26. 2010 08:50 PM

trafik ceza sorgulama

Hello,I love reading through your blog, I wanted to leave a little comment to support you and wish you a good continuation. Wishing you the best of luck for all your blogging efforts.

trafik ceza sorgulama

April 28. 2010 08:43 AM

thy bilet fiyatları

Thank you for another great article. Where else could anyone get that kind of information in such a perfect way of writing? I have a presentation next week, and I am on the look for such information

thy bilet fiyatları

May 4. 2010 09:33 AM

bağkur borc sorgulama

This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article.

bağkur borc sorgulama

May 5. 2010 09:24 PM

sgk

I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post

sgk

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading