March 17, 2009

HTML/CSS-Only Data Pager Control

After reading these two articles I thought it would be interesting to see if I could this technique to create a HTML/CSS-only (i.e. no background images) data pager control. Here are some screen shots of what I came up with (the second and third screen shots show the roll-over states) … You can check out the live demo here.  I tried it in the major browsers (FF, Opera, IE7, Safari and Chrome) and it worked great.  Unfortunately it looks like crap in IE6 … If you didn’t know it was possible to render angled shapes using straight HTML/CSS - I recommend checking out the following articles … Using borders to produce angled shapes A Study of Regular Polygons   That’s it.  Enjoy!...

March 05, 2009

.Net Developer Survey - Results

I just closed the survey a few hours ago.  Below is a quick break-down of the results.  I plan on digging into the numbers a little bit further, but at first glance the following responses surprised me … 71.5% of responses indicated they don’t see a problem with blogging while at work.  That seemed incredibly high to me.  I would have guessed the yes/no percentages would have been flipped.  I think every boss I have ever had would have fired me on the spot if they caught me blogging at work.        45.31% of responses indicated they don’t use social bookmarking sites.  That seemed a little low. Over 75% of the responses indicated they have been at their current job for 4 years or less. I am not surprised by this, but I still think this is really high (or wish it would be lower).    Twice as many people use linkedin...

Topics: Other

March 02, 2009

.Net Developer Survey

So I recently switched jobs (again!).  And during my time off, I had an interesting conversation with a couple of colleague’s about how ‘internet social’ the average developer is and if that has anything to do with their productivity.  Our opinions varied so I thought I would ask for some help.  I came up with a survey that captures the essence of our conversation.  If you can spare a few seconds, here is the link to where you can take it –> survey. I’ll post the results in a few days … Update 3/3/2009: Getting a lot of responses (~400 completed surveys so far) – so thanks everyone.  Also, if you don’t feel like answering a question, or if it doesn’t apply, you can skip the question by clicking the next button.  Update 3/5/2009: I have received about 1,000 responses so I have decided to close the survey.  Checkout the...

Topics: Other

February 15, 2009

Is your employer OK with you keeping an up to date profile on Monster.com?

Since leaving college, I have always been pretty good at keeping my resume up to date.  This actually surprises me because I am typically prone to procrastinate on these administrative types of tasks.  But early on in my career I got in the habit of updating my resume every time I felt I reached some sort of milestone (stuff like getting a promotion, learning new technologies, annual review, etc …). I keep 2 copies of my resume.  A ‘master’ copy that I just keep adding things to (currently 8 pages), and a shorter version (2 pages) that I am continually adding and removing things from.  The short version is what I end up putting on Monster.com, Linkedin.com, and submit when applying for a job. So why am I writing about any of this?  Well, keeping my Monster and Linkedin profiles up to date was a serious point of conflict with...

Topics: Other

February 05, 2009

.NET GoogleReader API

I received some emails last night requesting the source for the console app (download here) that I am using to extract my feeds from google reader, so I figured I would write a quick post about it.  Just to be clear, as far as I know the API is still unofficial and I have no idea when or if google plans on making it public.  So it goes without saying that it could go away, or change dramatically at anytime.  But if you are still interested, here is what you need to know. The best resources I could find on how the API works are pyrfeed Google Reader API Also, there is a project setup on codeplex that is similar to what I have done.  It wasn’t exactly what I was looking for, so I passed it up, but you might also find that helpful as well. Google’s API works...

Topics: Other , Prototype

November 05, 2008

Incentives, Cheating Teachers and Suspicious DNK Accounts

Last week Steve Levitt was in Jacksonville and did a lecture of sorts at a local university.  It was really good and like his Freakonomics book, pretty darn thought provoking.  Steve's lecture consisted mostly of him telling really interesting stories, stopping to point out some of the economic principles along the way.  He only briefly touched on it in the lecture, but his book has a chapter where he talks about a group of teachers that were caught cheating in the Chicago's public school system.  Here is the abstract for a paper Steve published on the subject ... We develop an algorithm for detecting teacher cheating that combines information on unexpected test score fluctuations and suspicious patterns of answers for students in a classroom. Using data from the Chicago Public Schools, we estimate that serious cases of teacher or administrator cheating on standardized tests occur in a minimum of 4-5...

Topics: Other

October 20, 2008

Hiring and The Google Background Check

Stephen Wynkoop posted an interesting question regarding social networks last week on sswug.org.  Basically he is curious if people are using social networking sites to help make hiring decisions.  Here is what he had to say ... I had an interesting question posed today.  The gist of it was that someone was interviewing to fill a DBA position in their company.  One of the interviewees had been doing DBA work for quite some time and seemed like an interesting candidate.  The issue was that searching for this person online resulted in... nothing.  Nothing at all.  No social sites, no posts, no nothing.  Now, it's possible that it was just necessary to keep searching, but it brought up an intriguing question.  If you cannot find someone online - someone that has been working with computers - is this an issue?  If you couldn't find a single post, a single message, a...

Topics: Other

October 18, 2008

Updates to my Live Traffic Page

I made a few more modifications to the Live Traffic page I posted about previously.  Here is what I changed ... New IP to Location Database I replaced the WIPmainia database with the GeoLite City one that Richard Lawley recommended.  For some IP's it can potentially provide location information down to Region/City/Postal Code level (and its still free).  teebot raised a good question about the accuracy of these free IP to Location databases.  The GeoLite web site claims it's database is over 99.3% accurate on a country level and 76% on a city level for the US.  Not too bad ...      Using ASP.NET to Simulate a Windows Service Decoding an IP address to a location isn't an instantaneous operation.  And I have a feeling as I build out the rest dimensions for my Visit/PageView cube it would be nice to run some of the data scrubbing processes some where...

Topics: Other , jQuery

October 12, 2008

Creating a Live Traffic Page from my PageView/Visit Database

I put a screen on top of the pageview data that I recently started collecting.  Thought I would pass along some of the interesting stuff I encountered while building it ... I used the jQuery jTemplate plug-in Dave Ward blogged about to build the rows for the grid.  The data is fetched from a webservice and then sent through the jTemplate templating engine to build the markup for the rows I looked into finding a free IP to Location database that I could bounce incoming IPs against to get some high level geographic information about my visitors (I need something like this anyway for my PageView/Visit cube) Below is what the end product looks like (you can check out the live version here).  And below the screen shot is some additional information regarding the two points above.   Using jTemplate and a Webservice to Populate the Grid I used jQuery's...

Topics: Other , jQuery

October 07, 2008

v0.2 of my Visit/PageView Cube - Creating a Hierarchy for the Source Dimension

So I am still playing around with building an Analysis Services cube from the pageview data I recently started collecting.  Over this past weekend I added a hierarchy to the Source dimension of my cube that gives me a bit more insight about how visitors find their way to my site.  If you read my last post, you saw that I could view my pageview data broken down by two pretty general traffic sources: direct traffic and referring links ...   Well, now with my new hierarchy, I can not only view hit counts by direct traffic, referring site, or search engine ... ... but I can also drill into each of these sources and view my pageviews at a more granular level. I can do this because I have added a bit of preprocessing logic to my cube creation process that sends all referring urls through a very simple...

Topics: Other

September 29, 2008

v0.1 of my Visit/PageView Analysis Services Cube

So I created a cube using my the visit/pageview that I recently started collecting.  The cube is VERY simple - only 4 dimensions {App, Page, Source, Time} and just a single measure - {Hit}.  I created the cube using the 2005 versions of Visual Studio and Microsoft's Analysis Services.  The IDE's wizards pretty much walk you through the process, which is great because creating an Analysis Services project from scratch is more than a little intimidating.  Especially if your a web developer like me and you don't know a whole lot about querying, let alone designing a cube. Anyway, like I said, my cube is very simple.  The App dimension only contains 2 members: 'mattberseth' for this site, and 'mattberseth2' for my live demo site.  The Page dimension contains all of the unique URLs for both sites as its members, the Source dimension is essentially a bit field for determining...

Topics: Other

September 25, 2008

Maintaining my own Pageview/Visit Database

I have started maintaining my own pageview/visit database for both mattberseth.com (this blog) and mattberseth2.com (my demo site).   Why? I currently use Google Analytics (GA) and I really like it.  But ... You can't (yet) export your raw visit data from GA You can't (yet) browse your GA cube I have other data in my MoveableType database (post dates, categories, commentors, tracebacks, etc...) that GA just doesn't know about.  This information would be interesting to get into the cube.   What have I done so far? Added a small bit of JavaScript to the pages I want to track on on both mattberseth.com and mattberseth2.com.  The script extracts the pages referrer and a few other tokens and sends them a HttpHandler that I have setup on mattberseth2.com (hosted by DiscountASP).  Here is a sample of what is the request/response looks like. The handler extracts the tokens and any http...

Topics: Other

August 18, 2008

IE, Operation aborted and MSDN

Since writing this post on DOM manipulation about a week ago msdn has crashed on me three times with the dreaded operation aborted exception.  Following Dave Reed's comment here, it looks like this is probably occurring because the call to ASP.NET AJAX's client side initialization function is too far away from the forms closing tag - causing the Sys.Application.init event to fire before the DOM is really ready (view source on one of the pages and you will see what I am talking about). Here is an excerpt from Dave's comment: ScriptManager does not put the call to initialize in a “random” location. It is in fact, always the very last thing in the form, just before the closing form tag. There shouldn’t be anything after that (for better or for worse, form is a major part of an asp.net page), and if there is, it could only be because...

Topics: Other

August 05, 2008

When is it Safe to Modify the DOM?

This is a pretty important question when in comes to DOM programming.  Start manipulating the DOM to early and bad things happen.  Do it too late and the users may see that annoying flicker.   So what's the best technique for figuring this out?  Well, I was curious about this myself so I took a look at how some of the popular Ajax libraries (jQuery, MooTools, YUI, Prototype and ASP.NET AJAX) are doing this.  Here is what I found out ...   Update: 08/11/2008: I came across an article that sheds more light on ASP.NET AJAX's init technique.  There is a lot of good content in the comments as well (look for the ones left by Dave Reed).  Here are a few snippets of what Dave has to say ... His comments with respect to the location of where the ScriptManager injects the call to Application.initialize ... ScriptManager does not put...

Topics: ASP.NET AJAX , Other , jQuery

July 27, 2008

A Bloggers Worst Nightmare ...

Four tables in the database that drives my blog was corrupted sometime on Wednesday of last week.  And I did not have a backup.  This is my THS ...   Some Background I use Yahoo! Small Business to host my Moveable Type (MT) blog.  For the past year and a half I have not had any problems at all.  In fact, it worked so well that I did not even know that Moveable Type was storing my entries in a MySQL database.  Looking back, clearly I should have taken the time to understand how MT works, but I didn't really think it was all that important.  I am paying Yahoo! to keep an eye on that stuff - or that's what I thought I was paying for.  I mean check out the second bullet point under Reliable and secure hosting ...    Wednesday, July 23rd I get an email from...

Topics: Other

July 10, 2008

On Candor

"Thanks for being so candid" Ughh - I hate that phrase more than any other.  I hate it because it means the discussion is over and the other person has taken the easy way out of the conversation.  In case you are unfamiliar with the phrase, here are some sample usages ... Me: We need a dedicated QA staff. They: Thanks for being so candid, but blah blah blah.   Me: We need something that at least resembles requirements. They: Thanks for being so candid, but blah blah blah.   Me: Defect-free software is an unrealistic goal. They: Thanks for being so candid, but blah blah blah.   And I think its funny that people think it is a compliment.  Of course I am going to provide candid opinions - its much harder to try and lie....

Topics: Other

July 09, 2008

How I Got Started in Programming

Dave tagged me in Michael Eaton's software development meme that's being floating around.  So here we go ...    How old were you when you started programming? About 20.  I know most folks started at a much younger age but I didn't get into programming until I went off to college.  Before that I just used computers to play video games.  Choplifter for the Apple II is the first one that I can remember, but id software's Doom is the one I obsessed over.  With a weapons like the BFG and Chainsaw what's not to love?   How did you get started in programming? My wife Katie (girlfriend at the time) made me.  I was just entering my third year in college and my major was university studies.  At that point college really wasn't going too well for me.  I failed an entry level Trig class (no joke, I went the...

Topics: Other

October 03, 2007

ZIP Code Database Created from the 2000 Census Data

A few months ago, I wrote a blog entry describing how you could use ASP.NET AJAX along with the Virtual Earth Map Control to create a web based map application that locates ZIP Code boundaries by drawing a shaded region on the maps surface.  You can view the interactive demo for this here.    The number one comment I received from that post was: That's cool, but where did you get the ZIP Code dataset from? Well ...  I got this data from the U.S Census Bureau's Cartographic web site.  The site contains links that allow you to download the data files for each of the 50 states along with Puerto Rico and District of Columbia.  The data is from the 2000 census, so it is already almost eight years old.  Nevertheless it makes for a pretty good test dataset (if you need a more up to date dataset there are plently of...

Topics: Other , Virtual Earth

September 16, 2007

Notes from Mike Cohn's ScrumMaster Certification Course (Sept 11th and 12th in Orlando)

On September 11th and 12th I was in Orlando FL attending Mike Cohn's ScrumMaster Certification course.  The course consisted of two 8 hour days filled with scrum techniques and best practices.  I found the course valuable.  If you haven't met Mike Cohn, he is a high energy person that is passionate about scrum as well as software in general.  He does a good job presenting the material and makes an extra effort to tie it back to techniques you can take back to the office with you.  As a process, scrum is pretty flexible and Mike tells a number of useful stories about how successful scrum teams have adapted scrum to fit their organization's needs.  I found this useful as each organization tends to have its own unique quirks and I think it is reassuring to hear how others have adapted scrum to fit within their own organization. Going into the first day of the course, I was a little skeptical of what the value would be to...

Topics: Other

August 12, 2007

How To: Get Your ASP.NET Questions Answered Fast

Ever run into one of those really tough technical problems at work?  The type of problem that persists through hours of googling.  The kind that remains unsolved even after downloading numerous CodeProject samples?  I think every developer has been there one time or another.  It comes with the territory, but there is a solution: Microsoft's MSDN Forum Website.  The MSDN Forums are patrolled around the clock by some of the most talented technical people in the industry.  If anyone is going to be able to help you solve your problem, it is one of these people.  The trick is that you need to craft your question in such a manner that it is appealing to answer.  If want your question answered first you need to make it stand out.  What makes a post attractive to other developers?  CODE SAMPLES!  Shame on you if you answered that incorrectly.  At some level, forum threads are similar...

Topics: ASP.NET , General .Net , Other


Consulting Services

Yep - I also offer consulting services. And heck, I'll do just about anything. If you enjoy my blog just drop me an email describing the work you need done.

Recent Comments

  • TimothyP wrote: I work with tons of developers who haven't even got a clue what Twitter of Facebook is. In fact, it'...
  • Janko wrote: Yes it's strange that people think it's ok to blog at work but consider unethical to use facebook. P...
  • Kam Lagan wrote: Hi Matt, The numbers do seem a little "off" to what you perceived the community would be like. But...
  • Siderite wrote: You're kidding me! So the people that don't blog think it is ok to blog at work (maybe because they ...
  • Guy Harwood wrote: Good to see the results. one typo.... 'What best describes your current job title?' appears twice,...
  • sirrocco wrote: One problem with : DEV I DEV II DEV III was that I didn't know what it meant :( .(is it common ...
  • Jack wrote: How many person fill the survery? Blog is very common, so I don't think 71.5% is high. Maybe our bos...
  • Andy wrote: Done. The developer1, developer2 question - not sure how meaningful the results are going to be for ...