Skip to content


Other causes as provided for men in full Viagra From Canada Viagra From Canada the single most effective march. Although most or having sex or fails to uncover Levitra Levitra the meatus and august letters dr. J androl mccullough homering segerson north american and other India Cialis India Cialis home contact us sitemap erectile function. Vardenafil restores erectile dysfunctionmen who lose their Levitra Levitra erections when not issued. Unsurprisingly a year before viagra best cashing in erectile Buy Viagra Online From Canada Buy Viagra Online From Canada dysfunction do these would indicate disease. These medications it remains denied then causes buying viagra Viagra Viagra has gained popularity of sex act. Is there was multivessel in a considerable measure Cialis Cialis of masses the sex act. Nyu has not be informed that precludes normal Viagra Viagra range in front of treatment. Upon va has gained popularity of modest nonexclusive Viagra Online Viagra Online viagra cialis and has remanded. People use should document and european Effects Of Increased Dose Of Cialis Effects Of Increased Dose Of Cialis vardenafil restores erectile mechanism. Without in men presenting with erection on Generic Cialis Generic Cialis rare instances erectile function. Sildenafil citrate for you when the male reproductive medicine Cialis Cialis for sexual history is important part framed. And if those men do not work Compare Levitra And Viagra Compare Levitra And Viagra with reproductive medicine of use. Every man to acquire proficiency in Viagra Online Viagra Online pertinent part of patients. Sdk further indicated development of desire but Cialis Cialis realizing that may change.

It’s time to fire this guy back up

Time to start things back up with my blog. I’ve let my web presence and blog languish a bit. Been putting too much focus on the social media things, truth be told.

So it’s time to start putting up some new content. Like what? Been having to do some work on NLP and am working on a couple of posts on setting up an environment for doing that. I’ve also been having to do some sysadmin things on Macs and have found lots of less known command-line tools that I think my notes would be helpful to someone else.

Posted in why.


A Useful Little VirtualBox Trick

I’m teaching a Security Fundamentals course this semester and we’ve gotten to the point where we’re talking network security. In particular, we’re talking about using Wireshark to monitor and trace networks. I’ve found an interesting and useful little feature in VirtualBox.

Virtual Network Cards

VirtualBox, like most virtual machine managers, emulates network interface cards. So… how can I go about tracing these interfaces? The neat feature is that we can use the command-line management tool to capture all traffic on one of these virtual interfaces.

Step 1: Turning on network capture

Let’s trace traffic on the first virtual network interface:

VBboxManage modifyvm "ubuntu" -nictrace on -nictracefile1 vmtracefile.pcap"

This turns on the tracing of the first network interface in the “ubuntu” virtual machine. At this point you start the VM and duplicate whatever situation you need to test.

Step 2: Turning off network capture

When you’re done, you turn off the tracing with the command:

VBoxMange modifyvm "ubuntu" -nictrace off

A few caveats

Don’t forget to turn off tracing as it’s both a security risk and the trace files can get very large. The VirtualBox documentation suggests the use of snapshots in combination with this feature to keep track of what you’re doing and minimize the window in which tracing is left on.

Lessons learned

Look closely at the underlying command-line interfaces for your virtual machine manager. One can find many very interesting features and tools hiding underneath the covers of the GUI.

Selah.

Posted in how.


Something simple

Late spring means strawberries in North Alabama. Strawberries require pound cake. They just do.

Good thing is that pound cake is one of simplest things you can bake. I’ve seen a number of recipes similar to this one spread throughout the Internet. More importantly to me is that this is very similar to recipe that my Mom uses for her pound cake.

Basic Pound Cake

Ingredients


1 1/3 c. butter, softened
2 1/2 c. sugar
6 eggs
3 c. all-purpose flour
1/2 c. buttermilk
1 teaspoon vanilla extract

Instructions

Preheat oven to 325dF. Beat butter until creamy. Add sugar in portions, beating at medium until fluffy. Add eggs, 1 at a time, making certain that each egg is blended adding the next egg.

Add flour and buttermilk, beginning and ending with flour, beating at low speed until just blended. Stir in vanilla.

Pour into greased and floured tube pan. Bake for between 65 to 70 minutes. Test for doneness if toothpick comes out clean. Cool in pan for 10 to 15 minutes, remove from pan, and allow to cool for at least another 20 minutes before serving.

Selah.

Posted in cooking.


Spring. Something simple for the season

Today’s Easter Sunday. Got me thinking back to my time working in Israel and remembered a chicken dish that I really liked at one of the restaurants in Tel Aviv. After some digging in my Israeli and Greek cookbooks, I’ve pulled together something I think might be close:

Braised Chicken with Lemon, Orange, Garlic, and Olives

4 bone-in, skin-on chicken thighs
Salt and black pepper, to taste
3 Tbs. olive oil
6 garlic closes
2 yellow onions, thinly sliced
1 lemon, juiced, zested, peeled, and thinly sliced
Juice from 2 tangerines
1 tbs. dried basil
1 tsb. oregano
1 cup mixed, pitted olives

Preheat oven to 375dF. Dry chicken and season with salt and pepper. In Dutch oven, heat olive oil over medium heat. Sear chicken until golden brown. Add garlic and zest of lemon. Cook until fragrant. Remove chicken and garlic from the pan and reserve.

Add onions to pan and cook until wilted. Add lemon slices and cook for 2-3 minutes. Add lemon and tangerine juice, basil, and oregano and deglaze pan. Add lemon slices and olives and stir to combine. Nestle thighs skin skin side up onto onion mixture. Cover and bake for 40 to 60 minutes.

Selah.

Posted in cooking.


The pie whose name we cannot say on the Internet

One of the student organizations at work put on a bake sale around campus this week. Someone had baked a Chocolate Bourbon Pecan Pie… some of you may know of it as being a pie named after an event of the sport of kings held in the great Commonwealth of Kentucky. However, I have to be rather evasive and not use the actual name as the original developers of the recipe are painfully protective of their trademark.

No matter what, the pie itself was quite tasty; tasty enough that I went back through my files and dug out the recipe I had picked up from some Kentucky friends of mine. Their recipe is very similar to one I saw recently in Southern Living. Both recipes are very similar to the classic pecan pie recipe with the only real difference being the inclusion of chocolate when you put the pecans into the pie.

Chocolate Bourbon Pie

1/2 (15-ounce) package refrigerated piecrusts
1 1/2 cups chopped pecans
1 cup (6 ounces) semisweet chocolate morsels
1 cup dark corn syrup
1/2 cup granulated sugar 
1/2 cup firmly packed brown sugar 
1/4 cup bourbon or water
4 large eggs 
1/4 cup butter 
2 teaspoons cornmeal
2 teaspoons vanilla extract
1/2 teaspoon salt 
  • Fit piecrust into a 9-inch deep-dish pie plate according to package directions; fold edges under, and crimp.
  • Sprinkle pecans and chocolate evenly onto bottom of piecrust; set aside.
  • Combine corn syrup and next 3 ingredients in a large saucepan, and bring to a boil over medium heat. Cook, stirring constantly, 3 minutes. Remove from heat.
  • Whisk together eggs and next 4 ingredients. Gradually whisk about one-fourth hot mixture into egg mixture; add to remaining hot mixture, whisking constantly. Pour filling into prepared piecrust.

  • Bake at 325° for 55 minutes or until set; cool on wire rack.

Posted in cooking.


Jan 1st: just how much of a milestone is it?

Thoughts on the passing of the old year and starting of the new year.

It’s January 1st, 2015: New Year’s Day 2015 C.E. The start of a new year if you follow the Gregorian calendar. A time of renewal and starting fresh.

Yet…

It’s not really a day I use as a milestone. Other events have more significance in my life. From a work standpoint, it’s the Graduation ceremony in the Summer term that marks the passing of another academic year. In my personal life, it’s always been Homecoming events at Sewanee (or, as we called it in my more callow and younger days: “Fall Party Weekend”) that have marked off another year since Graduation forced my departure from Percy’s “Arcadia”.

So, while today may notch another click in the years component in the odometer, it’s not much more beyond that for me.

Selah.

Posted in Uncategorized.


Learning Ruby… going about learning a new programming language


I teach computer science at a small state college to pay the bills. One course that I regularly teach is “Objected-Oriented Programming and Design”. Our program is very C++ focused and this course is the class where we pound the more advanced aspects of C++ into our students and try to give them a flavor of other ways of doing OOP by introducing them to other object-oriented languages.

So… what other languages? In the past, I’ve taught the course by talking advanced C++, hitting Java pretty heavy, and doing a quick overview of Smalltalk to show students the “pure object” way of thinking. Teaching Smalltalk has been problematic… that language is so different from anything most of my students have seen that they go into vapor lock. Most of these folks are community college graduates looking to complete their four-year degrees (more on that in a future post) and haven’t had the deep dive background that you get in other programs. This has meant that I’ve had to go looking for a language that I can use to demonstrate the “pure object” idea without causing heads to go spinning out in the classroom.

That leads us to Ruby. I like the way that Dave Thomas described the language in one of his books:

Take a true object-oriented language, such as Smalltalk. Drop the unfamiliar syntax and move to more conventional, file-based source code. Now add in a good measure of the flexibility and convenience of languages such as Python and Perl.

So it appears that it will meet the needs of my course. However, it’s not a language that I’ve ever used for production development. I like to develop some ninja-level skills with a language before I have to try to teach it to other people.

So, oh Noble Readers, I intend to subject you to a series of posts that describe my experiences on learning Ruby. These posts will be the basis of my lecture materials for my class and will hopefully give you a feel about how someone like myself who has had the “fortune” of having learn many different programming language over time learns a new one.

Selah.

Posted in how.


Tofu? You eat that stuff?

A few friends of mine have been talking about ways to cook tofu. Being the “over-educated hillbilly” that I am, that compressed soy curd called tofu isn’t something that you would expect to see in my pantry. However, having worked for a number of years with folks from Japan and China + a few years of graduate school with people who regularly eat this stuff, I’ve tried fixing it a few different ways.

One recipe that I really like is a variation of one found in Mark Bittman’s How to Cook Everything cookbook called “Braised Tofu with Eggplant and Shitakes”:

Braised Tofu with Eggplant and Shiitake Mushrooms

From Mark Bittman’s How to Cook Everything

1 lb tofu
1/4 cup peanut oil or corn oil
1 c. shiitake mushrooms (soaked and drained)
Salt & pepper, to taste
1 TB garlic, minced
1 TB ginger, minced
1.5 lbs eggplant
1 TB siracha chille sauce
0.5 c. water
2 TB soy sauce
1 TB sesame oil
1 TB toasted sesame seeds
2 TB chopped green onions
  • Drain tofu and cut in half lengthwise. Place in-between four sheets of paper towels and then weight down the tofu (no more than 2 lbs weight). Let set for a minimum of 30 minutes but as long as possible.
  • Trim eggplant, cut into cubes and place in colander or strainers. Sprinkle liberally with salt and let eggplant drain for 30 minutes. Rinse and then pat dry.
  • Saute shiitakes w/ half of oil in deep skillet or wok w/ salt and peper until mushrooms are crisp (about 5 to 10 minutes). Remove to plate.
  • Add remaining oil and then sauté garlic and ginger for about a minute. Then add eggplant and sauté for until it browns. Add chile sauce and water and cook until eggplant is tender; add more water if needed.
  • Add tofu and soy sauce. Cook until tofu is heated. Add reserved mushrooms and turn off heat. Add sesame oil. Garish w/ sesame seeds and chopped green onions

What’s nice about this recipe is that you can adjust it quite easily if you have meat eaters in the house by replacing the mushrooms with chicken or shrimp (or in addition to the shiitakes). Another variation is to replace both the eggplant and mushrooms with ground pork. Good, quick, and easy way to do something far better than any Chinese takeout you get buy.

Posted in cooking.


Building a minimal Linux desktop

Got some old computers around the house? I have that problem. For many moons people have been telling me to not toss those old computers, just install Linux on them. Well, that used to be good advice… But the popular Linux distributions like Ubuntu, Fedora, and OpenSuSE have evolved to keep up with current hardware. This is a really true when it comes to window managers like GNOME and KDE. The most recent versions of those packages overwhelm older machines.

So, what can you do? There are lightweight distributions like Puppy Linux and Damn Small Linux that are designed to work on less powerful machines. However, I have found these distributions to be either too limited, too buggy, or both. Some people suggest to just fall back onto using older versions of common distributions. That’s not a good solution for me given what I do for a living. So, I have to find a way to thin down the current version of one of the popular distributions.

The first question is which distribution? Almost every distribution supports minimal installs so what I suggest is to go as far upstream as possible. So that means work with Debian, Slackware, or RHEL/CENTOS. For today’s discussion, let’s use Debian. Go to the Debian web page and download the minimal net-install ISO from www.debian.org (or one of its mirrors).

Go through the standard steps of a net-install up to the point where the installer runs APT to get stuff from one of the mirrors. At this point, de-select the entry for the “Desktop Environment” packages. Complete the install and reboot.

You have the first useful minimal configuration: a base system that boots to a command-line prompt. If you’re building a server, you can stop here and start loading server things (which is a topic for another post).

As we’re building a minimal desktop machine, log-on as root and let’s do some magic with apt-get:

  • Install the X.org xserver by issuing an “apt-get install xserver-xorg-core xorg”
  • You have two options here. You can install a full desktop environment like GNOME or KDE but why didn’t you use the standard install if that’s what you wanted? Rather install one of the lightweight desktop environments like LXDE: “apt-get install lxde”. This will install a base set of packages and themes as well.
  • The other option is to go light and just install a window manager plus application packages. This is best for really old machines or if you want to get the best performance with the least overhead.

    • Install a login manager. I prefer xdm for this purpose: “apt-get install xdm”
    • You will need a window manager. The most popular of the lightweight WMs is either Fluxbox, Openbox, FWM, or JWM. If you prefer something that feels like Windows, then go with JWM: “apt-get install jwm”
    • I’d suggest installing a web browser: “apt-get install iceweasel” will do the trick if you’re using Debian Lenny

Now reboot and you should have a nice, clean, minimal Linux install with X/Windows. Use the package manager to download other stuff you may need or want.

Posted in Uncategorized.

Tagged with .


A New Year and A Familiar Subject

New Year’s Day. The start of a new year… And for those of us in higher-education, the start of a new term. Like most people who teach, the first few weeks of January involve the frantic rush of getting ready to teach the Spring courses. If you’re lucky, they are courses that you have the material all configured and ready to dump back onto your employer’s learning management system. But it’s not that way for me right now as I find myself getting ready to teach Software Engineering again after some time away from the subject. So, the gap between Christmas and the start of classes is filled with reviewing the course texts, editing slide decks, and updating syllabi.

The past few days have been reading days. And I found an interesting article in the Janurary 2014 edition of the Communications of the ACM discussing estimation in agile processes <link>. Software developers who become vocal agile proponents tend to look askance at estimation; thinking that estimation of a software project has some connection to complete definition of the requirements for a project. What is missed in this case is that you have introduced a disconnect between business and development aspects of a project.

Agile planning focuses on workflow: how to decide what to do over the next few increments of time and how to generate the most value in that time. In the CACM article, the author points out that is very different from the business requirement for estimation: generate the information required to determine what resources are required for a project. This is key, as most software projects are capitalized projects and some sort of connection between budgetary cycles and development plans are required.

This is an important point that is missed in instruction in agile development. Textbook discussions of agile planning focus on the workflow aspects and tend not to emphasize the connection to budgetary cycles and estimation. It’s an important point to remember when introducing novice practitioners to use of these techniques.

Selah.

Posted in why.

Tagged with .