Sorry for the slowdown in my posts here recently. Kai and I were sick for a few days last week, and then Kai was hit with Spring allergies. This is our first Spring in PA, so we weren’t prepared for this mini-cataclysm. He’s been having a hard time sleeping because of coughing (due to post-nasal drip - yum) and uncontrollable scratching (due to hives breaking out all over his skin). While in general it’s a good thing he inherited more traits from Maria than me, he unfortunately inherited her allergy problems. So we’re up usually a couple times a night now, to re-apply the various potions and lotions he needs so he can be comfortable enough to sleep (and not scratch himself to the point of bleeding). We’ve been to his doctor, but apparently the various heavy-duty allergy treatment options are not considered safe for toddlers, so we’ll have to tough it out for now.
In happier news, my Dad and step-mom came to visit us this past weekend, for the first time since we moved to PA. It was a pleasant and relaxing weekend, and it provided a great excuse to not do any work on the house for a few days 
It’s dawned on me that I haven’t said much about my new job yet. One of the major downsides to leaving California was giving up my job at HighWire, but I’m happy to report that I like my new job at U Penn’s School of Medicine even better. I’m in the Information Services group. I don’t have as much customer contact as I did at HighWire (which I miss), but on the technical side, there is a much greater breadth to the work. Instead of having a primary focus on just scripting, I’m doing a lot of application design and database development. My current projects are a web-based email account application system, and revamping the Med student online application process. All the tools used here are new to me - PHP, Oracle, Smarty, and some home-grown tools - so that also helps keep things fresh. I’m working in a small group of about a dozen very likeable people, so I’m making new friends too. Unfortunately, my position is funded for only one year. It looks like there’s a good chance it’ll be extended for a second year, or made permanent, so I’m crossing my fingers. I’ll find out when the budget is finalized for the next fiscal year, which will happen around the end of the summer.
The application architecture that’s been deployed here is the best I’ve seen. A typical architecture for web applications consists of a database backend, Java or CGI scripts as a middle “application” layer, a templating system for the front end, and maybe a security layer (typically handled through the web server or the application layer). The architecture here has 4 layers: 1. the database (Oracle) back-end; 2. the LDL (Logical Data Layer), which provides role-based access to the database (you define your queries in XML, along with column and row based access rules, and it’s then compiled for better performance); 3. the “WI-Engine” which serves as the application layer, written in PHP (it allows you to design your pages in an object-oriented fashion - using “panels,” “subpanels,” and “dialogs” which can communicate with each other); 4. a template layer, using Smarty.
The WI-Engine took the most getting used to, as I had to orient myself to thinking of all the page components as objects. Once you get going with it though, it’s very efficient. The LDL is cleverly constructed. Since the applications we design are for use within the School, you always run into issues such as what a student can do with an application vs. what an administrator can do with it. All those access rules are clearly defined in one place, and it’s sitting just above the database itself, so it’s quite unlikely that someone could hack through any loopholes in the application layer.