interactive relation drawing
Thursday, May 27 2010
The weather took a welcomed turn for the cooler today, and I actually had a reason to leave the house. Gretchen had assigned me the job of picking out trees and shrubs for the massive new planting that will go in along Dug Hill Road (the planting for which we'd received permission yesterday, since it won't actually be on our property). The nursery wasn't far away; it was that place on Basin Road (41.98866N, 74.088653W) near the Reservoir Inn, about five miles to the northeast. It calls itself "Woodstock Nursery" and even has a 679 phone number, but it's actually miles ouside the township of Woodstock. Still, it's closer to Woodstock than Woodstock Harley Davidson; and even the village of Woodstock is a good 60 miles from where the brown acid was to be avoided.The available White Pines had all been pruned into artificial Christmas tree shapes, but at least they were big enough to jump-start our privacy hedge. In addition to the pines, I was tasked with the job of selecting three of the dark-flowered lilacs, and seven spiræes. There wasn't much going on at the nursery today, and what was going on had a-slightly-improvised feel. The one call I heard the office answering machine receive concerned somebody's child support payment schedule.
I had the dogs with me, and since we were already near, I took them to Onteora Lake. Catskill Mountain Coffee (near the head of the Onteora Lake trail) had prepared iced coffee appropriate to the season, so I carried an unsweetened cup of that with me on my walk down to the lake. Who needs sweetener in a season as sweet as summer? It's a visual feast of ladies in their skimpy fashions!
Onteora did not disappoint. As I reached the lake, I caught a glimpse of a pair of naked legs. They were attached to a woman who looked to be in her late 50s, and she seemed to be using them with great difficulty as she plodded towards the shoreline, her only burden being a fibreglass fishing rod. How should I describe those legs? Each had a diameter of about twelve inches that varied little from thigh to cankle and were festooned with the random blobby pattern that forms at the bottom of a wax candle that has burned for hours. These blobs were from subcutaneous fat, not muscle. Though seemingly random in distribution and size, the blobs was roughly symmetrical on the two legs. The woman was a little overweight, but most of her extra weight appeared to be in her legs. Her skin (and there was a lot of it) produced a bluish-white radiance that contrasted unpleasantly with the deep greens of nature. The question in my mind was not "How did anyone ever develop legs like this?" (since I know the answer). Instead, it was, "Why would anyone with legs like that chose to wear such short (though high-waisted) shorts in public? Evidently she'd decided it was more important to conceal her midriff than those legs. I wondered if perhaps her legs had actually looked worse and that they were finally attractive enough for her to parade them around in public.
I took the dogs to the north end of Onteora Lake, where Sally began tearing apart a garbage bag at someone's camp site. I pulled her away and headed back to our car, but at some point I lost visual contact with her. Sally is nearly deaf and it does little good to call for her in such situations. For a few minutes I thought maybe she'd doubled back and was tearing that garbage bag apart, but no, she'd disappeared into a swath of poison ivy. Eventually I saw her out in the middle of the trail, looking around to see where I'd gone. Had her ears been working correctly, she wouldn't have had to do that.
I spent much of the day working on my web-based database mapping tool. This tool has been interactive for years, allowing one to drag around the tables to better communicate their relations (which are drawn automatically based on saved information about them). But I've always had a dream of making it so that relations could be created between tables interactively (that is, drawn) in this tool. (In the absence of such a graphical relationship-creation system, I've had to enter relations using a web form that looks like this.)
So today I made a massive push at adding interactive relationship-drawing to my database map tool. The process of getting this to work involved these steps:
I'd long been intimidated by the anticipated complexity of this project, but once broken down into little steps like this, it proved surprisingly easy to pull off. You can see the results here. (It's a demo database and nothing can be saved, though you can draw relations between columns and drag tables around.)
- Add mouseover, mousedown, and mouseup events for all the column names on all the tables in the map. This allows me to track the beginning and end of a drag from one to another.
- Add an onmousemove event to the document, allowing me to track mouse movements in real timr. I used this to create an animation of a relation line that is in the process of being drawn. The line is redrawn with every slight change in mouse position, and the old line from the previous position is immediately erased.
- Add some code to put newly-drawn events into a form so they can be read on the backend when the map is saved.
In the end, the trickiest part of all this was turning off text selection (what happens when you drag across a web page). Normally text selection allows you to copy things from a web page for use in other places, but when dragging is supposed to be used for moving things, such text selection is nothing but an annoying distraction. Turning off text selection has to be done using different techniques on different browsers and if you research this subject in Google, you'll find most people looking to turn it off are hoping to protect their precious copyrights. For example:
I have found many instances of my text (and images) being copied and pasted onto forums and other people's blogs without any attribution or a link to my site. I am thinking of using a script to prevent people selecting the text on my site (for the script Google "disable select text script", I'm not sure whether I can post a link to the script itself?). I realise that many people will know how to get around this, I am just trying to stop those who don't know how and can't be bothered to find out. Does anyone know of any disadvantages to disabling text selection?
I would have joined in with the mocking of such people, but I didn't have the time. Interestingly, if one finds a solution for a problem such as disabling text selection that applies only to Internet Explorer, those posting the information usually don't bother to say so. People developing for Microsoft platforms has the view that anyone using anything else is needlessly obstinate and can be ignored as cranks. People developing for non-Microsoft platforms, by contrast, have to support Microsoft as a side-issue, usually grudgingly and perhaps in an uglier way (a passive-aggressive penalty, however subconscious, exacted on those viewed as suckers and conformists). My database mapping tool works on both platforms, but it's more responsive and the subtle animation cues are more helpful in Firefox. (I haven't actually looked at it in Safari yet.)
For linking purposes this article's URL is:feedback
previous | next