Some Classic ASP in VBScript and SQL Server tips, flavored with rhetorical rants, commentary and other useless blather.
Monday, September 24, 2007
Wednesday, September 19, 2007
Muay Thai Developer
Muay Thai is also called Thai boxing. Much like kickboxing, except the knees and elbows are used as well. It's a very aggressive sport. I've been training for a little over three months in it, so yes, I am the actual Muay Thai Developer.
I was in a meeting yesterday and very bored, so I sketched out this comic. When I got home, I fired up Photoshop drew it.
I was in a meeting yesterday and very bored, so I sketched out this comic. When I got home, I fired up Photoshop drew it.
Labels:
humor
Tuesday, September 18, 2007
So we're using Agile Development, right?
So the other day I'm sitting there, doing Software Engineering Manager things, when along comes one of the ladder rungs above me.
"Got a sec?"
I immediately raise my shields. Not much good has ever come from one of the higher rungs seeking to speak directly with me, or, heaven forbid, and actual developer. It usually meant the rung has just finished reading some industry article and has a brain stuffed full of 'best practices' and 'industry standards' which they now want to 'leverage'.
I sigh without trying to look like I'm sighing and turn away from the WAR (weekly activity report) I was putting together. "Sure."
"What's our development model?"
Ouch. Even worse than I though. Beyond tech and into processes.... I begin formulating an answer that won't make more work for me or my team.
He continues. "I just got this call from [corporate HQ] and he said all our competitors are using Agile development. He wants to know if we are too."
I shake my head regretfully and with great sorrow. "Our official process is about as far from Agile as you can get. Officially, our documented process is Waterfall, except that we skip the design and verification steps."
He looks disturbed. Obviously not the answer he wanted. "Really?"
I continue, relishing his discomfort while I can, because in the end, I'll have to give him an answer that makes him, and corporate happy; it's the only answer he will accept. Trying to lead him to the truth is, ultimately, pointless. But I can have fun making him step in some dog-doo on the journey.
"See, in Agile, you foster a cooperative relationship with the customer. The developers work directly with them to build functionality as required in quick, modular releases." He nods like he understands what I'm saying.
"But we don't do that. We make the customer submit a requirement. Then our requirements section looks at it and decides if it's valid."
More nods.
"If it is, then they validate it and pass it on to System Engineering."
More nods.
"System Engineering looks it over and then passes it to Project Management. Project Management assigns a Project Manager and then passes it to us."
More nods.
"I grab one of the developers and we call the customer and schedule a review."
I wait for him to ask why the PM doesn't do this, but he doesn't, so I continue.
"At that meeting, we take their initial requirement and begin fashioning a v-1 functional requirements document based on their immediate need."
I wait for him to ask why the requirements section doesn't do this, but he doesn't, so, I continue.
"It takes a few meetings, but we eventually complete the FRD and come up with a tentative delivery schedule."
I wait for him to ask why the PM doesn't do this, but he doesn't, so I continue.
"I pass that schedule back to the PMs."
"And then?"
"Well, then we build it. We schedule milestone reviews for the customer to look at sandbox installs as we complete the various modules. If they need changes, they can let us know right then and we can work that in for the next milestone. Along the way, we keep a test install up and running so the customer can review it."
I wait for him to ask why Systems Engineering doesn't do this, but he doesn't, so I continue.
"If there are changed to the schedule, we coordinate with the customer and pass that back to the PMs. Once we get acceptance, we deploy it to the operational network."
I again wait for him to ask why Systems Engineering doesn't do this, but he doesn't. Instead he asks, "So that's Waterfall?"
"No, I said our official process was Waterfall. What we actually end up using is closest to Iterative."
Fear shines in his eyes. "So what should I tell HQ?"
Well, I've had my fun.... "Tell them we're using the Iterative model, which is just like Agile only better because we satisfy more of the user's requirements with the first release."
He beams and goes away happy. He'll probably get a raise. Isn't software development grand?
"Got a sec?"
I immediately raise my shields. Not much good has ever come from one of the higher rungs seeking to speak directly with me, or, heaven forbid, and actual developer. It usually meant the rung has just finished reading some industry article and has a brain stuffed full of 'best practices' and 'industry standards' which they now want to 'leverage'.
I sigh without trying to look like I'm sighing and turn away from the WAR (weekly activity report) I was putting together. "Sure."
"What's our development model?"
Ouch. Even worse than I though. Beyond tech and into processes.... I begin formulating an answer that won't make more work for me or my team.
He continues. "I just got this call from [corporate HQ] and he said all our competitors are using Agile development. He wants to know if we are too."
I shake my head regretfully and with great sorrow. "Our official process is about as far from Agile as you can get. Officially, our documented process is Waterfall, except that we skip the design and verification steps."
He looks disturbed. Obviously not the answer he wanted. "Really?"
I continue, relishing his discomfort while I can, because in the end, I'll have to give him an answer that makes him, and corporate happy; it's the only answer he will accept. Trying to lead him to the truth is, ultimately, pointless. But I can have fun making him step in some dog-doo on the journey.
"See, in Agile, you foster a cooperative relationship with the customer. The developers work directly with them to build functionality as required in quick, modular releases." He nods like he understands what I'm saying.
"But we don't do that. We make the customer submit a requirement. Then our requirements section looks at it and decides if it's valid."
More nods.
"If it is, then they validate it and pass it on to System Engineering."
More nods.
"System Engineering looks it over and then passes it to Project Management. Project Management assigns a Project Manager and then passes it to us."
More nods.
"I grab one of the developers and we call the customer and schedule a review."
I wait for him to ask why the PM doesn't do this, but he doesn't, so I continue.
"At that meeting, we take their initial requirement and begin fashioning a v-1 functional requirements document based on their immediate need."
I wait for him to ask why the requirements section doesn't do this, but he doesn't, so, I continue.
"It takes a few meetings, but we eventually complete the FRD and come up with a tentative delivery schedule."
I wait for him to ask why the PM doesn't do this, but he doesn't, so I continue.
"I pass that schedule back to the PMs."
"And then?"
"Well, then we build it. We schedule milestone reviews for the customer to look at sandbox installs as we complete the various modules. If they need changes, they can let us know right then and we can work that in for the next milestone. Along the way, we keep a test install up and running so the customer can review it."
I wait for him to ask why Systems Engineering doesn't do this, but he doesn't, so I continue.
"If there are changed to the schedule, we coordinate with the customer and pass that back to the PMs. Once we get acceptance, we deploy it to the operational network."
I again wait for him to ask why Systems Engineering doesn't do this, but he doesn't. Instead he asks, "So that's Waterfall?"
"No, I said our official process was Waterfall. What we actually end up using is closest to Iterative."
Fear shines in his eyes. "So what should I tell HQ?"
Well, I've had my fun.... "Tell them we're using the Iterative model, which is just like Agile only better because we satisfy more of the user's requirements with the first release."
He beams and goes away happy. He'll probably get a raise. Isn't software development grand?
Thursday, September 13, 2007
My Newest Web Site: Tizags, a Social Bookmarking site
Social bookmarking is system where users store links to web pages that they find useful or interesting. These links are accessible to the public or a specific network, and other people with similar interests can view the links by category, tags, or even randomly. Popular Social bookmarking sites include reddit, Digg, Newsvine, and Del.icio.us.
I don't much use the others, but I visit reddit a few times a day to see what interesting sites other people are finding out. I like reddit, but there were two main things that bugged me:
1. Their search didn't work worth a crap
2. You couldn't tag your entries; you were forced to select from their very limited list of sub-reddits if you want to try to add any classification to you submission.
So, like most egotistical developers, I decided to build my own social bookmarking site that had the features I wanted, looked the way I wanted, and worked the way I wanted. The result is Tizags.
Tizags is pretty much like any other social bookmarking site, except, of course, that I built it.
Tizags in a nutshell:
I made the site live on Friday, 7 Sep. Go check it out, tell all your friends, your enemies, the world!
Tizags Social Bookmarking
I don't much use the others, but I visit reddit a few times a day to see what interesting sites other people are finding out. I like reddit, but there were two main things that bugged me:
1. Their search didn't work worth a crap
2. You couldn't tag your entries; you were forced to select from their very limited list of sub-reddits if you want to try to add any classification to you submission.
So, like most egotistical developers, I decided to build my own social bookmarking site that had the features I wanted, looked the way I wanted, and worked the way I wanted. The result is Tizags.
Tizags is pretty much like any other social bookmarking site, except, of course, that I built it.
Tizags in a nutshell:
- Registered users can submit links to interesting pages or sites
- Outbound links are direct, no 'nofollow'
- Tag based classification
- A WORKING search (hear that reddit fans?)
- Positive or negative filter by tags or user
- Super double secret probation algo that keeps new links on the front page long enough for them to be seen (unlike reddit and digg where down voters can keep your link from ever even showing up!)
- Report feature for inappropriate links
- Save Links
- Add Friends
- Easily filter out links, link tags, or links by users
I made the site live on Friday, 7 Sep. Go check it out, tell all your friends, your enemies, the world!
Tizags Social Bookmarking
Labels:
tizags
How You Know When You're Dealing with Technically Ignorant People
In the real world, I work as a software engineering manager. As high falutin' as that sounds, I'm really only one rung up from the bottom, the bottom being the software engineers themselves. Above me are four levels of local leadership and then 3 or 4 more off at corporate HQ. My immediate boss is at least technically conversant, in that you can say something technical to him and he probably knows what it means, even if he doesn't fully understand it or would be able to act on it. Once you get past him, however, the technical fluency drops as quickly as the salary goes up.
Being the SEM, I'm in meetings frequently, usually local with the next rung or three, occasionally a few rungs past that, and every now and then with the remote rungs from HQ. I was in one such meeting the other day, and growing bored with the the self-congratulatory way they were slinging around industry buzzwords, I began to keep a list every time some rung spouted some bit of nonsense or another.
So here's the list. When you hear any of the following phrases, you know you're listening to technically incompetent and ignorant people:
Being the SEM, I'm in meetings frequently, usually local with the next rung or three, occasionally a few rungs past that, and every now and then with the remote rungs from HQ. I was in one such meeting the other day, and growing bored with the the self-congratulatory way they were slinging around industry buzzwords, I began to keep a list every time some rung spouted some bit of nonsense or another.
So here's the list. When you hear any of the following phrases, you know you're listening to technically incompetent and ignorant people:
- "Knowledge driven enterprise" - I preference ignorance driven enterprises myself, makes me look smarter
- The word "leverage" in combination with anything (examples: "leverage our legacy systems", "leverage the data", "leverage our core competencies", "leverage our leverage", etc....)
- "Real world needs" - as opposed to imaginary world needs?
- "Share across the enterprise" - the enterprise again? Anyway, give me a good, old-fashioned stovepipe app any day, job security doncha' know. This isn't kindergarten, we don't share
- "Maximize the workflow/our processes/our data/ etc..." - need I say more
- "Proof of concept" - this means hiring someone outside the organization and paying them a ton of money to tell you how great your idea is
- "Enterprise change" - I'm getting tired of the word enterprise, and, anyway, don't we fear change? Besides, I LIKE the enterprise just the way it is
- "Marry the datasets" - That means taking two stovepipe applications you paid a ton of money for that do pretty much the same thing and spending a ton of money to build something new that does the same thing the two apps you just replaced did. And what if the datasets or the same gender? Then we have to do the development in Massachusetts....
Labels:
humor
Thursday, August 02, 2007
How to Position a DIV at the Bottom of the Page
Most web sites have a footer - a section at the bootom of every page that contains links, copyright, maybe the dat, and other info. In a tableless design, putting this footer at the bottom is not a problem if the content of the page is longer than the page itself, but what about when you have a short content page, like a contact form or something?
In such a case, if you're using a tabless design and positioning DIVs using CSS, the footer will ride up right under the short content instead of being at the bottom of the page.
On a new site I'm working on, I ran into this. Rather than resort to the old stanrd of using a three row table, I want to position my footer using CSS only.
You can read the full post by following the the link in this post's title, but here's the code to position a DIV at the bottom of a page, regardless of how long the page content is (I've checked it in IE 6 and FF 1.5).
The CSS styles:
In such a case, if you're using a tabless design and positioning DIVs using CSS, the footer will ride up right under the short content instead of being at the bottom of the page.
On a new site I'm working on, I ran into this. Rather than resort to the old stanrd of using a three row table, I want to position my footer using CSS only.
You can read the full post by following the the link in this post's title, but here's the code to position a DIV at the bottom of a page, regardless of how long the page content is (I've checked it in IE 6 and FF 1.5).
The CSS styles:
html {height: 100%;}
body {height: 100%;}
#nonFooter {position: relative;min-height: 100%;}
* html #nonFooter {height: 100%;}
#footer {position: relative;margin-top: -7.5em;}The HTML:<html>
<body>
<div id="nonFooter">
main content
</div>
<div id="footer">
footer content
</div>
</body>
</html>
Labels:
css
Thursday, July 12, 2007
How to Stop a Framebreaker Script
OK, let's say you found a page and, being the good Netizen you are, you want to share the page with the audience of YOUR web site.
Like any good webmaster, you dutifully employ an iframe, with the source being the URL of the page you want to share. Alas, when you load your page, the screen refreshes and you're taken away from your site to the page you're trying to load into the iframe.
You've just been framebusted.
Framebreaker scripts are very common. Webmasters employ them to keep OTHER webmasters from re-presenting their content in another site. But for every action, there's an equal and opposite reaction.
The next time you want to load remote content into an iframe on your site, try:
The attribute doesn't work in non-IE browsers however. Javascript framebusters function correctly in those browsers.
Like any good webmaster, you dutifully employ an iframe, with the source being the URL of the page you want to share. Alas, when you load your page, the screen refreshes and you're taken away from your site to the page you're trying to load into the iframe.
You've just been framebusted.
Framebreaker scripts are very common. Webmasters employ them to keep OTHER webmasters from re-presenting their content in another site. But for every action, there's an equal and opposite reaction.
The next time you want to load remote content into an iframe on your site, try:
<iframe src="http://www.Somewhere.com/SomePage.html" security="restricted"></iframe>The SECURITY attribute in IE allows you to open a third-party page as though it was within the high-security restricted sites level as defined within IE. This means no Javascript and that means framebuster scripts won't work.
The attribute doesn't work in non-IE browsers however. Javascript framebusters function correctly in those browsers.
Monday, July 09, 2007
I Got the Monday Working Song Blues, Vol. 5
I think this pretty much sums it up.
Birth, School, Work, Death The Godfathers
Birth, School, Work, Death The Godfathers
Labels:
music
Monday, July 02, 2007
Windows Vista... Just Say No
As I previously mentioned, my wife's new computer arrived last Sunday, preinstalled with Windows Vista Home Premium. You can read about my experience (at least with Outlook) trying to get it set up. Seems my inital optimism at getting Outlook to work was misplaced, as Outlook wouldn't download any of her Hotmail (yes I used the Outlook Connector) and neither would Windows Live Mail beta.
Back into the breach this past weekend, this time a format and install. Twice. The result? Some sort of sync error whenever I try to download from her Hotmail account. So Hotmail no workee. Only way to check it was to go to the Hotmail site. That was late Saturday night. I fired off a scathing email to MS Support and went to bed.
So what did I do? Well, after spending Sunday playing with my son at the pool and on Playstation, I did what I said I should have done in the first place. Sunday evening, I did a quick format, popped in Windows XP, and two hours later had EVERYTHING up and running without any issues whatsoever. She's back on Outlook Express 6 (which is what she liked anyway), Office standard is installed, and all her messages, files and docs copied over from the old machine, which now does duty as a file server for backups.
So let's sum up last week's adventure:
Windows Vista Home Premium
Est. total time: 30-35 hours
End result: failure
Windows XP Pro
Est total time: 2 hours
End Result: success
Let's hope this new computer lasts as long as the old one.
Back into the breach this past weekend, this time a format and install. Twice. The result? Some sort of sync error whenever I try to download from her Hotmail account. So Hotmail no workee. Only way to check it was to go to the Hotmail site. That was late Saturday night. I fired off a scathing email to MS Support and went to bed.
So what did I do? Well, after spending Sunday playing with my son at the pool and on Playstation, I did what I said I should have done in the first place. Sunday evening, I did a quick format, popped in Windows XP, and two hours later had EVERYTHING up and running without any issues whatsoever. She's back on Outlook Express 6 (which is what she liked anyway), Office standard is installed, and all her messages, files and docs copied over from the old machine, which now does duty as a file server for backups.
So let's sum up last week's adventure:
Windows Vista Home Premium
Est. total time: 30-35 hours
End result: failure
Windows XP Pro
Est total time: 2 hours
End Result: success
Let's hope this new computer lasts as long as the old one.
I Got the Monday Working Song Blues, Vol. 4
Classic Floyd... make sure you play it for the kiddies.
Welcome to the Machine, Pink Floyd
Welcome to the Machine, Pink Floyd
Labels:
music
Subscribe to:
Posts (Atom)