Please note that this site uses XHTML 1.0 Strict and and CSS2. In order for you to see the site properly, you need to identify your browser:
I'm in San Jose, California for the next few days attending my favorite work related event: BorCon. Tonight's keynote address was, as usual for this type of event, loud and boisterous. Of course, programmers take programming fairly seriously and so most of the crowd didn't really join in with the carnival (Mardi Gras was the theme) atmosphere until the drinks started to flow at the party immediately following the keynote.
The highlight, which will be previewed more in depth tomorrow night, was DiamondBack.
This is the new release of the Borland Suite, having seen this tidbit I can't wait for the release. Forgot to define a variable? DiamondBack alerts you to this problem (as does the current software) and also allows you to automatically define the variable at the correct level of encapsulation and as the correct type. The very best and yet most basic improvement, line numbers. The current IDE shows the line number when you have an error but the only way to know the line number of the current line is to check the status bar.
Hopefully tomorrow will be a bit quieter and at least as informative as tonight was.
It's been a great morning so far. Boz Elloy spoke this morning about the maximizing the business value of software by using Software Delivery (Deployment) Optimization. This really addresses the entire software process from the initial conception stage through to the final deployment of the completed project. Basically Borland has taken ground level software design models and turned them into software development and tracking tools. The tools are Themis (Team-Work Infrastructure), Hyperion (Visibility and Predictability), Prometheus (ERP for Software Process). They have extended this to include the Delphi environment (the new version is code named Diamondback). Boz made a demonstration of how Diamondback has integrated testing to gear programming toward quality assurance rather than just writing the bits.
My first real session of the conference (it's just been keynote addresses until now) was Allen Bauer's overview of new features in Diamondback. This release is incredible and I cannot wait to get it on my own desktop. Delphi 8 is really geared more toward building with Microsoft's .Net initiative but Diamondback returns Delphi development to the VCL and yet continues to support .Net and C# at the same time! Allen called it a Multiple Personality IDE. Just some of the features are
There will be a further preview of Diamondback tonight at 8:00 P.M.; needless to say, I can't wait for this session to see more of how the Delphi environment has been improved. Everyone is talking about it here, there were cheers from the group as some of the above items were shown. Unfortunately, it may be 2006 before I actually see these improvements as I do not have the budget to cover this next year (unless the budget fairies are very kind to me).
Well, it's almost time for lunch (I'm skipping the Microsoft Keynote address to write this, I hate the vendor keynotes more than the Borland ones) so I had better wrap this up for now.
Lunch at BorCon is a great time to get to know, at least briefly, other developers (often with names so involved that everyone knows you'll slaughter it should you try to pronounce it). Today I talked a bit with Steve Saughnessy and Jens Ole Lauridsen (both employed by Borland). We spent the entire time talking about the new database engine, NDateStore, that Steve and Jens Ole are responsible for building. Most people wouldn't consider discussion of a database engine to be acceptable lunch conversation but this is a bunch of software engineers (This morning Boz went so far as to call us software gods because we create something from nothing. A bit irreverent but technically, from a creation standpoint, correct – I guess). Anyway, it sounds like a very powerful and compact engine. I may look at actually migrating our databases, IUMS and Operators' Log Book, to this new engine if it can provide enough advantages over our current engine.
Well, now that I've seen the presentation it's unlikely that I'll move toward this database engine. The only advantage that it has over the DBISAM database is that it works natively on handheld devices (PocketPCs and similar) whereas DBISAM does not. As we're not moving toward handhelds at this point, it's unlikely that we'll get any benefit out of NDataStore.
The preview of Diamondback, the upcoming release of Delphi Is just about to begin so I'll write a bit about the other two sessions that I attended earlier. Just as a side note, they have once again under estimated the interest in Delphi (this is a Delphi centric conference people) and the room is packed and people are standing two deep along the walls. Last time I was one of those standing along the wall but was smart enough to make the journey just five minutes earlier than the others.
The third session dealt with creating web applications using Delphi, the only way that I can describe the interface and syntax for creating web applications is rats' nest. The method used to encrypt user passwords for storage in the config is EncryptPasswordForWebConfig or something quite similar to it. Using descriptive names for objects is a great idea, giving a complete description of the object as the object name is a very bad idea. That would be like my changing my name to HusbandFatherOfFourProgrammerLANAdministratorWhoLikesCheeseCake, very interesting but stupid. With that in mind, I'll do my best to postpone any attempts to publish web information and opt for full remote laptop access whenever possible.
The fourth session was dealing with software estimation. As much as I enjoyed the Diamondback Overview this morning, Jeff Swisher's presentation on estimating software schedules has been by far the most beneficial session today. It was great to hear that other developers have similar problems as those that I've experienced. The biggest shared frustration was project switching. I have constantly told people in management at work that the biggest cause of programming slow down is the level of interuption and project switching. BTW, for those interested, DBISAM has reached a critical point with version 4.x, it's been a little over a month since the last update so I can now complete the migration of our databases to the new version of the DBISAM database engine.
Unfortunately, the Diamondback preview is essentially a fast review of the same information that Allen presented this morning. It's great to see all that this release will be able to do but, to be quite honest about it, I would rather be back in my room winding down than just reviewing something that I saw this morning no matter how wonderful, and it is very wonderful, the software might be. Well on that note, I'll wrap up this entry for the day.
There's always quirky things to notice when going to a new location (especially when it's a tech – geek – related event, I mean we're quirky all by ourselves!); here then are the things I've noticed since arriving:
Given half a chance, just about everyone is friendly; unfortunately, most of us don't give others (or ourselves even) that half chance.
Geeks gravitate to power, electrical power. We like to plug things into the outlets, let's call it electric gravitation; so, in every session the seats near power outlets tend to fill first.
Old women make me smile, especially two old women walking arm in arm down the sidewalk.
Voyeurs are odd people. If you're walking down the street after dark and you can't take your eyes off the lit hotel windows above you so much so that you nearly run into me, it becomes fairly obvious what you're up to dear fellow. It's even more obvious when I see you more than just that one time walking beneath those windows.
Day three and still going strong. Today is my slow day but only because I couldn't find a session to attend from 9:30 to noon that even came close to being beneficial to me. The session I did attend this morning dealt with use cases, something which I make use of for myself but have never had occasion to distribute outside of my own work flow. The presenter was Saleem Siddiqui and he did a great job of highlighting the pitfalls inherent in writing use cases, the biggest and most common being giving too much detail. A use case describes what a user (actor) will actually do with a piece of software. A high level use case might be something like this:
- User will select one or more items to purchase
- Order system will verify that items are available for purchase
- User will confirm order
- Order system will accept order and initiate order fulfillment sub-system
If the above were a real use case, I would then go through and iterate the steps until the level of detail describes a non-trivial process (something that the user cannot walk away from without creating a major interuption in the process) that is complete (the process described actually is of value to the user and/or provider). Everytime I add a feature to one of our applications or even modify an existing feature, I go through this process. Up until today, however, I've been the only consumer of the use cases but after today's session I think I'll try to change that. Most of my users are very techinically timid and having such a document before them will likely cause a bit of unease but I'm positive that it will, in the long run, actually speed up my own work flow and reduce the amount of rewriting that is required to deploy and maintain program features.
You might be curious to know how I am connected to the Internet. I have a T-1 connection in my hotel room but, as is eveident from my entries, I'm connected while at the conference. Borland has kindly provided a wireless network through all the conference rooms, unfortunately it's coverage of the halls and common areas (where I am now) is poor at best. Currently I'm piggy-backing on the San Jose Hilton's unsecured wireless network, I can also see three other wireless networks (one of which is secure). Here I am in the financial heart of Silicon Valley and yet I'm still surrounded by insecure networking. I see two more unsecured networks from my hotel room on the 19th floor; even worse, these are business networks because they vanish when the shops across the street from the hotel close. Speaking of the 19th floor, there is no floor 13 in the hotel. Yes, I've heard that having a 13th floor is considered unlucky but figured it to be just an urban legend. I guess it's not, even here in geek central this urbane (hah) supersition survives.
Oh, our special event tonight (every convention has some form of entertainment doesn't it?) is a trip to, drum roll please, THE MUSEUM OF TECHNOLOGY! Pardon me while I get a jar so I can contain my excitement.
On the one hand, the session I just finished was a huge disappointment and waste of time. The presenter demonstrated, once again, that Microsoft is really nothing more than a flashy name when it comes to database connectivity. ADO.Net just does not work well (expressions for calculated fields set at desgin time do not function at runtime just as an example). He had the temerity to suggest that we should all use ADO.Net simply because it's the latest and greatest thing and people are going to want to use it
and then in the next breath he admits that using Delphi we can create the same thing in about one third the time. So, what rational person thinks that spending 200% more time doing the same task using broken tools will produce a program of equal quality?
There was one thing, however, which was worth wasting so much time learning that I won't touch pure ADO.Net with a ten foot pole. The one thing of benefit was an introduction to clientdata sets. Clientdata sets allow a copy of the data to be stored on the local machine. This could have huge potential benefits for one of our member entities that remotely interacts with one of our database programs. Hopefully Bob Swart (aka Dr. Bob) can help me actually see a way to implement this in the session he's teaching right now.
About an hour of Bob's Dutch accent passes.
Well, it appears that this could be the answer to our speed problems for our remote data but it will mean buying an ODBC driver for about $550. I don't know whether this is a justifiable expense for CSI (Consolidated Substances Inc) but I know it would be for me as the client in question is a bit cantankerous about slow data speeds. Nevermind that we're trying to throw a 35MB database over an Internet connection, 35MB over a T-1 is not an instant transaction and never will be but don't try to explain that to this fellow. As he puts it, Make it one button and make it fast.
Today is the busy day, we try to cramp the same amount of information that we had in each of the past two days into about 8 hours instead of 14. Although this entry's post time is 7:30 AM, it's actually an all day post with my notes for each specific session.
The first goal of documentation needs to be a move from application documentation to user process documentation. Recently, documentation largely explained features of a product. This left the end user a jumble of puzzle pieces (all the features) without any clear idea of how these pieces fit together to accomplish a task. By moving to a task oriented documentation structure, documentation moves out of the realm of the technical support group into the realm of the user experience.
Because help engines come and go so quickly compared to the life of documentation, Borland has moved to using structured documentation based on XML, XSLT and W3C schemas. This allows them to quickly adjust to any new engine or formatting without having to change the underlying content. Their base structure is Concept -> Procedures -> Reference.
As usual with Robert's presentation, it's very hard to follow along without getting lost if you try to pay attention to the details but if you just try to follow the high level overview of what he's presenting, his presentations are very good. His presentation plus his paper gives great details and so one can easily follow the data.
The presentation really started me to thinking about about how I might bring feeds into CV for better information dissemination. One such use would be a feed showing industries updated and/or inspected by our pre-treatment group and another would be the daily report from our operators' log book. Both would be fairly easy to implement but would also have limited value alone. If, however, there were also more generally consumable feeds, like employee schedules, a bulletin board or a memo feed, then these other two program centric feeds would would increase in value. It should not be too difficult to get our calendaring vendor, Great Hill, to actually provide such a feed so that would mean only dealing with the program feeds (relatively simple) and the bulletin board/memo feeds (a bit more complex as there's no underlying support right now). Even more I may be able to use this functionality to enhance PN.
As I don't use Java nor Together, this session didn't apply to me directly; Charlie did a good job of covering the basics of UML so I was still able to make some use of the lecture. Although he did not cover as much detail as I would have liked, he did confirm that the best use of UML is simply as process definition rather than actually trying to detail a program through the use of UML (Unified Modeling Language). My paper notes follow:
This session simply showed some unique ways to use TClientDataSet. The biggest thing that this session showed was a sea of tired eyes, very tired eyes.
Watch for another post describing some of the wonderful things I saw while here.
San Jose Taiko, performed during Monday morning's opening session. If you've ever seen or heard this Japanese art on television or radio, hearing and feeling the beat of these drums in person is an experience that you would never forget. To say that they moved something within me would be a gross understatement. This really is an art form that has to be experienced in person as if you just hear it you miss the intricate motions of the performers. Is it dance? Is it music? It is both and much much more.
Not too long ago I was in San Fransico. EIther the people there are a tad unfriendly or my deathly ill appearance frightened them so badly that they couldn't even bear to lift their heads and look around them. The people in San Jose were very much the opposite. Happy, friendly and very aware of the other people around them; the people of San Jose were a breath of fresh air on this trip.
What is it with people and bathing in colognes and perfumes? I can understand wearing perfumes and colognes but dowsing yourself with them? One fellow at the convention could be easily tracked from room to room, the scent of his cologne lingering after his passage for a good five minutes or more.
The worst part of conference trips are the meals. It's not that the meals aren't great, the food is usually marvelous: Chinese pepper chicken, beef baron and roasted turkey breast, swordfish and other delectables. No the real problem is the solitary nature of these meals. At least during lunch I'm surrounded by a number of strangers who share a similar interest so we can at least pretend to keep each other company. There is no pretending, however, when requesting a table for one. The hostess and the waitress both were quite friendly but, hey, I'm a married man so a heart-felt thank you and a polite smile is all I can offer in return.
As you may know, my oldest son has autism. Attending a programming convention is an eye opening experience: Easily 80% of the people here have mannerisms very similar to those exhibited by my son, myself included. Recent studies have also found a disproportionately higher rate of children having autism among the geek
community of Silicon Valley than the rest of the world. Is autism actually an indicator of a new form of intelligence? There is a small group who seem to think this may be the case, being exposed to this many highly intelligent
people who also exhibit autistic behaviors makes me wonder.
Currently I'm sitting in the Minteta San Jose Airport waiting for my flight. This is a very small airport. It only has 18 gates and no walkways, you have to walk out to the planes. Personally, I like having to walk out out to the planes as it is reminiscent of a bygone era. In addition to what I mentioned last night as points of interest, I've noticed something today in my short stay here at the terminal: Indian women have a grace and beauty that is impressive. Both women were short, they weren't together I just happened to notice them as I stood in at the check in counter. One woman was a half-dozen or so people behind me and the other came walking through the door shortly after I saw the first. The first woman was thin and short. Dressed in muted violet with a beige wrap. The wrap wound round her nearly twice and judging by the folds over her arm, it could have done so another two or three times. One side of this wrap was decorated with an elaborate design of large triangles and scrolls in a deep purple. Her hair was dark grey with tinges of light brown, even the last vestiges of her hair color was fading, all pulled back into a tight bun. This woman carried herself with an elegance that not one of the other women around her could even dare to imitate. The garb she wore only served to heighten her presence in the room. Then the second woman walked in to the termal. As already mentioned, she was short but unlike the first she was a plump woman. She was dressed in a vibrant violet dress with ornate designs worked into the fabic, and a large fold hung from her neckline over one shoulder and down her back. Her hair was similar to the first woman's but where the first's narrow face spoke of a very serious woman, the second's rounded face seemed eager to burst into a smile. Again there was a sense of grace and poise that made those walking past this woman seem drab and coarse.
I compare these two women to those I see now, one with a T-shirt which says, I'm grummpy,
another who appear enslaved to their jobs and cell phones. Where has the elegance gone? Where is the beauty and refinement? Why have we allowed women to debase themselves to the level of men so as to be equal
when they should be lavished with fineries, when they should be seen as the greatest beauty off all God's creations?
I finished watching Ghost in the Shell today. It's not rated but true to anime it's very violent, gory, with mechanical nudity and a plot line that one has to really focus on to find and follow. If you are familiar with Jane of Ender's Game, Johnny Five of Short Circuit or any other of a host of sentient A.I. then you know the basic plot of this movie, although Jane is the closest to what occurs in Ghost in the Shell. The premise is that a program designed to modify the ghosts (human part of the mechanically enhanced humans and cyborgs now co-existing with true humans on Earth) of target individuals for specific political and commercial gains has sifted through so much data and information that it has finally become self-aware. This self-aware, sentient, program seeks to preserve itself and to reproduce. The film makes a very important distinction between replication and reproduction. Replication merely makes an exact copy of the original but reproduction takes parts of the original and creates something new and unique. Exact copies all have the exact same weaknesses so what will kill one of the group will kill all of the group; whereas unique offspring have unique strengths and weaknesses and so can survive much better.
This show made me think about this: When does intelligence become sentience? There is no question that this computer is computationally similar to my own brain in many ways and in some facets can surpass my own brain. There is also no question that it is my own brain that is driving this computer, without human input and direction this computer is no different than a rock in its usefulness. We are, however, moving quickly toward computer driven programs. Smart agents, programs that are given the details of your wants and then set to search for information to satisfy those wants, are a major step in that directlion. At what point does the smarts that drive such programs cease to be just well written code? Where is the line between programmin and thought lie? I believe that the difference is a tremendous one and that it is really only our misunderstanding of what independent thought is that allows us to even believe that we might one day create it. Evenso, I think it a good thing to mull every now and then. It forces one to examine one's own humanity and the ethical and moral consequences of such actions. If there were nothing to force such contemplation then there would be nothing to prevent us from possibly bringing about our own demise through some technological wonder.
Let me begin by stating that I hate both Spring and Fall. During these seasons of change, my nose dries out (even though I try to guzzle gallons of water to prevent it) and I have a near constant nose bleed until Summer or Winter. Hideously inconvenient at best, terribly embarrassing at worst (this is usually at work, during a meeting, when I just barely rub my itchy nose and poof, nose bleed).
Nose bleeds are not, however, the reason for titling this entry Pain.
There are three other reasons for that. The first is that my parents, my father in particular, are very spontaneous people. The pain comes from the fact that my brothers and I and our families are somewhat expected to also be just as spontaneous in relation to the plans set by my parents. Case in point: Yesterday at around 8 or 9 A.M. my father decided to reshingle the south facing part of their house. My brothers and I had planned to take our families up the canyon for a bit of an outing and had gathered at my home. We were ready to head out to the cars and into the hills when my second younger brother's phone rings. My mother is calling to ask us to come over to the house and shift the shingles onto the roof. Sorry mom, we all have plans already. OK, just come by the house when you're done, have a good time. Note the assumption that after this outing, none of us will have anything else planned and so we can just drop by and help. I didn't have set plans but my wife did, a boutique visit and a conference session for the two of us at 7 P.M. My younger brother had plans to make a bid on a lot for his new home, my second younger brother had plans to go on a date with his wife and my youngest brother wasn't even available to go up the canyon due to his wife's previous plans. Without realizing it until it was too late, I indirectly canceled my wife's plans. My younger brother did not bid on a lot yesterday. The next youngest kept the date with his wife and my youngest brother came by after taking care of his wife. Were one of us to try something like this, we would get an earful. I won't delve into the flap over scheduling visits with the grandparents
that my folks and I went through a number of years ago but suffice it to say, we always make a phone call before even thinking of making a visit. Pain the first.
During our jaunt up the canyon,we discussed the situation; something that we've never done before. Sentiments were the same across the board. We were all very willing to help but also quite angered by the lack of notice and by the guilt felt at even taking the time to still have our little outing; even though the outing was planned in my parents' backyard at the last family bar-b-que some weeks before! Duty to family is deeply ingrained in my three brothers and myself, my dad made absolutely sure that we were aware of our familial duties as we grew up and, indirectly, so did my mom. That's the same route I try to take with my own children, teaching them that we have a solemn responsibility to take care of each other, our grandparents and great-grandparents and other relatives. Unfortunately or not as the case may be, that ingrained sense of duty also brings about a great deal of guilt at shirking that duty even as a result of poor or no planning on the part of others. Pain the second.
Well, at about 2 P.M. I arrive at my parents' home to find brother number three already there and shortly we are joined by brother number two. Dad has already moved all 33 of the packs onto the roof (2300 lbs or 1047.8 kg) and to be honest he looked like he had seen better days (which he has). Well, now that guilt really kicked into high gear and what was supposed to be just a quick stop to help shift some shingles turned into eight hours (for myself and my younger brother, the youngest two made two shifts with one leaving about 6 o'clock and the other arriving about an hour later) laying row upon row of shingles. The last two or three hours were done by lamp light. It's nearly 24 hours later and my body is still cussing at me. Pain the third.
While the three of us older boys and our wives (I really don't know how the youngest felt about it all and he probably didn't either as he's worried about his wife's health right now) were angry about the short notice, not one of us was angry about the request itself. Last night was one of the most enjoyable times that I've spent with my dad and with my brothers. I think that he finally saw that we are no longer the squabbling little boys that once lived in his home. I know that he was amazed that we could actually shingle the roof without him looking over our shoulders every step of the way. I know from the hug he gave each of us as he kicked us out of the house that he was truly grateful for the help (dad only hugs us boys during emotional, teary events). Twice, mom told me that she didn't know what they would have done without our help and both times I was surprised that the tears didn't start to run because her voice clearly said they were there waiting. Knowing how much we were able to help these two terribly important people in our lives is well worth the pain.
On a side note, if either of you should read this mom and dad; all we ask is a couple of days worth of notice. It's much easier to reschedule something when we know ahead of time rather than finding out that we were wanted ten minutes ago.
While we were shingling the house the other day, my dad mentioned that his body just wasn't what it used to be. Combined with my recent viewing of Ghost in the Shell this made me wonder; if it were possible to completely replace my body, would I? Would any price be too high or would any price be low enough?
Just a quick note, as the seasons change so does the color scheme. I'm heading to bed to try and convince my body to love me again.