Staying ahead of trouble

The other day I decided to play with the idea of facilitating the notification of issues back to us. Our users are off-site.. So I decided to hook up to the SMTP capabilities of VW. As a proof of concept, I decided to modify the Notifier so that instead of providing a “copy stack” button it provides a “Send Stack” button. This is pretty easy to do by simply overriding:

DebuggerService>>>
openDebugger: aDebugger contents: aString1 label: aString2 proceed: mayProceed displayAt: aPoint

it will be quite apparent where to make the mods.

I then use MailMessage to send an email to my work account as well as to my cell phone. It is a simple as this:

| message smtpClient |
message := MailMessage newTextPlain.
message from: 'santa@northpole.net';
to: 'timmy@yourmail.net';
subject: 'Start making your list now';
text: 'What would you like for Christmas?'.
smtpClient := SimpleSMTPClient host: 'smtp.northpole.net'.
smtpClient sendMessage: message.

The above is straight from the VisualWork’s documentation. Messages can also carry attachments. For more info check out the NetClientDevGuide.pdf which comes with the VisualWorks Cincom distribution.

The overriding need is not for bugs per se but rather for production events such as abnormal termination of batch jobs etc. My plan is to make the application much more aware and responsive of runtime issues. Partly by perhaps incorporating VW’s SNMP framework but also by simply more carefully tracking runtime events in the daily business cycle.

SMTP seems like a reasonable viable possibility. Mail messages can of course be sent programatically. The question is whether the users will feel this to be a security risk. We should be able to encrypt mail. Well, we shall see how this turns out.

Microlingua

Tomorrow Maurice Rabb will present Microlingua at NYC Smalltalk. Microlingua is a Smalltalk dialect being designed for “resource constrained” environments i.e. its about embedding Smalltalk. I have been interested in embedded Smalltalk for quite a while. Smalltalk has quite a history in the embedded space. As most of us Smalltalkers know Tektronics had built an oscilloscope that ran Smalltalk. I don’t recall the exact time period but it must have been at somewhere in the early 90’s i.e. it was one of the first stories I heard when I started coding in Smalltalk which was back in 94. OTI , before they went over to the dark side, had embedded Smalltalk. I recently heard that HP had done similar work, The “network” car that IBM showcased at one of the earlier Java Ones was actually running Smalltalk to do the low level interactions with the vehicle while Java was only being used for the UIs. Some of the members of the NYC Smalltalk, myself included, met with the then president of the American division of OTI and over some Jack and cokes , were told about prototypes that Porshe was working on and how the developers would actually debug while driving the car. We were provided with some licenses and I played with the environment for a bit including playing with QNX a real time operating system. Another embedded Smalltalk that we got exposed to was PocketSmalltalk, an environment designed to run on a Palm pda. One of our members at the time, Steve Harris, was very much into PocketSmalltalk and presented a few times on the topic.

So what is new in the embedded Smalltalk space? Let’s see:

  • OOVM — This is/was a Smalltalk embedded environment which was recently demonstrated at Smalltalk Solutions earlier this year. However, they have been acquired by a Java company so I am not sure what is available and in what form. Apparently, there is currently nothing that can be downloaded.
  • Cincom VisualWorks PocketPC vms are now available.
  • WISP , not sure what the status of that is. Maybe somebody can comment on this.
  • PocketSmalltalk — There is still a site but it seems inactive.
  • SmalltalkMT — not really for embedded applications but SmalltalkMT can generate very small executables and is used in PC gaming.

I’ll make time to make an entry in the NYC Smalltalk wiki for this topic. BTW, anybody interested in coming to the meeting can find details on our wiki.

Web tool kit presentation – review

We had a great start for our season. The turnout was quite good as well. Our resident Smalltalk legend, she was on the original team at XeroxParc with Alan Kay, made it even though she now has a gig with a large insurance company out in Jersey. Two of the guys from JP’s Kapital project made it as well. One of our members came all the way from Ithaca, just to name a few. Tom gave a great presentation and even included examples of integrating CSS with the Web Tool Kit framework. Having done some JSP work myself , it is quite clear that there are some real advantages in using the WTK, especially in debugging. It is as easy as dropping a “self halt” in the JSP.

After the presentation we all went to the New Yorker Hotel around the corner on 34th and 8th and had a few beers.

The next presentation is on Microlingua on Nov. 16th.

Another Season

I first became involved with the NYC Smalltalk user’s group back in 1996 when I left Florida Power & Light to embark on a consulting gig at the then called Brooklyn Union Gas. Back then Jeff Britton and Ted McKnight were the co-chairs and I believe that before them there were some other leads. I took over, if I recall correctly, back in 2000. Ever since 1996 we have been meeting on a pretty consistent basis. Somehow, we just manage to get enough participation from the community as well as material that we ourselves put together. I do wish that more of our local Smalltalkers would make it a point to present at least once a year. I think that people make too much of a big deal of things. I am told that in Argentina and Europe Smalltalkers just meet in cafe’s and someone just takes the lead on a topic. Tonight, Tom Sattler will be presenting on VisualWorks Web Tool Kit , a JSP spec compliant implementation among other things. This is Tom’s second year. I really appreciate his participation at this level. Tom is also one of our regulars. In January we have another local presenting, my co-worker Rob Fossella. Rob has been “coerced” into that presentation but my sincere hope is that next year it won’t take too much arm twisting :) Next month we have Maurice Rabb visiting us. Maurice has developed a new dialect of Smalltalk called Microlingua which targets small devices. Maurice is from Chicago but I hear that he likes NYC quite a lot , so who knows maybe he will become a local.

Reflex

One of my favorite techy-geeky subjects is about meta type stuff i.e. issues dealing with reflection, AOP, etc.

Reflex was developed as part of PhD thesis. To quote its creator:
“Reflex is an efficient and flexible reflective system for Java that I developed during my PhD thesis (which is about to end). It is evolving right now to what we call an “AOP kernel”, supporting multiple approaches to AOP to coexist and collaborate.
One of the limitations of the actual implementation of Reflex is that it is in standard Java (via load-time bytecode transformation), and therefore does not support really dynamic stuff (a class definition in Java cannot be changed after runtime, the instantiation link of an object neither, etc.). These restrictions in the Java world do not exist in Smalltalk, where moreover, the type system is pretty “cool”, to say the least. Therefore an interesting perspective … is to work on a version of Reflex for Smalltalk, in which the complete dynamicity of the environment would be used.”

I’m going to try to follow this one closely. BTW, there are already other related implementations in Smalltalk. Robert Hirshfeld has been working on AspectS (AOP) which is both available in VisualWorks and Squeak.

I think that I will add a page to the NYC Smalltalk Wiki which I will dedicate to these issues.

Here we go again

These storms are getting to be a real drag. It is really annoying to have to call my family in Florida just to ask if they are swimming in their living rooms. This all reminds that I forgot to mention one very important app used by FPL in their dealings with these storms. FGMS (Facilities Graphics Management System) is/was (have not checked) a Smalltalk application that combined Smalltalk, Gemstone (Smalltalk OODMS) and I believe ArcInfo to provide FPL with up to date knowledge of the state of their electric grid. This has to be one of the pioneer Smalltalk apps i.e. at least used by a large corporation. The app was built somewhere around 1988. That sounds crazy. Smalltalk was certainly around. I recall that it was a collaboration between FPL and the University of Florida. Somehow, Gemstone got in the mix. BTW, guess when FPL rolls out their meat and potatoes apps into production? It is not in the Fall :). Don’t fix it if it ain’t broke comes to mind.

Smalltalk is my day job

Yesterday, I commemorated the half way point in my life or possibly the 2/3 rd point , my family runs that spectrum. I feel like I am rushing to a finish line in a race that I should not want to finish. Life is just flying by. It was only yesterday that I was looking for a day job. Yesterday, I brought home my fourth guitar. A guitar which I have been waiting an agonizing 4 months for. The guitar is an Ovation 1769 – AD5 the Al Di Meola signature model. It’s a beautfiful thing, I got the blond natural finish. Yes, I wanted to be a musician, probably not terribly unique. So I looked and looked for that day job that would approximate the feedback that I got from guitar playing and especially from improvising. I almost gave up when I was shown mercy and was recruited from college by Florida Power & Light to do Smalltalk development. Now, I am not going claim that I can get that “immediacy” that I get from playing the guitar from coding in Smalltalk but it is as close as it gets and by far the closest any development tool , language gets, that I have encountered. The rapidity in Smalltalk of understanding one’s environment, of causing change in the environment and thus reacting to change, of conceiving and subsequently mapping those ideas to implementation is so immediate that it does remind me of playing an instrument. The power to create and change are really at one’s fingertips. Other environments that I have used always have hurdles, noise, contraptions that get in the way, they tire me. Yes, I am talking about the coding in the debugger experience, the lack of typing and the implications of that, the simplicity of the language, its readability, the “liveliness” of the environment and most definitely powerful IDE’s such as VisualWorks that out produce any other IDE I have used and that includes Eclipse, JBuilder etc. I know this has been discussed ad nauseum (sp?) but getting my guitar reminded me that I did find my day job after all. Now, I have to do something about getting that night gig :). The other nice thing about Smalltalk is that by the end of the day you are not so exhausted that one can’t put another 1.5 hours into practice.

Vmware on my Alienware

They say that boys like toys and I am no exception. There are two toys that I still find myself talking and smiling about. Those are my Alienware Area 51 notebook and VmWare a virtual computing environment.

I was first turned on to Alienware notebooks by Dave Anderson of Smalltalk MT. Dave in into “desktop replacements” because one he needs to be mobile but also because he helps his clients develop simulation systems (un-mentionable government agencies) as well as computer games. I actually witnessed one of those games in action and it was very impressive. This was a full-blown motion picture with story line type of game. The graphics were just amazing. I myself used Smalltalk MT to integrate DirectMusic into a VisualWork’s music ed application I was developing for a client. VisualWorks can of course wrap C/C++ libraries but often it is convenient to create a C library that provides a facade into a large C subsystem such as DirectX. Smalltalk MT is great for this. I then used VisualWork’s DLLCC (C wrapping framework) and wrapped the Smalltalk MT created dll. Smalltalk MT essentially allows one to code in Smalltalk and generate true native dlls, exes, Com and ActiveX components. I often say that Smaltalk MT is the best C/C++ development environment in the planet but that is of course because I get to code in Smalltalk :) . Seriously, the upside there is that one gets the productivity of Smalltalk but gets to deliver highly optimized Windows components when it actually matters to do so.

The main reason that I love my Alienware is that I get to be mobile and yet do what requires a full blown desktop, all in a stunningly looking notebook that is built like a Mercedes. I have already mentioned some of what I do above. Other applications include hard-disk recording for example which I use for my guitar practice and composing.

Another reason why my Alienware is really handy is to run multiple VwWare vm instances. VmWare allows one to essentially host multiple guest computing environments within a host environment. For example one can have multiple versions of Windows running at the same time co-running with Linux vms. This greatly facilitates simulating enterprise applications which operate over a heterogenous network. At my current gig, I am re-architecting a financial client server application that directly engages an Oracle database into an n-tier distributed system that is fault tolerant , provides for load balancing and is independant of RDMS vendor (well at least the major rdms will be pluggable). We will be using VisualWork’s Opentalk st-st messaging, load balancing , snmp capabilities (currently in preview) as well as MQ integration. GLORP ( a TopLink re-incarnation by the one of the original architects) will provide for database pluggability, other technologies such as stunnel, LDAP, Samba , xml/https are in the mix. Get the picture ? The capability to recreate most of this in one notebook.provides for some real productivity gains..

Big Blue

Just yesterday I received an email that from a Smalltalker out at a utility in the midwest. A utility which I never had heard of before using Smalltalk. He told me that after seeing my post in c.l.s regarding FPL and its Smalltalk systems and that he contacted a colleague over there and was told that the system was still in Smalltalk but that apparently there was a multi-year plan (mind you not project) to move over to Java. That came to no surprise to me. I was told as much at least 4 years ago. The fact of the matter is that FPL is a “Big Blue” shop. Big Blue exerts an incredible influence over many in IT at FPL. I was once told by a senior manager while I was working there that there was a saying in IT that basically said that “one will never get fired if they go with Big Blue”. Big Blue is what FPLers call IBM. I’m sure that they did not invent the nickname. IBM actually has offices smack in the middle of at least the Miami office. Their influence is truly great. It was not long after IBM got into the Smalltalk game that at least the Juno office starting porting their Smalltalk apps to VisualAge for Smalltalk and it was not because they had a better can opener. When IBM changed their game to Java they began exerting great pressure to port those apps to Websphere, A lot of the pressure comes from IBM’s insinuated threat to dropping support for VAST. Keep in mind that IBM has been at this for awhile and yet, as far as I have been told none of the apps have been actually ported. One app was wholesale replaced by a package. I am not trying to debate whether FPL is a Smalltalk shop or a Websphere shop. However, the Smalltalk apps have so far survived very powerful forces and they have done so because they work, they work quite well, and because most business units don’t want to burn their money for at best very expensive replacement functionality. Again, I do take satisfaction in knowing that applications that I helped build over eight years ago are still out there helping FPL better service their customers. As far as the port goes, we shall see. First of all, what the Juno offices do is not necessarily what the Miami offices will do. As as I recall all the apps in Miami are VisualWorks and were not ported to VAST which gives me some hope that next hurricane season I may once again blog about how happy I am that those apps survived yet another year.

When trouble means trouble

Here I go again, this is my second blog entry but this time I am blogging via James’s BottomFeeder which supposedly guarantees safe passage, we shall see.

Hurricane Frances was of special concern to me since I have family in both Miami and Ft. Lauderdale and know first hand from Hurricane Andrew how destructive these things can be. Additionally, it was of interest to me because Florida Power and Light is my alma mater. It was in those halls that I was introduced to Smalltalk. I imagine that every utility company in the country must have a trouble management system but I think that we can all agree that when FPL prepares for trouble that they are living at an entirely different level than most other utilities. Trouble management usually entails at least two systems. A call center customer service system and a specific trouble management system. Both of these systems were partially to entirely written in Smalltalk. The Call Center systems was a modernization of a “green’ screen system. It was interesting because it was generic framework that provided for CICS output to be streamed out to the client where it was marshalled into objects. It provided value because data associated with the respective screens was aggregated reducing user navigation, etc. I was one of the principal developers of the Smalltalk client piece. The trouble management system was largely written in Smalltalk and it employed Gemstone as its database. Gemstone for those not familiar with it is , a cross between an app server and an OODMS. Rather, it basically does both.

This past May, a colleague from my FPL days stopped by to visit me on his way to his cousin’s wedding. I was pleased to know that the call center systems I had helped build were still standing and so was the trouble call management system among others. I am glad that so far those systems have weathered the Java marketing hype hurricane