Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Tuesday, May 9, 2017

Fascinating Things about Regular Expressions and Oracle

I'm finally doing some programming in my role as a programmer at work. I'm a "Support Programmer" which means my bread and butter is correcting the data the "Programmer programmers" didn't get right the first time. Occasionally, I get to modify code, and recently I wrote something that added some functionality to a piece of existing code. To help validate my change, I had to create a query that would parse a log message, and aggregate some data so I could understand what got processed by the code I modified.
I learned the following important facts:

  • REGEXP_SUBSTR is a great Oracle function. There are some quirks with it that need to be considered, but all in all, I'm trying to always use it instead of SUBSTR. One of the limitations in REGEXP_SUBSTR is that for now, there's no support for look behind or look ahead functions. To work around this, I had to take a REGEXP_SUBSTR of my REGEXP_SUBSTR.
  • Pattern matching requires its own mindset. You must not only keep the end result of the pattern you want in your mind, but you must also consider what the pattern is on the way to becoming what you want.
  • TIMTOWTDI is a blessing and a curse. There may be more than one way to do it, but there can also be more than one way to almost do it. This can be dangerous.
As I continue to grow and develop as a programmer, I chase after "The Better Way". Because SQL has a well structured set of instructions, that better way is often subtle, and involves understanding things like profile optimizers, and indexed searches. Every day I respect, and like SQL more.

Saturday, March 12, 2016

Things I've Learned

I Learned some interesting things about JavaScript.
It started with an assignment, and I just had a moment to hack out what it was I was discovering during spring break last week.
First thing:
When using JavaScript, you have to be mindful of your objects. It's very easy to change them, because when you pass an object to a variable, you pass the reference, and not just the values. In other words, the variable is the object, and not a copy of it. I captured this behavior in the screenshot below.


Screen shot of JavaScript and output























Another thing I learned:
Double quotes can bite you. When using a button to perform an action, I was having difficulty passing a parameter to a function. The reason why is because I had to pass the parameter using double quotes (it was a string id of a page element). I discovered that when you create a button, it's best to pass the action of the button in double-quotes. I then had to pass the parameter in single-quotes The code looked something like this:


getComp is a function I wrote to display the attributes of objects, hal2000 is the object whose attributes I will display, and conComp is the id of a p tag in the HTML of the page. I use it to display the object's attributes.
If I left out the 'conComp' part, and modified the function so it wasn't necessary (I hard coded a particular ID in place), then worked just fine. I even tried to single quote the second parameter, but that didn't work. The only way the javascript would run right was to Double quote the whole action parameter, and single quote the string parameter passed to the getComp function.

I'm more than halfway done with the school year and I'm learning a lot!

Thursday, February 4, 2016

To Do Lists and Task Priorities

Things for me to do:
  1. Update everyone on what's going on in my life, I'm busy
  2. Finish out the Two articles I have written about antennas
  3. Update LOTW to include my final entries from last year, and the QSOs I've had so far this year.
  4. Clean out the Ham Shack, and demo it
  5. Update my BASIC blog with a few Communion meditations

Update on What's Going On!

Short story: I've been working and going to college full time. Slightly longer story: I've been at Publix now 10 years. Last year I interviewed twice for jobs related to programming. Both were entry level jobs, and I was turned down for both. I believe that my lack of Computer Science degree was the main culprit for why I didn't get the jobs. To help alleviate that, I enrolled in and started taking classes at Florida Polytechnic University. Shortly after my classes began, I was given another interview, this time on my team. I landed the job! They are letting me start the job after the semester ends at the end of April. This has been a long time coming. I'll be a support programmer. I'll be on call, get woken up at Oh Dark:30, but mostly I'll be on dayshift, and I'll have weekends off. It should be great! I also get a raise.
Being back in school has been good for me so far. I'm learning a lot, calculus is fun again, I get to use a bunch of neat stuff, and I've even been given MS Office! Only bad part is that I'm always busy with school work. No real time to do radio, get outside, learn the programming languages I want to learn, etc. I'm busy. Very busy. I often wonder if I'm too busy. So far the answer is "not yet", and that's good. Somethings about being so busy have been a bonus. For instance: My oldest daughter is learning HTML because I have to learn it, and I showed her how it makes web pages work. She's getting a kick out of it. It's nice to discover that we could have this thing in common.
I'll say more soon, namely in my next blog about antennas. All this hard math I'm taking in school should be somewhat useful for building antennas, or at least that's my hope.

Sunday, November 1, 2015

Hard Facts, Updates, Happenings, etc.

Life is funny.
I'm planning on going back to school almost 20 years after I went to college the first time.
I'm going to be a Phoenix at Florida Polytechnic!
I must be crazy.
Hopefully, once I start applying myself to the coursework, I will soon be rewarded with a BS in Computer Science and Information Technology with emphasis on Cyber Gaming.
There's a lot of math involved, I'm glad I bought a TI-89 at a pawn shop in Atlanta, back in the day. Buying one new would be PRICEY! Some of the books I'll be getting are pricey too.
I'm excited about it though. It will lead to other opportunities at work.

It's time for a different role here at the big Green P. Not that I mind what I do now, there's other things to consider. I've been in this role for almost 5 years, working nights. It's halloween, and I'm away from my kids, again. I'll be gone during Thanksgiving, again. At least this year Christmas is on a Friday, and I'm off on Fridays. The only way I'll be off on Christmas is if I'm scheduled off (Fri, or Sun) or I take vacation. I'm not complaining about the work. I'm pretty good at what I do, and it's challenging at times. I love it when something new breaks, and I get to help fix it. Especially when I'm the one who bird dogs the problem, and can identify the issue. Good problems like that make me enjoy my job. Sometimes people are what make it challenging. That's how I spell "annoying". Especially when something has the same problem over and over again. Times like that make me glad I know the Serenity prayer, thank you Uncle George (Drouet)! He had it on a placard that hung on a wall somewhere in our house. It was loose, so I hijacked it when I went to college the first time. I keep it in my radio shack now. Speaking of radio...

Radio updates:

Here's the Situation at KG4GVL:

Any attempt I have made to release a post about the W3EDP antenna failed.
I've got about half an article written. I keep thinking I'll come back to it, but it hasn't happened.
Life happens. That's all I got to say about that for now.

QSO Wise:
My attempt to average a QSO a day, and operating at least twice a week is floundering.
I have no QSOs recorded in July, a smattering in August, none in September, and only some toward the end of October. I would like to think I am in the middle of a bit of renaissance, though.
Here's a little math to help explain.
On LOTW so far, I have 84 contacts for the year. That means I have 281 contacts left to make for the year to make my average of 1 per day. From the day after the last entry in my log book to the end of the year is 65 days, leaving me about 4.3231 QSOs per day to make my average. From the 26th to day, I've had some radio activity, so the average has changed, I just want everyone to understand where we are.

***EDIT***
01 Nov 01:30 EST (was just 1:59, TIMEWARP!)
Recrunched the numbers based on my QSO count after my birthday. I have made 4 so far on 01 Nov. I didn't do as well on some of the days before, but I didn't truly understand how far behind I was either. I'm doing good over the course of the week, but my average QSO rate is up to 4.4333333/day if I'm going to average 1/day for the year!
***END EDIT***

The last entry in my LOTW logbook is for the 26th of October 2015. That was my birthday, any my wife graciously allowed me to pursue radio much of the day, until the kids got home from school. I was off that evening from work, so that helped too. I managed to make 9 contacts (10 counting the SOUTHCARS net checkin, it's worth getting a number just to check in on your birthday), all voice contacts, mostly on 15m, some on 20m. One was even a DX contact! Next year, I'll have to make a concerted effort to keep a theme. maybe do 13 contacts on 3 bands (I'll be 39), then change QTHs, or something like that. Of course, next year, my birthday will be on Wednesday. Not much happening in the middle of the week.
Maybe a QRP CW OPS contest or something.
I hope I'm not at work all night.
Night shift is getting old...




Sunday, September 27, 2015

Learning, Loving, Laboring

I really want to talk about what I've been learning. It's hard right now, because I'm sure it would take a good solid hour to type everything I'm thinking all out. It's coming. I've been learning about enumerables in C# and .net, and some things are boggling my mind. I have however gained a new understanding of the beauty and readability curly braces lend to properly developed code. There's an important lesson in this chapter, I don't want it to escape, I'll comeback to this thought later...

Right now, I'm up late because I got home from work, ate a snack, and got to work telling my wife I love her in a way that makes sense to her. At least I'm trying to do that. I want to speak my love into my actions every day. It's not always comfortable, but it is often rewarding.

There's aspects of my job I love, and others I don't love. I try to adapt every shift to what's demanded of me, and to learn some tidbit that will make my job easier. What I learned tonight: If someone is determined to do as little work as possible, they're not checking to see if they make mistakes.
We'll see how that goes Monday.

I'm going to bed.

Saturday, May 30, 2015

Just When Somethings Start Going Right....

Other things start going better, and the first thing you were working on starts getting put off.

I've got about half a post written for the W3EDP antenna. Usually I get an article done sometime during the month of May about the W3EDP, but I don't think it will be ready by tomorrow. Tomorrow is my wedding anniversary, so I think blogging will be low on the priority list of things to do. I'll get it done during June, before Field Day, because hey, the W3EDP would make an awesome last minute field day antenna for someone out there, and they'll need to know how to make it, and how other people have used them. I have, however, been fairly radio-active recently, last week, I had two days of QSOs, and I had 7 total QSOs, this week I haven't been as active, but that's because something has been consuming all my time.

I've been studying C# like mad, preparing for an interview to be held this Thursday. As of right now, I'm in virgin territory in my book, covering things I didn't get to when I first picked this up back in February. If I win this job, I'll have most evenings and weekends off. I'll be salaried, but hopefully making more money than I am now.

We shall see.

Other news:
Everyone in my family has been sick in May, and Murphy's law is in full effect. I'm kind of sick of May as a result. I've got two kids with strep, one with stomach troubles, and the baby had a cold. My wife had some issues, and is battling a head thing, as am I. Even the family vehicle has been sick, we blew a tire out and it will need to be replaced. Fortunately, it was one that was due to be replaced anyway.
The house next door, where I took the pictures of the Tillandsias got renovated. The poor house needed it, and the new owners worked hard on it. One negative though, is that the limbs that grew most of the T. setacea were removed. Because it is the least common bromeliad on my street, it made me sad. However, there are other colonies on the street, and I'm sure it will be fine.

With school winding down, sickness, and new job opportunities, May has been an interesting time. June could be even more interesting.

I'll make sure to keep both eyes open.



Tuesday, May 21, 2013

Heathkit + Ten-Tec = AWESOME?!?

... If Heathkit (Yes, they are back from the grave again!) could team with Ten-Tec's line of Rebel XCVRs to produce an expandable line of radios that combine kitbuilding, SDR, and programming?
Think K2, but simpler. Maybe start off with single band dc receiver. The next part of the kit could be an interface that allows you to hook in a computer. So now you've built the basis for an SDR receiver. Then you can add a TX board, and go on from there. By keeping it modular and open source, you can keep cost down. Plan it the right way, and you could even use it in a class to teach radio fundamentals, and licensing that goes beyond the usual "Memorize and regurgitate".
  I think my ham radio generation of operators could really get into something like this. I'll take the Heathkit survey when I get home. I hope you will take it too.

UPDATE

Took the survey, while sitting in my radio shack, with an SW-40+ tuned to a QSO between W9ZN and AA4MC great CW ops those guys! remarkably clean fists.
Took the survey on my cellphone, something I don't think I could solder together myself (but I might be willing to try once!), in front of an old Swan MX100 and a partially disassembled Heathkit station monitor (HO-10).  I told them I had two Heathkits. Sadly both are out of repair at the moment.
I hope they at least offer some spiffy green paint for sale!

Monday, May 23, 2011

Teaching Myself C.




Once upon a time, near a clothing drop box in a place far far away, I found an orphaned book, sitting lonely atop a stack of sad faced abandoned clothes and whatnot.
It's Title: Teach Yourself C: Second Edition
Awesome!!
It was, apparently abandoned from some hapless former student's appartment, maybe a roomate had the decency to take the student's clothes/material possessions to a donation box, as opposed to merely throwing them into the garbage. For what I know, a sad mother may have dropped off her child's things after an untimely death. However it got to being there, in a box by a clothing donation drop off, I took it up, and looked it over. A smile graced my face.

I avoided The C Programming Language in Highschool. The closest I came to ever messing with it was with a one week crash course in tcsh in a systems administration class. I thought that C was too much for me. It was for the real 1337 haxx0rs. I'm just an idiot who loves Jesus, making omelettes, and (although not then) coding in Ruby...
I picked the book up even though at the time, i had no way of even compiling any code I would write. I thought to myself "Surely there is something open source for C on Windows XP" I hadn't had my 'I see the light' moment with operating systems. That was about 6 months away. At that time, my mind was absorbing a vast array of everything going on in the world. I was becoming a father soon. I still felt newly married. I had just sold my favorite radio in preparation for paying bills. My inner nerd needed a challenge. Time for me to program once again!

I never did find an open source C compiler that I liked for windows XP at that time... It did however, get me searching for something else, a way to hack around using SOMETHING, ANYTHING, which lead to me discovering "Learning to Program" by Chris Pine, and began a long love affair with ruby. Ruby lead me back to Linux, and Linux has given me the tools I need to create/compile C code.
Back to Teaching Myself C!
I've made several starts at learning what's in this book, but various things (including a class in C++ that I didn't want to get sideways in in the nuance differences between the languages) always kept me from getting past the first chapter. Well, I finally started learning it forealz, and am on Chapter 2.
Hot Dawg!
I'm having a lot of fun with this book, partly because it's old, the second edition has a copyright of 1994, and partly because programming has changed so much since Herbert Schildt first wrote this. I'll try to keep you posted on my C-Adventures, and I leave you with the following quote from the preface:

C is the most popular computer programming language in the world. The reason for this is simple: programmers like it. Once a person learns to program in C it is very uncommon for him or her to switch to another language (except, of course, by moving on to C++, C's object-oriented relative). C combines subtlety and elegance with raw power and flexibility. It is a structure language that does not confine. C also is a language that puts you, the programmer, firmly in charge. C was also created by a programmer for programmers. It is not the contrived product of a committee, bur rather the outcome of programmers seeking a better programming language.

Thursday, October 14, 2010

New Ubuntu, or My Meerkat be Maverick!

So I took some time Monday and installed the latest and greatest Ubuntu, 10.10 Maverick Meerkat.
Let me say this,
I am getting tired of installing a new OS every Six months, lol.
That being said, Maverick Meerkat is pretty slick. I did a fresh install, completely wiping out my old system, although I did do quite a bit of copying my files from a backup once the installation was complete. Everything seems to run a little better now, I am using the "Proprietary" video driver, I haven't installed apache or Drupal. The machine is running smoothly, and cooler. The fans definately are not working as hard. Maybe they finally got flash right! I have installed ruby, from source, following the instructions I previously gave for Ubuntu 10.04. I didn't doubt they would still be valid, having done this long enough to understand when I stand a chance of changing something that will break everything else. Everything is in a different font than before. I don't understand how that makes things better, but I think it does. Somehow, I have convinced myself that the rounder looking font has made the electrons move faster, and therefore, boosted computer performance.

In a nutshell, I like it, but I'm tired of liking something every six months.
l8rz.

Tuesday, September 28, 2010

Source Installation of Ruby in Ubuntu

In order to get ruby 1.9.2 running on Ubuntu 10.04 (or before, it's been the primary OS I've been using since 2006) you will have to build from source. Don't let your 'newness' scare you, I was just as new when I started doing it a while back, and I learned a lot about source code and the build process. Hopefully you can benefit from my mistakes, I mean, "experience" :)
First things first:

1. You will have to uninstall your current ruby. All gems, all ruby libraries. Everything. When you build something in Ubuntu, the resulting binaries are kept in a different place than if you install from a package. Installed packages go to /usr/bin/ and home rolled binaries go to /usr/local/bin/. The difference is huge. Packages installed in /usr/bin/ are maintained by the package manager. If you delete a package there, your package manager (synaptic) won't like it. Packages installed in /usr/local/bin are your responsibility. You will have to keep the binaries installed there up to date. No big deal, I'll share a little script I wrote (in ruby) to do just that after I am done explaining how to get to that point.
2. Go ahead and download the source code. Normally, I would tell you to grab dependencies, but I want you to get the source code now for a reason. Read this page, http://www.ruby-lang.org/en/news/2010/08/18/ruby-1-9-2-is-released/ and then download the source that ends in .tar.gz
3. Open a command terminal (Applications > Accessories > Terminal Its Icon is a black box with ">_" inside of it.
issue the command "tar -xzvf /path/to/tar.gz" if you download things to the Downloads folder it will be
tar -xzvf ./Downloads/ruby-1.9.2-p0.tar.gz
notice the little dot in front of the first /? that means "start looking in this directory."

You can use the tab button to complete the command, for instance I would type tar -xzvf ./Down and the tab would complete the folder name and then "ru" to complete the .tar.gz filename. Tab completion is laziness at its best!

4. after the tar command works its beautiful magic, type
cd ./ruby/ext/
that will put you in the ruby source code directory for ruby extension libraries. now type
ls
to list out all the files and directories in this folder.
What I am having you do is look at the various pieces of ruby that may or may not install when it's installation time. It will help you install dependencies.

5. Time to hunt for dependencies! Open synaptic and start searching. Use the real search tool, not the quick search. The packages you need to install end in "-dev". These packages are actually C header files the make tool will use to build your ruby!

6. You still have your terminal open right? Most of the entries you see are directories that contain the source code for building different parts of the ruby library. Ruby doesn't *technically* need these these parts to be ruby, but they do make ruby useful. The bad news is that you have to have the dependencies installed in order to compile the source contained in these directories.

7. Back to Synaptic! Before you build ruby, you need to install some packages that will let you build anything. First search for something called "build essential" The first package that results will let you build source code, click it, and get it ready to install, you are not done yet. Second, search for "autoconf". You will need it to preconfigure the building of ruby. Next search for a package called "bison" You will need to check that one to install as well. The final tool you will need is "subversion", which is how ruby keeps track of itself once you are ready to download the absolute freshest source code. Now let's find some libraries that ruby depends upon. First, search for "readline dev" This one is tricky because you will find the package you want listed as "libreadline5-dev" there are a lot of choices, because there is much variety in the readline library. I compile my ruby with readline 5. Now search for "openssl" This one is really tricky, because the library you actually want to install is called "libssl-dev" There is wisdom to be gained by looking around at the results of your search, namely that there are libraries that have the name 'ruby' in them! Do not install them! You are on a different path. Their path is the one you are leaving. One benefit of installing the openssl development library is that it also depends upon the zlib library, which ruby also needs! Two dependencies for the price of one!

8. Install the packages. It may take a while.

9. Now that those packages are installed, you are ready to go back to the terminal and begin building ruby. Go to your terminal and type "cd .." That means, "change directory, to the one immediately below this one." That should be the root directory of your ruby source code. The magic begins now.

10. First, type "ls", and look at what is there. A lot of files end in ".c" : That's your source code! In a minute it will become your ruby mine. Next, you need to type "sudo autoconf" at the command prompt. That will generate a "configure" script that you use to configure your source code to your environment.

11. next you will need to type "./configure --enable-shared" notice the . and the / in front of configure. they mean 'use the configure command located in this directory, furthermore, use the flag that will configure the source to generate shared objects library.' The shared objects library is important if you want to use shoes, or rails.

12. Time to make! Type "sudo make" and watch the code work. It should take a few minutes, but at the end, you will see success.

13. Test the code! Type "sudo make test" to test the code. If it passes, you will be ready to install.

14. Install the built code! Type "sudo make install". This will install the code you will be running.

15. Now you need to clean up your mess. You want to leave your source clean, so you type "sudo make clean" to clean it up.

16. You have the ruby! Yippee, but you are not done. First visit the Ruby Core Page and look at how to install the source code.
Mull it over!
Are you really bold?
http://pastie.org/1187982 for my script on updating my ruby.

Tuesday, May 11, 2010

New Jorb!

JEEEEAAAAAAARRRRRRRRRBBBBB!!!
I have a new one. Effective May 22nd (first day of work is technically the 24th), I am transferred to the Manufacturing Systems department as an intern! Yays! I get to be the do-boy again! Apparently I'll be doing interesting things with databases and VB for Access. Yes, I said Access, as in that Microsoft product that costs beaucoup de l'argent! Biggest change for me is that this is a day job. For the last 4.5 years I've worked the night shift doing something I am not even remotely interested in doing for another day in my life.

The company I work for is a good company to work for, but many times you have to take some 'less than desirable' (technical term used is 'crappy') job to get your foot in the door. When I first took this particular job is was something to do in the mean time while I continued raising support for the homeless ministry I started in Orlando. Economy and my own fund raising inexperience meant that things kind of floundered around until I had to give it up. It's always been a dream of mine to help churches understand that God doesn't take the 'special' and make them do great things, He starts with the willing. Watching my dream die a slow death was hard. Not to say it's dead, volunteers in Orlando continue the work to this day, but my dream of doing it full time is not working out. Plan B became a career in field of problem solving known as programming. Publix (my current employer) has many positions in the IT field, and I began pursuing a job in that department about two years ago. Seeing as my degree was in an 'unrelated' field, I began taking classes to complete a degree in computer sciences, and that is going ok, Sometimes better, sometimes worse. At my current rate, I'm about five years from a degree, haha!
that stinks.

So I'm taking a chance here, breaking out of a place where I don't like working, but that has some level of comfortability. It's a long row to hoe I'm on, but the work is steady, and I'm moving to a more rewarding job now intellectually. I also will be looking for full time work at the same time. Who knows, a year from now I could be slingin' C at production line controllers, or introducing the web development team to pair programming. Mostly, I'm grateful for the chance to meet new people, and be home at night. I think it will help my girls if I'm home at night, with mommy.
l8rz!
GB HOYT

Saturday, February 20, 2010

The... "Recipe"...

I have applied some interesting tags to this post, so I should define exactly what I am talking about here, I don't want there to be any confusion:

The point of this post is to provide my AMAZING recipe for red beans and rice.

However, I am hoping to kickstart some discussion about programming processes. For me this is an intersection of things, we are at a nexus so to speak, between how my brainz applies thing I learn to reality. Welcome to my worldview. First things first, here's the recipe:

Red Beans and Rice
--GB Hoyt style--

(feeds 8, maybe more)
ingredients:
  • 2lbs red beans, dried
  • 1 cup all purpose flour
  • 1 cup olive oil
  • 2 32oz boxes of chicken broth
  • 1 head of celery
  • 1 green bell pepper
  • 1 red onion
  • 1 bunch green onions.
  • 2 tsp rubbed sage
  • 2 tsp white pepper
  • 2 tsp black pepper
  • 4 cloves of garlic
  • 3-6 bay leaves
  • garlic salt (to taste)
  • Tiger Sauce brand hot sauce
  • Sausage, something with flavor, traditionally, andouille



NOTE:
To make really good red beans and rice, that will feed about eight adults all the beans they want, you need a two pound bag of dried beans. That is important. Early iterations containing canned beans were judged to be definitely inferior to later iterations containing more labor intensive dried beans.

30 hours prior to serving time: in a large bowl, start soaking the beans, cover them with about 2 inches of water.
Right before bedtime: Drain and refill bean water.
Right after waking up: Drain and refill bean water.
The previous steps will help eliminate the 'aftereffects' of eating beans, but it's not fool proof, I understand the Amish let their legumes sprout for the same reason before cooking, I haven't tried that yet.

About five hours prior to serving time:
Make a roux:
in a black skillet, or pot you will cook beans in, heat the olive oil to about the temperature you would cook hotcakes at.
combine flour with black pepper, white pepper, and sage. Slowly add the flour mix to the hot oil, stirring often, try to evenly add it across the bottom of the pan. There should be enough flour to make the mixture thick, but not gloppy. It's an art, making roux. Let the flour darken until it's a dark brick color. you don't want to scorch the roux, so cook it slow, only turning the heat up if you have to.
If your Red beans are to be cooked in a different pot, you can go ahead and start warming up the chicken broth, adding the bay leaves, garlic, and a little more sage. When the roux is brown enough, add it to the broth, stir well, turn the heat up and bring to a rolling boil. If you are cooking the beans in the same pot as you make the roux (this is ideal, dutch oven to be 'authentic'), add your broth and spices to the roux. When the broth/roux mix starts to boil, drainthe beans and add them to the pot. boil on high for about 15 minutes, then turn heat down to a low boil. It should be about 4-5 hours till serving time. Two hours before serving time, dice the onion and bell pepper, and slice the celery to the mix, stirring each into the mix. then slice and add your sausage, let cook for about two hours. If you add the celery, bell pepper, onion, and sausage too soon, it will break down into flavourless goo, too early, and it won't marry. I find that dicing the onion and bell pepper, and leaving the celery in bigger chunks marries all three flavors, and adds great texture. Cook 4 cups of dry rice about half an hour before serving time. I also make cornbread to go with this meal. Shortly before serving, chop the green onion, and let each person add to taste to their dish. This is a functional garnish. Not only does the onion look pretty on top of the dish, but it is what really sets the flavor off.
enjoy!

Now, what does this have to do with agile development? Namely, this recipe was developed using Behavior Driven Development (BDD)
It contained "Domain Driven Design" where the domain is the collection of people eating at my house on Friday nites that I am off.
It contains "Acceptance test driven planning" because if the Domain disapproves of the flavor, it must be modified!
It also contains "Test driven development" because certain assumptions were made like "The red beans and rice should be slightly pasty when served", early iterations were too watery, then too gooey, finally, the magic ingredient (the roux) emerged when an older recipe was perused. I know you don't see but what one recipe here, so this is where I pose a question to the group, What's the next test? Where goes the next iteration? Should I codify the sausage, and say "always use this sausage", should I detail out the roux? The right roux has definitely played the biggest part of making this dish right. That, and waiting till the end to add the green onion.

l8rz!

Friday, February 19, 2010

Yes, It's True.

I should be in bed.
It's red beans and rice day, officially, and it always is that I work really hard at delivering this meal on friday nite. going to try some new sausage in the recipe, maybe some kielbasa, nothing too spicy, although if I think I can get away with it, I would like to try a little andouille, or something equally "Louisiana" flav0red.

I tried to listen to a conference yesterday, and that was full of FAIL.

ok, so I have an idea, and as far as I can tell, no one is doing it yet, so I am now left with that dangerous conundrum, to collaborate, or to not collaborate? Basically, I am not looking to do anything new just yet, just trying to do something in a new way, synthesizing some goodness into an otherwise dreary outlook, and having some fun learning about Eclipse. Such as that is, I am trying to put a little jruby on machine(s), maven, some Android dev stuff, all in an attempt to tidy up my brainz and get to hacking my way around a Motorola fone, like say a Droid (snicker snicker), maybe I will own one by the summer. My Bro-in-law has a droid now, and I am trying to think of a good app to write for him, he's in the landscaping industry, so I've gots a few ideas. right now, I have a couple of ham radio ideas also floating around my noggin, but in order to really work them all out, I must first attain some knowledge of how exactly everything fits together.

I ain't gonna lie, Eclipse got a learnin' curve, I mean, POM, Java, all this java junk is weird to me right now, I admit, it scares me, but I see in it all a potential to take me to the next level. I have got to do it! Been a while since I've had a case of the "got to"'s like this.
So,
I have goals.
Goal 1. Learn some Java.
Goal 2. Learn some Eclipse.
Goal 3. Develop useful app for Android using BDD.

n'om sayin?

Wednesday, August 13, 2008

To Cut a Precious Rock

Howdy!
Recently several security vulnerabilities discovered in ruby reared their ugly head, and a fix was in order. Now if you are an Ubuntu user like myself you quickly discover that while Hardy Heron was shipped with the latest and greatest patch for ruby in its day, it often lags seriously when it comes to security updates. The best solution, I think, in such a case is to go ahead, bite the bullet and compile ruby (or any other software for that matter) from scratch. I call this the best solution because after some brief searching for a package version of 1.8.7, I had an adventure.

What you need to understand is that when I say I had and adventure, what I mean is that something went horribly wrong. It started with fireworks. The wonderful night blissfully waxed, and I sat enjoying the latest issue of Linux Pro magazine, reading some useful article about Totem (mainly useful for putting me to sleep) and gradually feeling the weight of my eyelids increase, when all of a sudden, BANG!!! Blah, some neighborhood kiddie decided 12:37 was a great time to light firecrackers. Startled me awake enough to make me want to hack something. In this case, I ran headlong into the ruby prollum. Previous attempts at compiling ruby from source were only marginally successful. I utterly failed when it came to compiling a useful ruby, especially when it came to be generating something useful for rails, and let's face it. When it comes to making money with your Ruby programming knowledge, rails is going to be your best bet. In my effort to grace my lappy named (aptly I might add) "PortableFun" with some excellent ruby versionings, I discovered that Google is a fickle friend. I'll never trust it the same again. In short, I discovered This "Nerd's Only" site when googling the phrase upgrading ubuntu 8.04 ruby 1.8.7 or some esoteric combination thereof. I followed instructions, and still, my tired brain musta did something very bad, or I didn't have the switch flipped to "More Magic" or something, because I wound up updating about half of my core packages to the 8.10 version of ubuntu!

Yeah for fail! Now I not only didn't have ruby 1.8.7, i didn't even have a working os. I took this as a sign that sleep was more important than ruby at this point. The next day I reinstalled my os, reinstalled all the important packages I thought I needed to make things work, and got back to fixin' the ruby problem. With much trepidation, I ventured back to the backstabber, Google, and tried another link. Throwing caution to the wind, I discovered a wonder place full of joy called Tag Ubuntu, and they seemed to understand my problem. Compiling ruby is a matter of knowing what all you need to enable. The source code comes with many wonderful libraries, and options, but it's so flexible it won't do crap unless you specifically ask it to look for that crap in place x in your filesystem. I followed these instructions:

$ tar zxvf ruby-1.8.7-XXX.tar.gz
$ cd ruby-1.8.7-XXX
$ ./configure --prefix=/usr/local --with-openssl-dir=/usr --with-readline-dir=/usr --with-zlib-dir=/usr --enable-shared --enable-pthread --enable-install-doc
$ make
$ sudo make install

You are responsible for finding the tarball, usually the latest and greatest is available at The Main Ruby Site and untarring it wherever you want to compile the code. That little snippet was pretty much word for word from the ubuntu blog, but I did add the last three ./configure tags cause I find them useful.

Once I had ruby 1.8.7 installed, I got the latest issue of rubygems and installed it and then had a lot of fun installing a lot of gems.

hopefully someone can use this meandering thought page to get themselves up and running on ruby 1.8.7

I loves me the rails!
GB Hoyt

Thursday, April 24, 2008

I feel cheated...

so,
today's the day,
yet there's no Hardy Heron Final. I was so hopin to do that last nite.
jerks...
instead i replaced a battery, and discovered it's not working! great... just spent some dough on something that isn't functioning properly.
i think that it's a computer problem, not a battery problem, for what its worth.

gosh, now what am i supposed to do about ubuntu?!? did some browsing through the website though, especially in the merchandise department. they have some kik-tater teeshirts available for this release, when they release it.
sweeeeeat!
i's got a 97.04% in my C++ class, that's cool. Now I need a job writing programs that are useful. hoosgot work for me?

PIECE OUT!
GB Hoyt

Thursday, April 10, 2008

mk...

ok, this is for random thoughtness, and updates involving my general social life, programming adventures, randomnesss, and linking type actions to other, more focused blogs...
ok, brb...