Monday, October 18, 2010

Mono.CSharp

Back in April, I read this post by Miguel de Icaza about the C# REPL (read-eval-print-loop) feature coming to MS.NET framework (previously it had only run on the Mono framework, for reasons detailed in the blog post). I was pretty excited. The feature looked really awesome when Miguel first blogged about it back in 2008 and I was pretty bummed that it was only available for Mono. 

I hadn't had an opportunity to play with it as I had been pretty busy doing other stuff at work and really didn't want to touch the application that I wanted to add it to because it's pretty touchy for some reason. It's a very multithreaded application with networking, database and a bunch of other stuff, so trying to touch it can cause rippling effects. It's something I've really wanted to rewrite for a while anyway. I finally decided to implement a couple new features in the application and brave the problems that would come.

I implemented the features and it seemed like everything was working fine until the day before I went on vacation. Everything went to pot. Right down the drain. I patched up the app as best I could before I left and received some frantic pages from a colleague before I actually hit the road.

Once I got back from my vacation I set about to correct the application correctly. You know, actually implement mutual exclusion and so forth so that it wouldn't die a horrible death every couple days. I switched some of the threadpool stuff over to the new TPL (Task Parallel) that was released in .NET 4.0 and that has had a great improvement in speed, but I still wanted a way to break in and debug stuff at runtime. Enter the Mono.CSharp library.

I wrote a very simple network interface that received commands from a raw connection, would evaluate them and then print back the results to the client machine. I still have a few kinks to work out, but all-in-all the solution is AWESOME. I can now remotely login and run commands to see what is happening internally in the application. I used some of the code from the example csharp.exe that Miguel released in order to have some pretty-printing and other similar features, but nothing real intense.

If you haven't checked out the Mono.Csharp library, I highly recommend you do. It has some potential to be very powerful. MS has promised a similar feature for the next revision of C#, but you can have it now, and very easily by just using the Mono.CSharp library.

If you'd like more information about Mono, check out http://go-mono.com.

Wednesday, October 6, 2010

The Widow's Mite

This is a booklet that my sister wrote. She is an extremely talented woman and I look up to her. Buy lots of these, it is really good!



This is her blog. http://myamateuradventures.blogspot.com/

Monday, October 4, 2010

Boost.Spirit

I've been looking at replacing an application at work that was original written in C. The application has it's own little language for defining hardware register sets and also takes care of managing slight differences between register sets for different products. I would normally write this application using C#, but it needs to be able to run  on systems that may or may not have .NET, and it is not an installed utility, but something that is checked into our source control system.

I thought originally about just updating the application to be C++ because it really is a good candidate for inheritance and polymorphism for the different register types, and having the STL is always a nice bonus for string manipulation. So, I need to write a parser. I've looked at Boost previously for other applications, but never at the Spirit library.

The library sounds really nice in theory, but I the examples for the latest version don't seem to follow the need that I have, or I am not understanding the examples very well.

Has anyone used the Qi library for writing a complete parser for a real life language? I'd like to see something like that.

Wednesday, August 18, 2010

I don't read backwards

I really like xkcd, the online comic strip. So, here are a couple of xkcd posts that I like. Each image is a link to the original post, which contains captions.



I feel like this every time I walk into a store and the sign on the automation door says "Automatic Caution Door"


I'm supposed to read it as "Caution: Automatic Door," but that's NOT what it says! You read left to right, top to bottom. Jerks.


I've recently converted my brother to using Python at work. He loves it. He's a pretty hardcore low level C programmer normally, but Python really hits the spot for a lot of the processing tasks that he needs to do. Plus, ANTIGRAVITY!


I like this one because it reminds me that no matter how well I think I've written a piece of software, someone always comes up with a way to break it that I couldn't even dream of.


I was a band geek in high school and I still walk in time to the music when I'm in a store. Sue me.


For all those who are still kids at heart.


I do something like this once or twice a day. Save the world with regular expressions that is.


I had a high school physics teacher who used to harp on this all the time.

So there you have it, a few of my favorite xkcd's. I don't recommend going to the site if you have important, or even semi-important things to do. I usually get sucked in pressing the "Random" link for about thirty minutes at a time. Enjoy.




Wednesday, July 28, 2010

Hudson

For a while at work, we've been using the Hudson continuous integration server for managing our builds. We use it in a couple different ways.


  1. We poll ClearCase for changes to the source, and kick off a build if there are any changes. This uses the SCM polling plug-in along with the the cron plug-in to check every hour or so to see if there are any changes. Based on the result from that SCM polling check, we kick off a bunch of other jobs that will do the actual calls to make to build our binaries.
  2. We have a nightly job that builds all the binaries (even if there haven't been any SCM changes) and then launches a series of sanity tests on the various platforms to make sure that the build is still "healthy." 
We used to use a home grown solution that was tied very closely with make and specific options being passed, we quickly grew out of this solution.

There have been a couple of hurdles that we've had to overcome, but Hudson is extensible enough that is hasn't been too hard.

  1. Our SCM expert didn't like some of the ways the pre-packaged ClearCase plug-in worked, so he wrote some batch script tasks that did things the way he wanted them done.
  2. We wanted to keep track of the Hudson configuration in ClearCase, so that we could go back to a previous version of a job if need be. This was pretty easy for our SCM guy to implement as well. We just store the config.xml file for each job into ClearCase for each nightly build.
Hudson is one of the first open source projects I have contributed to. I wrote a simple plug-in to publish artifacts (things that are created during the builds) to a CIFS share. CIFS, for those of you who may not know, is the file system that Windows uses for sharing directories. So, to make it simple it allows files to be copied to a Windows share from either another Windows machine, or a Linux machine (or anything that jcifs works on). 

Hudson is really nice. It is very configurable, and really easy to extend to implement what you need it to do. My next job at work is to try out SCons to see if it will work well as a replacement for make.

Monday, June 28, 2010

The Streamer Frock Grosgrain Giveaway

The Streamer Frock Grosgrain Giveaway

I'm posting this for my wife, she is in love with this dress. She might even prefer it to me were she given the choice to save one of us from certain death :-)

Saturday, June 19, 2010

Rock Band Beatles

My family got me Rock Band Beatles for Father's Day. You may be wondering how I know this the day before Father's Day. Well, it just so happens that we are terrible with dates around here. Back before Mother's Day, I thought I had another week to get things done, but lo and behold, it was the next day. I think things turned out pretty well, considering I had to run out with the kids and find some presents. We got her a "Princess For A Day" thing at a nearby spa. A little cliché, but what you gonna do? She'll enjoy the massage and such, who wouldn't?! So, we come now to Father's Day. We all thought it was last Sunday, so the rest of the family "snuck" out of the house on Saturday of last week and went to the store and purchased some gifts. It wasn't until we went to a BBQ at my brother's house that we found out it wasn't until the 20th. My son was having a really hard time keeping secrets about what the presents were (he told me a couple times what was in a couple of them). So, they let me open some of the presents early. I was really excited about Rock Band Beatles when it came out. I _really_ enjoy the Beatles, they have been my favorite band since middle school. I only got to play it one night last week, because we had something going on every night. I played through about 10 or 12 songs and loved it. The songs are great, the guitar parts are fun to play, and the music is much better for the kids than the normal Rock Band (we really want to get Lego Rock Band for that reason). I'm looking forward to tomorrow, there is still one more present to open, and my wife is making me biscuits and gravy, one of my favorite breakfasts! She is amazing!

It didn't happen

If you remember this post, I was hoping to be back down around my low point by the summer. That didn't happen. Not even close. I am up, up, up. It's been interesting this time going back up, because I've noticed my increase in weight, and I can actually feel the extra weight on this time. Something I had never noticed before when I regained lost weight. I'm not sure what the difference is this time. Perhaps it's because I got lower than I was even in high school so the change was more dramatic, I don't know. I would really like to get back down there, it felt great. I felt the best I have ever felt. My back didn't hurt as much, I slept better, all around just a better feel day in and day out. So, wish me luck as I try again to embark upon the downward path.

Friday, April 9, 2010

My Mom

Children don't often get the chance to tell their parents that they are proud of them. My mom has always put her heart into her work and showed me what it meant to truly do well at a job. She deserves this and much, much more.



Rolayne Day is Honored With the 2010 ACBSP Teaching Excellence Award

The Association of Business Schools and Programs proudly announces that Rolayne Day, Salt Lake Community College, in Salt Lake City, Utah, has received the 2010 Teaching Excellence Award for Region 7. The award is presented in memory of Lt. Col. Edward Ortowski. As a regional recipient, Day will now be considered for the 2010 ACBSP International Teaching Excellence Award, to be announced in June.

Overland Park, Kansas, 6, March, 2010 ¬¬--- Rolayne Day, Salt Lake Community College, in Salt Lake City, Utah, has been named a regional recipient for the 2010 ACBSP Teaching Excellence Award. The Association of Business Schools and Programs recognizes individuals each year who exemplify teaching excellence in the classroom. The International Teaching Excellence Award is being presented this year in honor of Lt. Col. Edward Ortowski.

Day will be honored, along with other regional recipients, at the 2010 ACBSP Annual Conference, June 25-28 in Los Angeles, www.acbsp.org. She will receive a medallion and a $100 check. Two International Teaching Excellence Award recipients will be announced at a special Salute to Regions luncheon, one from a baccalaureate/graduate degree-granting institution and one from an associate degree-granting institution. As a regional recipient, Day is now a candidate for the international award.

"I have observed first-hand how Rolayne truly makes a difference in her students’ lives," said Lynnette M. Yerbury, C.P.A., M.B.A., division chair, computer systems, marketing and paralegal studies at Salt Lake Community College. "She makes them her first priority. She offers them countless hours of support both in and out of the classroom, helping them reach out and achieve their true potential. Whether the support is in the form of helping with a project, polishing up a presentation, or offering helpful advice, she makes herself available," Yerbury said.

The Associate Degree Commission of ACBSP established the International Teaching Excellence Award in 1995 to recognize outstanding classroom teachers. In 2002, the Baccalaureate Degree Commission created a similar award to recognize excellence in teaching at the baccalaureate degree level. ACBSP is the only specialized accrediting body for business schools that presents an award recognizing excellence in teaching.

"It is more important than ever for business programs to produce graduates who are ready to enter the global marketplace," said Douglas Viehland, ACBSP executive director. "ACBSP has a mission to develop, promote and recognize best practices that contribute to continuous improvement of business education. Recognition of teaching excellence is one way we achieve this goal." he stated.

ACBSP currently has more than 729 members in 32 countries and nine regions. Salt Lake Community College is located in ACBSP Region 7, which represents colleges and universities in Alaska, Arizona, California, Colorado, Hawaii, Idaho, Montana, Nevada, Oregon, Utah, Washington, Wyoming, and the Canadian Provinces of Saskatchewan, Alberta, British Columbia, and the Canadian Territories of Yukon Territory, Nunavut Territory, and the Northwestern Territories.

Tuesday, April 6, 2010

8-bit Wonders of the World

Recently on digg (or maybe it was reddit) there was a link to an 8-bit version of Pink Floyd’s “Dark Side of the Moon.” What is an 8-bit version of Pink Floyd’s “Dark Side of the Moon” you ask? Well, if you have ever played an NES game, the soundtrack to that game is 8-bit music. Here is an example from the 8-bit “Dark Side of the Moon.”

The “Dark Side of the Moon” cover is even replicated in wonderful 8-bit glory as you can see.

Now, I never knew there was a group of people who took songs and remade them in this wonderful format, but apparently there are other people in the world who enjoy this type of music like I do. I don’t know what it is about it; maybe it’s nostalgia. Maybe, I just appreciate the time taken to do such a good job on something like this, or maybe it’s just a passing fancy, but I’ve been searching out more 8-bit musical wonders and there are plenty out there!

My Chemical Romance “Black Parade”? Sure, here you go:

The Used “The Bird and Worm”? Why yes!

Queen “Bohemian Rhapsody”? And how!

Green Day “21 Guns”? Why the heck not!

Some of these remind me a lot of playing games like Tetris and Metroid. I could spend all night looking up songs and posting them here, but I’ll leave that as an exercise for you, the reader.

P.S. If you find a version of “Lass mich nie mehr los” in 8-bit, let me know.

Sunday, March 21, 2010

LDS.org - Support Materials Chapter - “Fruitful in the Land of My Affliction”

This is the lesson I am teaching today in Gospel Doctrine class. I really like the story of Joseph and how he turned his trials into blessings both for himself and his family.

LDS.org - Support Materials Chapter - "Fruitful in the Land of My Affliction"

Sunday, January 31, 2010

Guest Posting

I'm guest posting on my wife's blog once a month for a while to talk about music and what we're currently listening to in our house. Check her blog out at http://uniquety.blogspot.com. She's a righteous babe.

Sunday, January 24, 2010

And so it begins...

Tomorrow I start into my healthy kick again. I know that sounds kind of like an arbitrary day to start, but for the past two weeks we've had some people visiting our site from Germany, and we've taken them out and shown them to some good restaurants. Yes, another excuse, but no longer! I am going to get back into the habit of using my BodyBugg and entering my food consumption on the website. I hope to be back down around my low by summer time and I hope to stay there instead of going back up. Wish me luck.

Tuesday, January 19, 2010

Motivation

Last year between January and May I dropped about 55lbs of weight and felt really good. I did this using a BodyBugg device and being a stickler about entering my food intake and uploading my calorie burn. Jogging with my wife almost every night to help her train for the Wasatch Back Ragnar was also a large factor. My problem since May of last year has been the eating. I really enjoy food. Different foods, with different textures, with different spices really interest me. My wife is a great cook and she makes pretty healthy stuff, but I eat too much of it. That is my problem. I do like healthy foods, they satisfy my interest in different types of foods with different textures, tastes and spices, but I eat too much of them. Even healthy foods, when eaten in large quantities, will add to one's waist. I've been trying to get the motivation to be a stickler about entering my eating and calorie burn like I did last year, but I can't seem to do it. I don't know why, I felt way better in May of last year than I ever have in my life. I weighed less at 28 than I did in high school. Any tips would be appreciated.

Sunday, January 17, 2010

Old Times

In the past, my wife has asked me to play my trombone again. It's a "talent" I have and really enjoyed middle school through the first year in college. I started out in college as a music major. I really wanted to follow in the footsteps of Mr. Polychronis, my high school band teacher, and teach music to high school kids. Then, reality set in my first semester of college. I had 11 classes and 17 credit hours. I had to practice a huge amount and I realized I wasn't really that great at the trombone. I can play in groups pretty well and contribute a good sound, but I don't think I would ever be good enough to teach trombone to other people and have them turn out that great. It was a hard lesson I had to learn. So, after the first week of my second semester in college, I made the decision to switch majors. I went to the registrar and switched my schedule to be that of a computer science major. This decision was one of the best decisions I have ever made. I enjoyed computer science classes way more than the music classes, but I still played in a couple bands and enjoyed that. I think it was my second year in college that I stopped playing trombone at all. I didn't really have time in my schedule and I wasn't a music major, so I just quit. I've missed playing in a group. There is something about being in a group of musicians, and playing a piece of music that is really moving for me. Music speaks directly to my soul. Some pieces of music have the power to elevate my thoughts and feelings (this is mostly classical music; Dvorak's New World Symphony is an example). I haven't played my trombone regularly for about 6 years. I haven't practiced regularly and the only time I've played it is when my kids really want me to. My wife asked as a Christmas present to her that I audition for the EVMCO, an LDS music group that has children's choirs, adult choirs and an orchestra. I told her I would. I filled out the "I'm interested" form a week ago and received a response telling me about auditions and so forth. I'm nervous. I haven't played regularly in so long, I wonder if I am wasting the time of the audition people to go in there. I do love music; it has been a passion of mine for as long as I can remember. I miss it. So, Merry Christmas, My Love, I'll do my best.