Christopher
Stoll

The CSS Hunley

On a cool February night in 1864 naval warfare was shaped by an act, that in the context of the ongoing Civil War, was generally insignificant. The Confederate States’ Submarine (CSS) Hunley plunged a torpedo into the hull of the United States’ Ship (USS) Houstonic, becoming the first submersible vessel to successfully sink an enemy ship in combat. Though it did little to help the Confederacy’s cause, it was a major step for marine warfare. The South, which was sometimes perceived as being technologically inept, created the first successful submarine; a very important nautical accomplishment.

Example SAP ABAP Class

This is just a quick reference on how to write a class definition, implementation, and object instantiation in SAP ABAP. In order to use ABAP objects you must have ECC 6 or greater, I think.

CLASS lc_name DEFINITION.
  PUBLIC SECTION.
    METHODS do_something
      IMPORTING pv_something
      EXPORTING pv_another.
ENDLCASS.

CLASS lc_name IMPLEMENTATION.
  METHOD do_something.
    ... do your things here ...
  ENDMETHOD.
ENDCLASS.

DATA lo_name TYPE REF TO lc_name.
CREATE OBJECT lo_name
lo_name->do_something(
  EXPORTING pv_something = lv_something
  CHANGING pv_another = lv_another).

Calories in Christmas Ale for 2009

The answer is, to the best of my knowledge, 313.25!

I think that from year to year the formulation of Christmas Ale can vary slightly depending upon the availability and cost of the ingredients they use. I have noticed that the article that I wrote last year about the number of calories in Christmas Ale is starting to become popular again, so I decided to revisit my calculations and update them for this years formulation.

The number that I came up with this year is significantly higher than it was last year. I would expect an increase, since the alcohol content is up (from 6% to 7.5%), but this seems a little high (the alcohol content is up by 25%, but the calories from my calculation is up by 30%). If you are counting your calories, but don't want to limit your Christmas Ale intake by too much, then maybe you should just average this years number with last years. I mean, it's Christmas Ale, it's worth it.

Alcohol(by weight) = 76.08(OG-FG) / (1.775-OG)
7.5 = 76.08(x-1.022) / (1.775-x)
7.5 X 1.775 - 7.5x = 76.08x - 76.08 X 1.022
13.3125 + (76.08 X 1.022) = 76.08x + 7.5x
91.1 = 83.58x
x = 1.090 (in 2008 it was 1.070)

Now, we can calculate the calories:

C = 851(1.090-1)(1.090+3)
C = 313.25 (in 2008 it was 242.45)

As always, if anyone sees a error in the calculations (or if a GLBC Brewmaster would like to correct me), please feel free to post a comment or otherwise contact me.

Flash Game: eGunnery

This is a game that I made back in 2000 called eGunnery. At the time we were looking for a way to get some online attention for our Army National Guard unit, so I thought that making a gunnery simulation would help. Check it out, but keep in mind that I made it almost 10 years ago! There are multiple levels, so if you are good enough you will get to continue on. It will no longer keep track of high scores, that data was being stored on a server where I worked at the time, but other than that it seems to still work.


2009 GLBC Christmas Ale Homage

Tis the season to drink Great Lakes Brewing Company's Christmas Ale, so I thought it would be a good time to summarize the articles that I have written pertaining to it. My homage to the best holiday beer ever made.

Internal Corporate Advertising

It is hard to get the word out at large companies. Even companies who try to disseminate information have a hard time getting the right information into the right employees hands. Some firms have company-wide meetings to disseminate important information that has broad appeal, and then use newsletter, intranets, and mass emails to spread other information. The problem is that people become overwhelmed with information and end up not seeing the small things that they may actually be concerned about in the flood of irrelevant information.

Newsletters are great, but the information is not targeted, and many people quit reading them because they don’t feel there is value in doing so. The same thing happens with intranets, they work great in the beginning, but as the variety of topics increase people find it harder to focus on the content they are interested in. And, mass emails are many time sent directly to the trash bin.

So how can a large company target the dissemination of information? How can a company effectively share the knowledge of its employees?

Read my possible solutions after the jump.


jQuery and FlexBox Cause AJAX Autocomplete Mania

A while ago I converted the select boxes for one of our web applications to use an AJAX driven, autocomplete input that grabs suggestions from the database. I used jQuery and the FlexBox plugin as described in my post comparing the functionality of jQuery and MooTools. Since then I have had requests to change most of the other applications to use this technology; the users absolutely love it.

For our internal web apps, one of the most common fields is the employee select field. We are using single sign-on, so we know who is entering the data, but we need to also present a list of other users as well. Many of these applications are used at multiple facilities, and normally a user will only want to see information relevant to that facility. Which is good since it allows for the presentation of a select list filtered by location. Without this we would have to generate select drop-downs containing all users from all facilities, which is thousands of users. But, since the Great Recesion, more people are working in cross-facility roles and the need for a complete list has grown. The solution to this problem has been the AJAX driven autocomplete inputs.


SAP SmartForms Checklist

We currently have a project underway to implement SAP at one of our facilities in Mexico, and for this project I am responsible for getting all of the shipping labels created using SAP SmartForms. I must create a huge number of labels, so I have many labels moving through various stages of development. In order to keep track of each label and ensure that nothing gets missed I have created a simple checklist.

We use a formal service request (help desk) system in which I must create proper requests. The system only supports plain text, so that is what my checklist is. I simply copy this checklist template into one of the service request fields and then change the “O”s to “X”s when an item is completed. I also fill in certain values after they are defined so that I have a reference. Otherwise the team and I could confuse which message types go to which customer.

If you are interested, you can see the checklist after the jump.