August 2004 - Posts
The other day I blogged about a tribe of indians in south american called the Piraha. Amazingly I hadn't gotten responses whatsoever. I sure hope I didn't lose the faithful 5 people that read my blog. =)
Here is an actual working link this time that does not require registration.
So I heard somewhere that it is better/faster to do the following...
override protected OnLoad(System.EventArgs e)
this.Load += new System.EventHandler(this.Page_Load);
private void Page_Load(object sender, System.EventArgs e)
I guess it has to do with the overhead of attaching an event handler to the class, anyone else doing this?
There are by some estimates more than a million weblogs. But most of them get no visibility in search engines. Only a few "A-List" blogs get into the top search engine results for a given topic, while the majority of blogs just don't get noticed. The reason is that the smaller blogs don't have enough links pointing to them. But this posting could solve that. Let's help the smaller blogs get more visibility!
This posting is GoMeme 4.0. It is part of an experiment to see if we can create a blog posting that helps 1000's of blogs get higher rankings in Google. So far we have tried 3 earlier variations. Our first test, GoMeme 1.0, spread to nearly 740 blogs in 2.5 days. This new version 4.0 is shorter, simpler, and fits more easily into your blog.
Why are we doing this? We want to help thousands of blogs get more visibility in Google and other search engines. How does it work? Just follow the instructions below to re-post this meme in your blog and add your URL to the end of the Path List below. As the meme spreads onwards from your blog, so will your URL. Later, when your blog is indexed by search engines, they will see the links pointing to your blog from all the downstream blogs that got this via you, which will cause them to rank your blog higher in search results. Everyone in the Path List below benefits in a similar way as this meme spreads. Try it!
Instructions: Just copy this entire post and paste it into your blog. Then add your URL to the end of the path list below, and pass it on! (Make sure you add your URLs as live links or HTML code to the Path List below.)
1. Minding the Planet
2. Luke Hutteman's public virtual MemoryStream
3. JayBaz_MS blog
4. MSCorEE : IScalable
5. (your URL goes here! But first, please copy this line and move it down to the next line for the next person).
(NOTE: Be sure you paste live links for the Path List or use HTML code.)
Has anyone ever used this control? If so have you ever handled the selection of a Node and maintained expansion state across a postback? I have been unable to make this work and I have not located any help via Google.
If anyone has worked with this, shoot me a comment, I'd love to get your thoughts.
So the past 3 days I have been bickering online with Frans and Thomas. Last night I was in a car accident. Today continuing the argument with them seems like a total waste of time.
I was rear ended by a Chevy 2500 Suburban after coming to a complete stop in the HOV lane (another accident ahead of us caused some hard braking). After the Chevy hit us, we were knocked into another traffic lane where an 18 Wheeler's back wheels ran over the front passenger side of my car. I was then knocked back into the HOV lane and ran into the car that was initially in front of me. Amazingly, Everyone in the accident was ok, my dad (who was riding shotgun) and I walked away from the accident unharmed (pretty much).
Really puts things in perspective.
Thomas from Thona Consulting asserted that I was racist in this comment. While I disagree with this wholeheartedly, it got me thinking. The whole "discussion" was prompted by my observation that Thomas didn't write well formed english in some of his posts. Is it racist to assume that if someone is communicating in an english speaking forum on an english speaking site, that they be able to form intelligible sentences? Is it racist if I don't even know what race Thomas is? I could understand preferentialism maybe, but not racism.
Being of mixed decent myself (Mexican, Irish, and english) I have found it difficult to judge people based totally on their race. I will fully admit that I have played into stereotypes in the past, and I probably will continue to do so in the future, but I realize it is a weakness of mine.
He went on to make the further observation that I am yet another arrogant American <expletive> so I guess I can take comfort in the fact that I am not alone.
I was introduced to this post on the ASP.NET Forums...http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=651804. Eric has since posted about it on his blog as well...http://weblogs.asp.net/ericjsmith/archive/2004/08/10/211944.aspx
I don't understand why 2 people in this community feel the need to smother everyone with their opinions about Runtime O/R Mapping tools. I think O/R Mappers have their place. I have always admitted that. What I will not concede to is a blanket statement that CodeSmith is somehow inferior to these tools.
CodeSmith isn't an O/R Mapper. It is a template based code generation tool. CodeSmith is a tool than can be gradually implemented into any architecture or framework. We initially used it only for generating strongly typed collections. Once we saw the power of it, we begain implementing it in other areas. O/R Mappers tend to be an all or nothing solution. Some of them can also be somewhat intrusive requiring you to inherit from base classes or decorate classes with attributes. With CodeSmith you do have to write your own code at least once. You can write 1 perfect class and use the common code as your template.
CodeSmith can be used by anyone from beginner to advanced. Beginners can start small and gradually build up. Advanced users will want to implement their own frameworks and architectures using CodeSmith. O/R Mappers are great if you dont want to invest the time to build an architecture or don't have the skill to do so. As Paul Wilson put it, its a classic “build or buy” scenario. CodeSmith is a build solution. You will have to invest time and effort in building an architecture.
Another great thing about CodeSmith is that with templates we have been able to build production ready prototypes of applications in a matter of minutes. We can create a data model based on our standards and have a completely working CRUD app within minutes. The greatest thing about the prototype is that the code is production ready. Our templates allow us a certain confidence about our prototype applications. This is very valuable to management.
CodeSmith is more than just a code generator. CodeSmith can be used to generate anything that is ASCII based and repetitive in nature . Take for example batch execution of DDL scripts via isqlw.exe. For 200 tables that would be alot of cutting and pasting. Shannon (still blogless) wrote a template to loop all of the tables in a database and generate the command line statement for executing a sql script.
I am defintely a CodeSmith bigot, but I understand that there are other solutions. An O/R Mapper may be the best way for you to go in a particular situation. I prefer more control over my environment.
Overall I think the presentation went really well. Shannon and I felt it wasn't our best performance, but we think we were able to appropriately demonstrate just how powerful CodeSmith can be. Eric has already linked to the presentation from his blog, but here is the link for you faithful 5 that look at my blog. =)
Shannon Davidson (remains blogless) and I will be presenting on the wonders of CodeSmith tomorrow night at the Plano .Net Users Group. We have been looking forward to this one for quite awhile. We have been doing the rounds in Dallas/Fort Worth, but I think we are finding out “presenting center.” If you can stomach the sight of Shannon and the sound of my voice stop by and check it out.
Thanks to Eric J. Smith for reminding me again that we have a presentaton to do!
Eric is handing out free copies of CodeSmith for anyone that shows up and trust me when I tell you its worth far more than the $80 bucks he normally charges.