Posts filed under ‘Web Development’

An Application of Autotomy

Here’s an amusing stock photo captioned by the “It’s Like They Know Us” Tumblr Blog.

I’m getting so much work done. Toddlers are easy.

For those of you with computers and without small children, it’s funny because it’s not true. My children, in particular, have a keen sense of when I’m working on something really important on the computer. They will both drop everything and approach my machine, sticky fingers widespread.

Autotomy - Me Spass Me Want to Delete Production Data
Me Spaz. Me Want to Delete Production Data

When I see them tettering my way, know what the first thing I do is? I quickly unplug my USB mouse. While they are distracted moving that around and doing futile clicks, I have just enough time to sign out of the production database server, save important documents, or move the laptop to a higher elevation. By the time they realize the mouse isn’t doing anything, the laptop (and all my production data!) are safe.

Autotomy - Autotomy in Action
Distracted by USB Mouse

I was enacting that one day and I realized I’m wasn’t particularly inventive. I was employing the exact same defense mechanism salamanders and seemingly other “lower” creatures have used for millions of years.


I drop the USB mouse to distract the predator. The salamander drops its tail. : )

Salamander Dropping Tail (Photo by Gary Nafis of California Herps)
Distracted Modern Day Predator

September 19, 2014 at 10:19 am 1 comment

Hack TJ 2013 and Balancing Work and Family

Last April, my old high school, the Thomas Jefferson High School for Science and Technology, hosted the largest high school hackathon ever. They were looking for volunteers to serve as mentors for the students as they embarked on 24 hours of programming, so my mother babysat and Ryan and I headed over to the high school to help!

I was very impressed at the size of the event. It took up my school’s whole gymnasium! I was also impressed with the students and the projects they took on. One kid who lost his team was still diligently pursuing a project on steganography. Teams were not intimidating by hooking into APIs, such as Google Maps. A couple of groups did games. Phone applications were popular as well.

Thomas Jefferson for Science and Technology - Hackathon 2013
HUGE event!

I’d say a vast majority of the projects were in Java, which is a language I’m a little rusty on (My last Java project was an Android app I did for fun back in 2010). But Ryan and I still managed to be a good mentors. We found a team working that was working on a ranking algorithm based off the chess rating system. Their Java app version was coming along solidly, but they also wanted an HTML-front end to “up the difficulty level” to impress the judges.

I loved that! HTML was the very first language I ever learned, so it never occurred to me that it could ever be perceived as upping a difficulty level, but the team was right. Most of the other teams did not pursue web-front ends. Anyway, Ryan and I got to have a great time showing the team CSS and teaching them how to troubleshoot JavaScript. On the subject of troubleshooting their JavaScript, I had another moment of being impressed. The students already had AJAX calls in their webpage to try to communicate with their Java backend.

“Did they teach you AJAX in class?” I asked.

“No,” the student said, “I googled it this morning and it looked like what I wanted to do.”

I was struck by his bravery. Even though he had never worked in HTML or JavaScript and only had hours left to the deadline, he dove right in, trying to figure out AJAX. He was foiled by an oddity in the Response header of the data coming down from their Java backend. We fixed that and tweaked the AJAX a little bit and he was good to go!

Alas, our team did not win, but I was super proud of them nonetheless.

Women in Technology
At the presentation/awards ceremony, there was something that stuck out at me. They showed a video entitled “Women in Technology”. It featured alumni of the high school and was intended to inspire the young women in the audience and show them how women can be in technical fields. I applaud the sentiment.

However, the women featured in the video were recent graduates from the high school and still pursuing their upper educations. As a result, when they talked about balancing a technical career and family, they were speculating and not speaking from concrete experience.  I’m not sure how they recruited women for the video and it’s entirely possible email requests went unseen.  If the video did feature some older graduates, my high school has quite a credential list.  We have female TJ programmers working at MITRE, Xiocom, Google, Northrop Grumman, Microsoft, Symantec Corporation, CARFAX, IBM, etc.

BUT… hopefully me and my big ole pregnancy belly was a subtle reinforcement to the message of the video.

Thomas Jefferson for Science and Technology - Hackathon 2013
Pregnant Vicky with Students

It’s constantly a work in progress… but you can be in a technical field and have a family as well. : )

February 11, 2014 at 4:07 pm 2 comments

Interview with Ryan at Extreme Biology!

Last year at Science Online 2010, Ryan and I were struck by a session called “Blogging the Future – The Use of Online Media in the Next Generation of Scientists”. In that session, high school teacher Stacy Baker brought a number of her students to showcase their projects on social media and online resources. As I wrote last year, the session was quite powerful and one couldn’t help but be impressed (and humbled!) by the students.

This January, Ryan and I will be attending Science Online 2011. Stacy Baker and more of her high school students will be attending as well. As part of their preparation for the conference, the students are interviewing conference organizers, presenters and attendees and posting them on their Extreme Biology! site.

Yesterday student Paul published an interview with Ryan Somma on computer science. Be sure to check it out!

Extreme Biology Interview - Ryan Somma

P.S. The image of Ryan was taken with WireGoogles, an Android app written by one of my bestest best friends, Brian Nenninger. It’s available on Android Market.

December 15, 2010 at 8:29 am 4 comments

Computer Literacy Program – Class 3 – Programming

Ryan will do more thorough posts about the curriculum, the activities, and the effectiveness of the program when all the classes are complete on These are just my own personal recaps and memories.

The third Computer Literacy class was on a topic near and dear to my heart– programming! Since we are doing the Computer Literacy Program out of our home, both dogs have been auditing the classes. But this is the first time a dog has helped with a lecture. Our first stab at explaining Logic Gates produced some pretty confused looks, so we elaborated using examples of people in the room. When the kids got a hang of the concept, we used Henry, who managed to squish himself between the students on the couch, as a quiz.

In case you want to administer a self-test in the privacy of your own home, here’s a reminder of what Henry looks like:

Doggie Bath Time - Henry in Wool Sticks Out Tongue

“FALSE!” All the kids yelled.

I was quite proud. Henry, on the other hand, was confused. He couldn’t figure out why I was yelling his name. 🙂

To help demonstrate if statements, loops, variables and algorithms, Ryan had five kids each pick from a deck of cards. With a sixth kid acting as an index variable and another as a boolean flag, we walked through a live-action bubble sort in the living room. In the end all five card-carrying kids were lined up in order.

Neither of those activities were my favorite part of the class though! Each child copied a directory of sample HTM pages containing JavaScript onto their computers. We used those examples to explain some key concepts. However, we also wanted to give the kids the opportunity to tweak code for themselves. Lately, two of the boys have been arguing about which NFL star is better– Larry Fitzgerald or Steve Smith. Their banter inspired a very simple JavaScript example:

Computer Literacy - Original Page

Having seen Larry Fitzgerald play when he was at Pitt, I set the page up to use JavaScript popups to compliment a selection of Larry Fitzgerald (‘BOOYAH! You are smart!’) and berate a selection of Steve Smith (‘WRONG! Larry Fitzgerald RULES!!!!’).

As soon as we started working through the examples in the directory, the kids noticed there was a file named “02SteveSmithVsLarryFitzgerald.htm”, so it built up a bit of a buzz with the boys. Before long, we got to that example. The kids opened it up in their web browser and started selecting.

The boy who liked Larry Fitzgerald was one of the first to click. A popup box declared that he was smart. He got a smug smile on his face, sat back on the couch and waited for his nemesis to react. The boy who favored Steve Smith clicked and was not pleased when a popup announced that he was wrong.

Instantly he looked up at me, “Did you do this?!?”

I nodded and he was even more appalled.

“Did you even LOOK at the stats?!?!”

In a heated tone, he started to detail why Steve Smith was superior to Larry Fitzgerald.

The moment could not have been scripted better! Right then, Ryan swooped in and said, “Well, if you don’t like it– let’s change it!”

Everyone opened the source code into WordPad and [with some hints] found the code that was responsible for the taunts. Then each child typed in what he/she wanted to see (One girl who didn’t like football at all changed both of her prompts to read “Who Cares?!?”). They saved their changes, reopened up the page in Internet Explorer and [with some minor debugging here and there thanks to single quotes or inadvertently erased semi-colons….] each child got to see popups that matched his/her views.

Now the boy who liked Steve Smith was much happier.

Computer Literacy - Khalif's First Program


<SCRIPT Language="JavaScript">
function respondToAnswer(answer)
if (answer=='Smith')
alert('WRONG!  Larry Fitzgerald RULES!!!!');
alert('BOOYAH!  You are smart!');


<SCRIPT Language="JavaScript">
function respondToAnswer(answer)
if (answer=='Smith')

When I was in college and first dabbling in HTML, I remember how exciting it was to refresh a page in Netscape and see a change that I had made. Even if it was something simple like a background color, it was thrilling. I told the browser to do that. That was my doing!

Being able to watch the kids refresh their pages and see their handiwork come to life…

That was my favorite moment of the night.

November 13, 2009 at 1:44 am 17 comments

Work Area 2008

A while back I shared my work area from 2002 and again from 2006. Now, I have a picture from 2008!

Actually, this is just one of many work areas in 2008. I’ve had a variety of locales this year. Sometimes I worked over at Larry’s house. On warmer days, I’d work in the screened in back porch. Sometimes I worked at the Daily Grind. I’ve worked at my parent’s house. I’ve worked at the Coffee House of Historic Occoquan. And sometimes I worked directly on a customer site. This particular work area is in my home– which has been pretty vacant as everything has been sold or put into storage. But, I did keep a folding table and a folding chair and I have become quite fond of the setup.

One of my work areas – 2008

If one were to zoom a little further out– one would find that this work area is also my bedroom!

Jimmie sleeps on my “bed”– hey it is better than a suitcase!

And everything in this room could be rolled up or folded up and placed into a single closet, so when I did visit one of my many other work areas, the room would be empty for prospective home buyers.

This is definitely not my last work area of 2008. By the time we hit New Year’s, I expect to have locations in North Carolina and the Netherlands to add to the tally!

November 2, 2008 at 10:22 pm 4 comments

Web Pages With a Lot of Work

Having a history in web development, I’m very used to my milestones being measured in the terms of web pages.

Now, there are times were there is a whole lot of effort behind a single web page. I have had “push weeks” where we plug away for 80+ hours. I’ve had all nighters. I’ve had months of writing behind-the-scenes business logic between support calls.  Even webpages with static content can go through a long series of design iterations and debates before a look is settled on.

Sometimes, I think the end result is deceptive.  When you look at a webpage, you don’t quite get a feel for all the work that went into it.

This screen may look like a simple form, but the prerequisite database design, business logic and user controls took months to complete before this page could even be started.

The “Featured Webcasts” section above took two different design resources, three iterations before this director’s clapboard theme was chosen.  

This week, I have run across the ultimate example.  I didn’t even write this webpage, but believe me, a LOT of work went into this real estate listing:

My parent’s house is now officially on the market, complete with pictures of the house!

Behind the scenes of this listing– the work of an entire family and two helpful neighbors.  Painting, cleaning, caulking, furniture rearranging, rug removal and there was even a drape hemming effort at 1 AM.  We ended with an array of damaged clothing (I learned that caulk does NOT come of out jeans…or hair) and fingernails.  And we have three dogs that still sport caked paint on their feet and flanks.

It’s definitely one of the webpages I have worked the hardest on.  And when I look at the house now and see how great it looks in the listing, it’s also one of the webpages I’m most proud of.

P.S. If anyone is looking for a beautiful 5 bedroom, 4.5 bath house with an elevator and jacuzzi tub, all within walking distance of Historic Occoquan, be sure to check out the full listing.

March 23, 2008 at 3:02 pm 1 comment

JavaScript: Referring to a Button With Spaces in the Name

Dang.  This afternoon, on a short timeframe, I had to override the behavior of an HTML form button.  I couldn’t change the button itself (it was generated by compiled code that I did not have access to), but luckily, I already knew how to programmatically change the onClick event via JavaScript

I pulled up the HTML code and discovered the button name had spaces in it.  How am I supposed to refer to THAT?!?

<input type=”Button” name=”Click On Me” value=”Click On Me” onClick=”‘;, ‘Bottom’);”>

Ordinarily, I would have some harsh criticism for the fool who named that button…  but I think I am said fool.  I think this might be my handiwork from 2001.  🙂

I knew it was destined for failure but, proving I am still a fool in 2007, I did try:

document.MyForm.Click On Me.onclick = function () {alert(‘Hi’);};

Yeah, did not work.  Did a quick Google search, found nothing of value the first two pages, so I went with the elements object which proved to be much more space-friendly.

var btn = document.MyForm.elements[‘Click On Me’];
btn.onclick = function() {alert(‘hi’);};

This may not be the only solution.  It may not be the best solution (discussion welcome).  And I did not test it in anything other than the specific version of Internet Explorer I needed.  But it did the trick.  Also, I did not get heckled by JavaScript, so that’s a positive sign.

Anyway, that’s how I managed to refer to a button that had spaces in the name. 

September 14, 2007 at 11:52 pm 4 comments

JavaScript Duh Moment of the Day – 8/1/2007

When, oh when, will I remember that other form fields don’t enforce the readOnly attribute like text fields do in JavaScript?  I’ve done this before with a list field.  I’ve done it before with checkboxes.  I think I’ve even fallen victim with radio buttons.  And yet, everytime I want to dynamically lock down a field, I forge straight down that path:

document.FormName.DropDownList1.readOnly = true;

Grr.  As soon as I pull up the form and see the editable fields, I know exactly what the issue is.  Nonetheless, each time I do it, my frustration with this particular forgetfulness compounds.  By golly, one day I will get this right the first time!

P.S. In case you are wondering, you can disable the field (at least for IE 6, IE 7 and FireFox


August 1, 2007 at 6:12 pm Leave a comment

FlowPlayer and IIS 6

Today I was adding a Flash Video (a .FLV file) to a website and was having it play via FlowPlayer.  Worked great on my development machine.  I copied my changes over to the remote server and was disappointed to find different behavior.  The player just sat there idle without playing or displaying any metrics about the video.  I knew the FLV file was big, but was it really that big that I could go walk my dogs and it was still downloading?!?  That seemed pretty ridiculous, so I reflected for a second and suddenly I had a suspect.  IIS 6 MIME Types.

As part of its added security, IIS 6 will only serve up a specific set of extensions by default.  Anything not on that list, IIS 6 will act like the file does not exist, so the web browser will typically return a “The page cannot be found” error (Most commonly I have run across this behavior with downloading .ZIP files).  Because FlowPlayer was seeking the file behind the scenes, I was not getting the tell-tale 404 error in my browser.  But the cause was still the same– FLV was not a registered MIME Type in IIS 6, so web server simply ignored it.

Luckily, it is a very easy configuration within IIS 6 to support the .FLV files:

  1. On the server, get into the Computer Management Console (right click on My Computer and go to Manage or access through the Administrative Tools section of the Control Panel).
  2. Expand Services and Applications
  3. Right click on Internet Information Services and select Properties.
  4. Under the “MIME Types” section, click on the MIME Types… button
  5. Click on the New… button. 
  6. Fill in “.flv” for the extension and “video/x-flv” as the content type. 
  7. Save your changes.

I went ahead and restarted the IIS Services for good measure and from then on out FlowPlayer was a little more interesting to watch.  🙂

May 8, 2007 at 9:34 pm 8 comments

Unique Human Experiences

I think one skill that has aided me as a troubleshooter and a programmer is my ability to scavenge.  I refer a lot to web searches/knowledgebases and I incorporate the discoveries and “best practices” shared by others into my solution.  It still happens every now and then, but it is pretty rare that I come across a behavior or issue that no one else has posted about.  Even if everyone is complaining and no one has a solution to the issue at hand, at least I have the comfort of knowing I’m not alone.  Someone else is sharing my frustrations.

Well, thanks to the newsgroups and the ever-growing popularity of blogs, I don’t think that phenomen is limited to Microsoft mishaps, Oracle occurences and ASP.NET anomalies.  A few years ago, I ingested 32 ounces of Fierce Grape Gatorade.  The next day, I noticed a peculiar coloration in my poo.  It was very appropriate for St. Patrick’s Day and hard to miss– quite bright.  I mentioned it to my husband (yup, that’s the kind of things we discuss) and he happened to have noted the same distinct color in his droppings.  The dye in the gatorade was the culpit. 

Out of curiousity, I did a quick newsgroup search.  Back then, I found one lone guy out there talking about “fierce grape turds“.  Today if you do a search, you see dozens of mentions in various blogs and websites citing the same experience.  For example, “Gatorade Fierce Grape is key to seeing a mighty green poo.”

My keen sighting of the Dr. Grip in the movie, “Breach” is no longer a unique one.  It’s now mentioned in the IMDB forums and on at least one additional web site

This has me wondering.  Are unique experiences becoming an endangered species?  It seems a lot of what we encounter, be it a database crashing or having green poo, there is someone out there experiencing the same thing and rest assure, they are talking about it on the Internet! 

I’m not sure if this is an entirely good thing.  Sure, in this day in age, where neighbors are not necessarily neighborly and most people do not experience the community a religion could provide, running across others like yourself could be your community.  It could indeed make you feel like you are not alone in this world and I guess, at times, provide hope.  Apparently some folks found relief in reading about Fierce Grape Gatorade on

“My green poo came freom Grape Gatorade Fierce. I purchased an 8-pack of 20 FL.OZ. bottles and downed them all in 5 days. I was freaked out too. This site saved me a Co-Pay at the doctor’s office.” – GatorPoop

“This is a huge relief. I’ve been suffering from shocking green turds on and off for a few months now. I was worried that I might die… ” – Dizzee Rascal

But at the same time, isn’t it a bit of a bummer?  That a lot of your encounters with products, your opinions, your trials and even some of your random thoughts are not just your own?  Instead, the same thing is stored in the minds of numerous individuals across this great planet.  We’re part of a geo-redundancy scheme.

Well, since I profit both professionally and personally from web searches, I have a vested interest in our global knowledgebase expanding.  I guess if I ever do get to feeling a little indistinct, I can always console myself by thinking there is no one out there who is going to have all the exact same thoughts! 

Perhaps I can manage to sustain a monopoly on the ex-vomit-fearing; hiking; geocaching; rollerblading; beagle-bashing;  Project-Runway-watching; Malcolm-X-admiring; Discover-magazine-reading; female-web-applications-programmer perspective afterall.  🙂

March 22, 2007 at 7:42 pm 4 comments

Older Posts

Flickr Photos

3D Printed Products