Returning from my moment of silence (out of respect for Kathy) I want to address some things. First of all there were a couple of comments questioning why anyone would be quiet at a time like this. “We should be outraged and vocalize our concerns prominently” was the general undertone of these remarks. In my situation I find the best thing to do when you don’t fully understand a situation is to keep your mouth shut. I will refrain from speaking out against any individuals involved as I don’t know the other side of the story. While it’s arguable whether the other side has any merit you cannot discount that there is indeed another side. I’ve read comments and posts from some of the others involved and I will neither condemn nor approve them. I just don’t have the full story. My intent was merely to show respect for one of my favorite writers while protesting in the most non-destructive (and non-embarrassing) way possible. I could go on a rant about why we should all respect one another on the Internet but that feels like it would go nowhere. So if I can’t condemn any particular individual and if speaking to a broader unknown audience of possible offenders becomes pointless the best thing is to be silent. Believe it or not many times silence is the best way to shout your point.
Next big thing on my list is EPL. “What the heck is EPL?”, you say. I’m glad you asked. (Even if I had to key the question for you!) EPL is a little game-like thing I threw together the day before my last post. Here’s the story. I signed up to do Career Day at my daughter’s school on the 29th and I had all of two months to prepare. Due to a series of random unrelated but highly important top-secret events I had become distracted for the entire duration of both months. Just prior to finding out about Kathy I said, “Oh crap! Career day is almost here!” then started to work on it. So that concludes my disclaimer for the piece of junk that I’m about to post on the net tonight. But I still haven’t told you what the aforementioned allotment of debris is or what it does. The idea came to me months ago when my daughter shouted the words “career day”. I was like, “hmm.. what could I do to show little kids how cool programming is…” In my mind I was preparing to recruit soldiers for my future army of armageddon poised to snatch the freedom from under your hind side enslaving you all as builders for my super computer designed to run my cross platform rewrite of Groovy using .Net RPG assemblies and… ahem! Where was I? Oh yeah, the kids needed to learn programming and be all excited about it. So the answer was a video game. Yes, I would write a video game that you would control with a very stripped down version of BASIC. After all, that’s how I got interested in programming many years ago. (I started with an Intellivision II system with a computer attachment running BASIC.) The video game would have to be really simple and friendly since I had little time to develop it. (I initially had less than a month but then the event was postponed for another month and a half due to snow storms.) The language would need to be even simpler.
Introducing EPL (Elementary Programming Language)
I gotta get better at naming my ideas. EPL is a programming languages designed for children in 1st through 3rd grade. It features Mario from Super Mario Bros. and it looks like basic but only has 4 commands: walk, run, jump, and say.Each line of an EPL program starts with a line number (like 10, 20, 30, or whatever) and must have one of these commands followed by parameters. So you can say something like “walk 3 steps”, or “say hello world” and when your run the program Mario carries out the instructions. I’d share the source code to the game with you all but it’s a real wreck since I was working so fast (without *ahem* unit tests and Interfaces). Here’s an example of an EPL program:
10 say Hi, I'm Mario and I'm going for a walk!
20 walk 3 steps
30 say Watch me jump!
50 say All done!
Easy enough to understand right? It came together in hours so as far as a feature set is concerned your stuck with little mario (before eating the mushroom and becoming all “Super-Sized”) and a blue background. You can also control Mario with the arrow keys (make him jump with the space bar) but there isn’t even any real gravity! You can walk Mario into the sky or off screen. For the kids, however, it was sufficient. (I recently added support for growing into Super Mario and changing the music.) I’ll add features to it in the future. I promised some of the kids that I would. For now you can download EPL in an executable all-inclusive mario-programming jar. You’ll have to install version 5 or later of the Java runtime to run it. After you install Java you should be able to click and run the jar file. If that doesn’t work post a comment and I’ll walk you through the long way of running it. Click this link and follow the complicated instruction to get it. I apologize for all of the complicated procedures involved. I’ll put it up on my own site as an applet or windows exe when I get time.
GSpec – Use at your own risk!
I pushed GSpec to the Groovy trunk rather soon as a direct result of peer pressure. (Don’t listen to your peers, just say “No!”) I attempted to use it to develop GSpec but it fell apart because of the extensive proxying that happens around each object and because of Java’s strong type system. (For those of you who just came to check out EPL, GSpec is the other programming language that I designed.) In short, GSpec wraps every object in a GSpecDelegator and when pass parameters into Java it expects the actual objects. I’ll have to use Groovy’s M.O.P. for method and property interception and lose the proxies. In the meantime I’ve been working on a formal description and tutorial for GSpec that I’ll be posting in the near future. Keep this page bookmarked (or as they say on Power 99 FM, keep this station locked!) because out of the silence comes a lot of noise! That’s all I got for now, you know what to do. Drop it like it hot in the widget where it’s not.
[A word to those 25-50 new visitors that I’ve invited to my site in the past few days: “Drop it like it’s hot” is not a suggestion for you mishandle or physically drop anything. Instead it is one of the more common phrases I use to sign off with in an attempt to keep the site hip, cool, or otherwise entertaining. Also, a “widget” is just a geek way of referring to one of those rectangle thingies where people typically key in comments. To those of you that visit frequently understand that this verbose explanation is necessary for the extra 25-50 visitors I’ve invited from recent random situations such as Career Day. Many of these visitors know nothing about programming, very little about computers, and don’t typically listen to Rap music. While I’d like to formally introduce the newcomers to what my site is all about the best I can do is leave long-winded subsections of text with a hope that they’ll click around and find some of my more interesting ramblings.]