A .NET Server Control for Imaging (Part I)

When I designed Structure Too Big, I knew that an image control would be necessary. I've got hundreds of photos, artwork, etc., and back when I was doing my first web sites (circa 1995), I'd need to bring each photo into an editor, crop it correctly, place a drop shadow, etc. Even with batch processing, it's a pain and frankly not very cool. This time around, I wanted the web site, as an application, handle all of this for me. The first step in doing this was to handle image resizing dynamically. In an... [More]

I Love FireFox

Firefox is awesome. Recently there have a been a ton of articles in the press about browser vulnerabilities (namely against IE, but some against Mozilla and Firefox, too). The thing is, at least Firefox is still in beta. IE, while I still like it, is at version 6 -- eloquently put in Mike's blog (here). Why Firefox is the cat's pajamas: 1. Tabbed browsing. 2. Extensions like User Agent Switcher and Web Developer. Check them out, it's amazing. There are hundreds of these extensions. Why it's not ev... [More]

MyPopWatcher and Delegate Fun

Sometimes I'm like a kid in a candy store when I realize just how easy some tasks are in VS.NET (2003). Not everything in VS.NET is fun and games: my event handlers are frequently blown away (see this thread -- one of many sightings of this bug). But today's goodness shows how easy it is to make asynchronous web service calls from within an application. Strangely, I've never had to do this until programming the MyPopWatcher example (here) -- but I guess it's not that strange since, in a web environmen... [More]

MyPopchecker.com and MyPopInfo Launched

OK! At long last I finally converted the old "Popchecker" ASP site. I rewrote the entire site in C#. What is it? It's a web site that allows you to register a username and password, and then link as many POP3 accounts as you'd like to your single main account. When you log in, the application aggregates your mail and displays it all. I had a similar application written a number of years ago using VBScript/COM as an ASP application, but this time, it's rewritten completely. 100% managed code. The goo... [More]

Cable and Customer Service

Is it really that difficult for cable companies to offer good customer service? OK, I know, it's an oxymoron. But seriously, I think I was spoiled by Optimum Online in New York and Connecticut when they had only mandated a 4 hour block of your life, and every single time showed up straight away -- or, get this -- called and asked if they could come early. So, I'm going to share this story of comedic ineptitude offered by Northland Cable in Sandpoint. Here's the breakdown of events: 1. Cable modem serv... [More]

ASP.NET Annoyances with Dynamic Controls

I really DO like ASP.NET ... but there are a few things that have really been driving me nuts. In this case, it's creating dynamic controls. I'm currently building a web application to check email accounts. Each message generates a new checkbox dynamically, allowing the user to delete the message. The first limitation of dynamically created controls in this context is that they must be created in the Page_Load or On_Init events to participate in viewstate. That makes sense, or at least is reasonable; t... [More]

Search for Data in SQL/C#

I wanted to implement a blog search function ... not because I thought I had so much content, but simply because of the cool factor of having the functionality. I started to think about the ways to do this. The most robust that came to mind is creating a full text index on the blog tables. I really didn't want to do this, though. Frankly, a full text index for this type of thing is a bit of an overkill. They really shine for proximity and inflection searches on a lot of data. Take my employer's catalo... [More]

Random Rows in SQL (Part II)

Where I last left off we were discussing a fairly simple way of selecting a random row from a table. A more complicated method is to essentially not assume a 1..rowcount identity. What we can do is build a temp table of identities and select from it: declare @foo table (     fooId int identity(1,1),     quoId int ) INSERT @foo (     quoId ) SELECT quoId FROM quotes_quo DECLARE @count int DECLARE @rand int SET @count = (SELECT count(1) from ... [More]

Random Rows in SQL (Part I)

So here's the situation: I have a table with n rows, and I want to select a random row. This one, at least superficially, may seem pretty easy, but I quickly realized there was a bit more to this than meets the eye. In this case, I was writing a quick query that displays the random quote you see under the left nav bar of my site. I realized there are actually quite a few ways to tackle this; and like many solutions, there's isn't one best answer. It kind of depends on what you need. So my thought proc... [More]

Structure Too Big?

Unless you're one of about 8 people, this meaning of this site's name may need a bit of explaining. Even if you are one of these lucky 8 people, you may need your memory jarred. Story aside, I just like the name. Maybe the site is just too big; it seems to fit with the Inukshuk logo. But the story, to the best of my recollection, is this: Over 15 years ago, I was taking an AP Pascal Programming class in high school. I have a new appreciation for the laptop I write this on as I recall the machines we u... [More]

My Apps

Dark Skies Astrophotography Journal Vol 1 Explore The Moon
Mars Explorer Moons of Jupiter Messier Object Explorer
Brew Finder Earthquake Explorer Venus Explorer  

My Worldmap

Month List