"Mr. Obama signed his lobbying order on his first full day in office, banning anyone who was a registered lobbyist from working for any executive agency they had lobbied in the past two years or in any other agency on an issue they had lobbied on in that time. As a practical matter, the order meant that most registered lobbyists could not take jobs in their areas of expertise. The policy was praised as “groundbreaking” in a letter from groups like Common Cause and the League of Women Voters."[1]
"Groundbreaking??" More like, naive!
The article goes on to say, "The coalition of groups protesting the policy said Mr. Obama’s stance was actually hurting transparency by discouraging people from registering as lobbyists. Some nonprofits registered many staff members even if they did little lobbying, but now, the groups said in an April 9 letter to Mr. Obama, the attitude has changed from “when in doubt, report” to “don’t report unless clearly required.”"
1. Baker, Peter. "Nonprofit Groups Seeking Exceptions to Lobby Rule." The New York Times 20 Apr 2009: 22 Apr 2009 <http://www.nytimes.com/2009/04/21/us/politics/21lobby.html>
"That government is best that governs least"
Thursday, April 23, 2009
Please Wait in the Lobby...
Wednesday, April 15, 2009
One of the interesting things about Meditech culture is that they are so sure of their market that they can say things like "that's the way it works" when a bug is found that is not worth their while to fix. As an interface programmer for hospitals with Meditech software, I occasionally see such bugs. For example, a customer notices that edits in the Medical Records application to the name do not get sent via our ADT (Admission, Discharge, Transfer) interface. The edits show up in the Admissions module, which is what the interface queue is supposed to track, but they don't go across. It turns out that the interface queue (in Meditech) does not track these edits.
I asked the customer to open a ticket with Meditech and ask them about this. This is what Meditech said (emphasis mine):
"The interface is not to [Medical Records], so edits made in [Medical Records] are not going to create a message in [the Interface]. This is as it has always been. Interfaces have never been connected to [Medical Records]."
Now, the interface may not be to Medical Records, but the Medical Records edits go to Admissions, and the interface is connected to that. But, Meditech is a huge investment for a hospital, and changing vendors to another Healthcare Information System would be a big fail, so customers deal with "that's how it works." In my 7.5 years at Meditech, I know I said that quite a few times. Sometimes against my better judgment.
With the company I'm at now, I suppose we are a little more easily replaceable. So we have a can-do attitude. In fact, I think we somewhat pride ourselves on being able to say "Yes" to things Meditech says "no" to. I feel a little better about that. I like being able to say, "yes, we can get the system to do that for you."
Anyway, my solution. Use the same queue Meditech uses to move edits from Medical Records to Admission, the ADM transfer queue. I search the queue for Demo Recall Edits, and then search those patient records in Admissions for edits to the Demo fields. Any edits cause a message to be created.
Tuesday, April 14, 2009
So I opened a free account with github... and I can't figure out what it is all about. I've never used a code repository before. I have no idea how to get it to work. I got an initial commit to work, but I made another commit, and nothing changed. Oh well. I am trying to put my adventure game up on it.
Saturday, April 11, 2009
So here is the mess to which I alluded in my previous post.
class Character < Being
def initialize( name, description )
super( name, description )
@stats = Stats.new
@position = Position.new( 0, 0, 0 )
# About 50 pounds
@inventory = Inventory.new( 22700.0 )
end
# method_missing hook for allowing access to internal objects
def method_missing( method, *args )
# character#posx, posy, posz, posx=, posy=, posz=
if method.to_s =~ /^pos[xyz]?$/
@position.send( method )
elsif method.to_s =~ /^pos[xyz]?[=]$/
@position.send( method, args[0] )
elsif method.to_s =~ /^(str|con|dex|int|wis|cha|all)[=]$/
@stats.send( method, args[0] )
elsif method.to_s =~ /^(str|con|dex|int|wis|cha|all)$/
@stats.send( method )
else
raise NoMethodError, "undefined method \`" + method.to_s + "\' for Character."
end
...
As you can see, I have contrived a nasty syntax for allowing access to the Stats object enclosed by the Character object. Why? Because I could. I was experimenting with the #missing_method method to understand it better. To get the a character's strength for instance, I could say char.str and it would call the Stats#str method. But I think that if I leave it there, I will be seriously mocked by real programmers... Of course, to allow access to the stats, position, and inventory objects, I should just say this:
class Character < Being
def initialize( name, description )
super( name, description )
@stats = Stats.new
@position = Position.new( 0, 0, 0 )
# About 50 pounds
@inventory = Inventory.new( 22700.0 )
end
attr_reader :stats, :position, :inventory
...
This of course will allow me to access the stats via char_obj.stats.stats_method rather than calling char_obj.stats_method and having char_obj recognize that it needs to send the method to the stats object. So instead of char.str I have to call char.stats.str . Big deal. Interesting that if you had to do that, you could, though, like if you had to hide an object inside another... although I am not 100% sure why you would.
Friday, April 10, 2009
I am writing an old-style adventure game in Ruby. I saw somewhere that Ruby was particularly a good language for this kind of thing. I am agreeing with this. So far, the attempt is messy. I created a few classes, and then started an inheritance free-for-all. My base class is "Thing", and then I have a "Container" class which contains things, and a "Room" class which is a Container... blah blah blah. Beings are Things that respond 'true' to #alive? and Characters are Beings with attributes... but characters get all messy because the attributes are themselves stored in an object which is stored in a Character, so rather than write methods for all the accesses I played with #missing_method and regular expressions... yikes! I think I have some of my OO interpretations a bit backward, but I'm not sure of the best way to work with objects that "have a" object as a field within them and that object responds to complex interactions with other objects in the game.
Everything happens in the interface.
Thursday, January 15, 2009
What??!?!
Just realized I'm not posting anything to this blog... oh well. No one else noticed either.
Thursday, August 7, 2008
Tanglewood
Rebecca and I went to Tanglewood this week. We went for the "Tanglewood on Parade" production, which actually includes events throughout the afternoon and evening. We just hung out on the lawn for most of the afternoon. For us the concert is the main event. They had several conductors. Of course, the evening concludes with the 1812 Overture, augmented by real field cannon supplied (and fired) by the Army National Guard. Then there are fireworks. The whole show ends at about 11pm. We each drank a bottle of champagne. It was fantastic. We had talked about taking Isaac, but in the end Rebecca asked him, and he did not sound interested. In the long run, I think it was nice for just the two of us to go out and have a romantic evening.
We ended up sitting near a path. Don't do that if you go. The less cultured traipse up and down the path, gab on their cells, and are just generally a nuisance. I wanted to sit in the middle of the lawn, but we had no umbrella or other cover, so we would have baked.

