Many thanks to Jim over at www.stlrecruiting.com, yesterday he called me up for a quick interview and today he posts an article about me!
If you're looking for my Technical posts, check out my blog at http://weblogs.asp.net/christoc/. Just heads up though, for any posts you find that may seem odd ;), I use my blogs to do a lot of SEO work, so some posts may not seem to fit, but they all have a...
There's only a few days left to vote for the DNN BOF Session at TechEd 2006. Be sure to get your votes...
Community Server can be a pretty powerful tool if you take your time to setup a decent site for your users.
Here are a few tweaks I've made to SCCAForums.com to make it a bit more user friendly.
On the home page there are sections for active, unanswer, and my posts(if logged in). These controls don't provide much information to the user though, by default only a link and portion of the subject of a forum post.
On SCCA Forums I've setup the controls to display the user who made the last post, link directly to the last post rather than the first post, and also display and link to the particular forum that the post was made in.
To do this you need to add the following script to your default.aspx page.
<script language="C#" runat="server">
int getPageNumber(int replies) { int page = 1; if (replies > 14) { page = 1 + replies /15; } return page; }</script>
You also need to change the ItemTemplate section of the ThreadRepeater controls to look like the following
<ItemTemplate> <div class="CommonSidebarContentItem"> <strong><a href="<%# ForumUrls.Instance().PostPaged((int) DataBinder.Eval(Container.DataItem, "MostRecentPostID"), getPageNumber((int)DataBinder.Eval(Container.DataItem, "replies")))%>"><%# DataBinder.Eval(Container.DataItem, "Subject").ToString() %></a></strong> - <%# DataBinder.Eval(Container.DataItem, "MostRecentPostAuthor") %> (<a href="<%# ForumUrls.Instance().Forum( ((Thread) Container.DataItem).SectionID ) %>"><%# DataBinder.Eval(Container.DataItem, "Forum.Name") %></a>) </div></ItemTemplate>
More tweaks to come....
I just went through and enabled HTTP Compression for the server that ChrisHammond.com, Solo2.org, and various other websites run on. Now, I can't tell if the difference is noticable, or if I just think it's noticable? hmmm
Followed the instructions in this article for setting up HTTP Compression on IIS...
If you're looking for the MHCC, Maryland Heights Chamber of Commerce then you should check out http://www.mhcc.com/. This is one of our client sites here at...
Just archiving a link for me to read...
Just a quick post to aid in a little bit of search indexing for...
I implemented a version of Google Maps with SCCAForums.com, which runs on the CommunityServer platform. If any businesses are interested in this coalition of two products please contact me for further information. I'm readily available for consulting work for...
Found a couple of reviews popping up for DNN vs Sharepoint.
Check them out if you're looking for some good...
Google even tells me so!
http://www.google.com/search?hl=en&q=excellent+programmer <--currently 5th on the search results for excellent programmer.
I will be number one, I will be the most excellent programmer of them...
It looks like I (Chris Hammond) am back with the Cincinnati Reds again!
I still have some of the Chris Hammond rookie cards from when he started with the league, with the Reds. For more information on Chris Hammond the pitcher, check out...
Are you looking for an Excellent Programmer? You've found him! If you're looking for mad programming skills from an excellent person, you've come to the right place!
(inside...
I've been here in Lexington, Kentucky for the past 4 days. I was fortunate enough to meet two of the brightest minds in the industry! Also, I can't forget Chad Hobson (checkout that killer site, what mad skillz).
Anyways, back to the brightest minds. I got to meet Shaun Walker, founder of DotNetNuke, and Scott Willhite, one of the Board members for DotNetNuke. I of course got them to sign my DotNetNuke book while they were...
Sometimes, it's great to get to work with the best minds in the business and see how they work! I do lead a very good...
Lost is back! Thank goodness for the Tivo! I didn't realize it was starting back up tonight, but Tivo saved the day. I was at our DotNetNuke meeting tonight during the time Lost was...
Bill Gates' webcast is still on for his Keynote at CES in Las Vegas today.
So far they're just discussing Windows Vista, which I expected. I read a rumor online that they may announce an HD-DVD upgrade for 360s, it looks like that was just a rumor.
Sure I'm excited about Vista, but who really cares until it's available? I try a beta on a test machine sometime in the next few weeks, but honestly, I'm a what can you give me now kind of tech guy.
Hmmm, they made some sort of preview of MS Flight Sim, but of course my SBC DSL dropped the connection during that outage.
update: looks like Bill just announced the new Treo Smartphone is selling tomorrow. I don't know if that was announced previously.
update2: Awesome news! Directv and MS partnership! Media center is going to rock once you have Directv access as well!
update3: Xbox360 update coming shortly!
update4: third manufacturering partner announced for the 360.
update 5: external HD DVD announced for xbox...
So I needed to modify the way the controls on the right of the homepage were showing up. So they linked to the latest post, showed the author, and the forum that they were posted in. Here's how I did it for www.sccaforums.com, which is using 2.0
Near the top of your default.aspx page add
int getPageNumber(int replies) { int page = 1; if (replies > 15) { page = 1 + replies /15; } return page; } int getPageNumber(int replies) { int page = 1; if (replies > 15) { page = 1 + replies /15; } return page; }
<script language="C#" runat="server">
int getPageNumber(int replies) { int page = 1; if (replies > 15) { page = 1 + replies /15; } return page; }</script>
And then on the controls use the following to display all the information I was looking for. Just after
<ItemTemplate> <div class="CommonSidebarContentItem">
insert
<strong><a href="<%# ForumUrls.Instance().PostPaged((int) DataBinder.Eval(Container.DataItem, "MostRecentPostID"), getPageNumber((int)DataBinder.Eval(Container.DataItem, "replies")))%>"><%# DataBinder.Eval(Container.DataItem, "Subject").ToString() %></a></strong>- <strong><%# DataBinder.Eval(Container.DataItem, "MostRecentPostAuthor") %></strong><br><a href="<%# ForumUrls.Instance().Forum( ((Thread) Container.DataItem).SectionID ) %>"><%# DataBinder.Eval(Container.DataItem, "Forum.Name") %> </a>
This is all pretty similiar to the "latest post control" I released for 1.1, but some of the functions changed locations so that control no longer works without...
The first St. louis DotNetNuke User's Group Meeting will be held on December 8th, 2005.
Be sure to check out DnNUG.com for more...
I successfully upgraded Solo2.org last night/this morning to run on Community Server
Now to skin the site so it's "original" and get some of the little kinks worked...
I decided today was the day to Upgrade Solo2.org.
I'm upgrading the software to run on CommunityServer 2.0 Beta 1. Here's to hoping the beta is at least semi stable! I've got all of the posts up through 9am downloaded and imported into a DB, now I'm working on converting them into a good CS format so I can get the site up and running tonight. I'm converting from a DNN/Ubb.Classic website to run Solo2.org fully out of...
Thanks to Jakob for letting me know I forgot to transfer over the downloads folder from the old website to the new! You should be able to download my CS Controls...
So I finally converted ChrisHammond.com from .Text and nGallery to the latest released version of CommunityServer. It didn't go over without a few hitches. The biggest problem I had was that the old links wouldn't work for the website, so all of the previously indexed pages for the website would be invalid, I'll document how I upgraded, and what I did to fix the issues in this thread, it's a work in progress.
Setup a blank CS 1.0 database and installation site.
Use the DotText to CommunityServer conversion tool
Create a new Gallery in CommunityServer for the following step.
Use the nGallery to CommunityServer Conversion tool.
Upgraded from CS1.0 to CS1.1
Used the siteUrl configuration tool from Ken.
I setup single site with a single blog in the /blogs/ URL and multiple galleries.
Modified the siteurl.config file.
I had to add the following lines to the siteurl.config file to get the old archive links working properly.
<url name = "oldweblogIndividualRss" location = "common" path="rss.aspx" pattern="rss.aspx" vanity="/blogs/rss.aspx?App=christoc" /> <url name = "oldweblogday" location = "common" path="/archive/{1}/{2}/{3}.aspx" pattern="archive/(\d{4})/(\d{1,2})/(\d{1,2})\.aspx" vanity="/blogs/day.aspx?App=christoc&y=$1&m=$2&d=$3" /> <url name = "oldweblogmonth" location = "common" path="/archive/{1}/{2}.aspx" pattern="archive/(\d{4})/(\d{1,2})\.aspx" vanity="/blogs/month.aspx?App=christoc&y=$1&m=$2&d=1" /> <url name = "oldweblogpostId" location = "common" path="/archive/{1}/{2}/{3}/{4}.aspx" pattern="archive/(\d{4})/(\d{1,2})/(\d{1,2})/(\d+)\.aspx" vanity="/blogs/post.aspx?App=christoc&y=$1&m=$2&d=$3&PostID=$4" /> <url name = "oldweblogpostcategory" location = "common" path="/archive/category/{1}.aspx" pattern="archive/category/(\d+)\.aspx" vanity="/blogs/postcategory.aspx?App=christoc&CT=BlogPost&CategoryID=$1" /> <url name = "oldweblogarticlecategory" location = "common" path="/articles/category/{1}.aspx" pattern="articles/category/(\d+)\.aspx" vanity="/blogs/articlecategory.aspx?App=christoc&CT=BlogArticle&CategoryID=$1"...
Working on a customized version of the registration pages for dotnetnuke I needed a good regular expression to validate international phone numbers.
I ended up adding this line to my “register.aspx” page.
<asp:regularexpressionvalidator id="valTelephone2" runat="server" cssclass="NormalRed" display="Dynamic" errormessage="<br>Office Phone Must be Valid." controltovalidate="txtTelephone" resourcekey="valTelephone2" validationexpression="^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$"></asp:regularexpressionvalidator>
This requires no actual code behind changes, though I would recommend adding the proper information to your local resource file for language...
I've upgraded SoloPerformance.com.com to dotnetnuke 3.1.1 and put a new version of the DnnCart sofware up there as well.
The latest version of DnnCart has more friendly url changes, and is building links with friendly URLs using Category Names and Product names, which would help to increase our search...
http://weblogs.asp.net/christoc/archive/2005/08/24/423620.aspx
So here's how the story goes. Back in May I signed up to take the exam 70-315 (Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET), I signed up for a test date in July. I had never taken an MS exam, or even looked at a sample question, so I posted the following thread.
http://weblogs.asp.net/christoc/archive/2005/06/28/416289.aspx
While there were some good sugggestions, I ended up postponing my test date to 8/23 because work was extremely busy (still is) and I hadn't prepared for the test at all. Fast forward to 8/22 at 9pm. I leave the St. Louis Indigo Road show, and look down at my phone, I get a notification that I have an appt the following day, my C# test at 1pm. Oh crap, that's right, I completely forgot about it. I had intended to reschedule again because of the major projects at work, but it was now too late.
I emailed my boss, told him I'd f'd up, was going to fail this test if I even went to take it, not knowing if I'd be able to even go due to the work load right now. I called the proctor for the test, he said I could come in anytime before 5pm, so I could make it to the 1:30pm meeting at a client site that had been scheduled at 11am that morning. I went from the client site, still, having not prepared, with no clue what I was about to get into.
I got there at 3pm, and had 2 hours to take the test. 59 minutes later I was done. I thought, oh well, good practice at least, and I'd get to use the free retake of the test that MS had been offering when I signed up.
I pressed done, and boom, "Congratulations you've passed!" Needless to say, I was a bit suprised, but stoked none the less.
So, 1 test down, 2-4 more to go. Now, I think I'll definitely study for the test of...