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