December 21, 2007
This is only a test
Showing someone how to make a post in WordPress. Please ignore.
December 6, 2007
Rhetorical Question
Why do people who claim to love freedom constantly work to expand the government; the very institution whose sole purpose it to limit liberty?
October 4, 2007
Not Quite so Cool
This post comes to you via an AT&T 3125 smart phone with Windows Mobile 5.0. It has taken roughly 5.0 days to type this post.
September 27, 2007
OK, I admit it. This is pretty cool.
I typed this post on an iPhone. I am going to have to get me one of these.
August 23, 2007
It is easy to be brave from a safe distance
Sorry for the long delay in posts. It took a while but someone finally created a Google Maps powered routing tool for runner and bikers. It even lets you save your route. Below are a couple routes I have been looking at around my house:
- 15 Minute: A short timed route that takes just about 15 minutes for me to run.
- Here is the default 2 mile route I run around my neighborhood.
- 3 Mile Route: I have been looking for a good one for a couple years now. It took sixty seconds to find with this page.
- 3 Mile Number 2: Because who wants to go the same way every time.
- 4 Mile Route: Need a route that is longer than the 5k I will be running.
- 5 Mile Route: My first long, post 5k run.
- 6 Mile Route: This is a hill training route for my up-coming 10k.
- 6 Mile Route: Flat campus route for daily marathon training.
- 7 Mile Route: Final run before the Sept. 10k around Lake Hefner.
- 8 Mile Route: My first route that takes me through OU campus.
- 8.7 Mile Bike Route: When my shins get bad, and I have to take a break from running.
- 10 Mile Route: Double digits at last, and it only to me 9 years to get back to them.
- 11 Mile Route: At some point I am just going to have to circle the whole town.
- 12 Mile Pre-Half Route: Longest run before the half marathon in Tulsa.
- 14 Mile There and Back: Run out to lake Thunderbird rest stop and come back. Good hill work.
- 16 Mile Loop along Section Lines: Gotta love Oklahoma grid sections. Sure makes it easy to figure long routes. Sooner road and Depot Blvd mostly.
- 18 Miles East/West Lake Loop: Many marathoners don’t run more than 18 miles before their first. Hopefully this means I am within reaching distance.
- 20 Flat Route: First time over I-35 and back.
- 22 Mile Flat: Still trying to take care of my knee; so flat routes are the rule. Actual milage is a little over 22 but I honestly am not that picky any more… well at least until 26.2. Last long run before the OKC marathon!
July 17, 2007
Life is a foreign language; all men mispronounce it.
When I first starting working as a computer programmer, I constantly ran into the problem of bosses who wouldn’t appreciate the severity of the problem I was describing to them. After a number of years I improved on the situation by modifying the language I used when explaining a problem. This didn’t solve all of my employment issues (at the time I didn’t fully appreciate how dysfunctional the communication chain was in my employers hierarchy) but it helped substantially.
To understand what words mean when you are talking to programmer I recommend this article by Charles Miller. Here is an excellent example of a software engineering concept that non-programmers often fail to understand:
To a programmer, a problem is trivial if there is a clear solution, and the only thing that needs to be done is to implement it.
The only caveat is that triviality refers to how hard the problem is to solve, not how hard it is to implement the solution. So there is no necessary relation between a task being trivial, and how long it takes. To the programmer, once the plans for the bridge have been drawn up, the materials chosen properly and the model tested for how it would survive wind, traffic and earthquakes, actually building the bridge is trivial.
July 11, 2007
I am not sick. I am broken.
Firefox changed some of it’s defaults in version 2.0. The new defaults are mind-numbingly bad in some places; and simply annoying in others. Thankfully they can be fixed. Here are a couple of the worst offenders and how to fix them.
Changing Back to shrinking Tabs in Firefox
- Open a new firefox tab.
- Type “about:config” into the address bar
- Type “tab” into the filter field.
- Change the settings of both “browsers.tab.tabClipWidth” and “browsers.tab.tabMinWidth” to 5
- Restart Firefox.
Use a single close button on Firefox
- Open a new firefox tab.
- Type “about:config” into the address bar
- Type “browser.tabs.closeButtons” into the filter field.
- Change value to “3″ (without the quotes)
- Restart Firefox.
June 27, 2007
With foxes we must play the fox
Here is a list of Firefox shortcuts I have found over the years. I have kept this list on the company blog for months now, and yet, every-time I read over it I find something useful.
| Shortcut | Description |
|---|---|
| Alt + B | Open the Bookmarks drop-down menu |
| Alt + D | Select the current Location bar text |
| Alt + E | Open the Edit drop-down menu |
| Alt + F | Open the File drop-down menu |
| Alt + G | Open the Go drop-down menu |
| Alt + H | Open the Help drop-down menu |
| Alt + T | Open the Tools drop-down menu |
| Alt + V | Open the View drop-down menu |
| Alt + Enter | Open address in a new tab |
| Alt + Left Arrow | Move back |
| Alt + Right Arrow | Move forward |
| Alt + Home | Open the Home page |
| Alt + F4 | Close active window |
| Backspace | Move back |
| Delete | Delete |
| Esc | Stop downloading a page |
| End | Move to the bottom of a page |
| Home | Move to the top of a page |
| Ctrl + + (plus sign) | Increase text size |
| Ctrl + – (minus sign) | Decrease text size |
| Ctrl + 0 | Restore normal text size |
| Ctrl + 1 | Open Tab 1 |
| Ctrl + 2 | Open Tab 2 |
| Ctrl + 3 | Open Tab 3 |
| Ctrl + 4 | Open Tab 4 |
| Ctrl + 5 | Open Tab 5 |
| Ctrl + 6 | Open Tab 6 |
| Ctrl + 7 | Open Tab 7 |
| Ctrl + 8 | Open Tab 8 |
| Ctrl + 9 | Open Tab 9 |
| Ctrl + F4 | Close active tab |
| Ctrl + F5 | Refresh (override cache) |
| Ctrl + A | Select All |
| Ctrl + B | Open/close the Bookmarks pane |
| Ctrl + C | Copy |
| Ctrl + D | Add a bookmark (defaults to the active page) |
| Ctrl + E | Activate Web Search |
| Ctrl + F | Find |
| Ctrl + G | Find again |
| Ctrl + H | Open/close the History pane |
| Ctrl + I | Open/close the Bookmarks pane |
| Ctrl + J | Open/close the Downloads dialog box |
| Ctrl + K | Activate Web Search |
| Ctrl + L | Select the current Location bar text |
| Ctrl + M | Open a new e-mail message using the default e-mail client |
| Ctrl + N | Open a new Firefox window |
| Ctrl + O | Open a file |
| Ctrl + P | |
| Ctrl + R | Refresh |
| Ctrl + S | Save As |
| Ctrl + T | Open a new tab in the current Firefox window |
| Ctrl + U | View the source code for the current page |
| Ctrl + V | Paste |
| Ctrl + W | Close the active tab within the current Firefox window |
| Ctrl + X | Cut |
| Ctrl + Y | Redo |
| Ctrl + Z | Undo |
| Ctrl + Down Arrow | Select next search engine in Web Search bar |
| Ctrl + Up Arrow | Select previous search engine in Web Search bat |
| Ctrl + Tab | Select the next tab within the current Firefox window |
| Ctrl + Page Down | Select the next tab within the current Firefox window |
| Ctrl + Page Up | Select the previous tab within the current Firefox window |
| Ctrl + Shift + Tab | Select the previous tab within the current Firefox window |
| Ctrl + Enter | Add “www.” to the beginning and “.com” to the end of the text in the Location bar |
| Ctrl + Shift + Enter | Add “www.” to the beginning and “.org” to the end of the text in the Location bar |
| Ctrl + Shift + R | Refresh (override cache) |
| Ctrl + Shift + W | Close Firefox |
| Shift + F3 | Find previous |
| Shift + F6 | Move to the previous frame |
| Shift + Enter | Add “www.” to the beginning and “.net” to the end of the text in the Location bar |
| Shift + D | Delete the selected Autocomplete entry |
| Shift + Backspace | Move forward |
| F1 | Open Mozilla Firefox Help |
| F3 | Find again |
| F5 | Refresh |
| F6 | Select the current Location bar text |
| F7 | Toggle on/off Caret Browsing |
| F11 | Switch between full-screen/normal view |
June 26, 2007
The love of…
When money ceases to become the means by which men deal with one another, then men become the tools of other men. Blood, whips and guns–or dollars. Take your choice–there is no other.
–Ayn Rand
I do nothing but go about persuading you all, old and young alike, not to take thought for your persons or your properties, but and chiefly to care about the greatest improvement of the soul. I tell you that virtue is not given by money, but that from virtue comes money and every other good of man, public as well as private. This is my teaching, and if this is the doctrine which corrupts the youth, I am a mischievous person.
–Socrates
A wise man should have money in his head, but not in his heart.
–Jonathan Swift
Only sick music makes money today.
–Friedrich Nietzsche
Every time you spend money, you’re casting a vote for the kind of world you want.
–Anna Lappe
I hope that when I die, people say about me, ‘Boy, that guy sure owed me a lot of money.’
–Jack Handy,
I have become the tools of my tools
Here is a Linux command I never knew existing. basename returns a file/folder name without any of the leading directory information. If specified it even removes any trailing extensions. I have written entire bash subroutines to do exactly this; without the consistency of basename.
June 22, 2007
To discover the limits of the possible…
I am going to repost this letter by Shae Allen via the BizNik forum. It would be even funnier if it wasn’t my life we are talking about. I present, for your reading enjoyment, “If Architects Had To Work Like Web Designers.”
Dear Mr. Architect:
Please design and build me a house. I am not quite sure of what I need, so you should use your discretion. My house should have somewhere between two and forty-five bedrooms. Just make sure the plans are such that the bedrooms can be easily added or deleted. When you bring the blueprints to me, I will make the final decision of what I want. Also, bring me the cost breakdown for each configuration so that I can arbitrarily pick one.
Keep in mind that the house I ultimately choose must cost less than the one I am currently living in. Make sure, however, that you correct all the deficiencies that exist in my current house (the floor of my kitchen vibrates when I walk across it, and the walls don’t have nearly enough insulation in them).
As you design, also keep in mind that I want to keep yearly maintenance costs as low as possible. This should mean the incorporation of extra-cost features like aluminum, vinyl, or composite siding. (If you choose not to specify aluminum, be prepared to explain your decision in detail.)
Please take care that modern design practices and the latest materials are used in construction of the house, as I want it to be a showplace for the most up-to-date ideas and methods. Be alerted, however, that kitchen should be designed to accommodate, among other things, my 1952 Gibson refrigerator.
To insure that you are building the correct house for our entire family, make certain that you contact each of our children, and also our in-laws. My mother-in-law will have very strong feelings about how the house should be designed, since she visits us at least once a year. Make sure that you weigh all of these options carefully and come to the right decision. I, however, retain the right to overrule any choices that you make.
Please don’t bother me with small details right now. Your job is to develop the overall plans for the house: get the big picture. At this time, for example, it is not appropriate to be choosing the color of the carpet.
However, keep in mind that my wife likes blue.
Also, do not worry at this time about acquiring the resources to build the house itself. Your first priority is to develop detailed plans and specifications. Once I approve these plans, however, I would expect the house to be under roof within 48 hours.
While you are designing this house specifically for me, keep in mind that sooner or later I will have to sell it to someone else. It therefore should have appeal to a wide variety of potential buyers. Please make sure before you finalize the plans that there is a consensus of the population in my area that they like the features this house has. I advise you to run up and look at my neighbor’s house he constructed last year. We like it a great deal. It has many features that we would also like in our new home, particularly the 75-foot swimming pool. With careful engineering, I believe that you can design this into our new house without impacting the final cost.
Please prepare a complete set of blueprints. It is not necessary at this time to do the real design, since they will be used only for construction bids. Be advised, however, that you will be held accountable for any increase of construction costs as a result of later design changes.
You must be thrilled to be working on as an interesting project as this! To be able to use the latest techniques and materials and to be given such freedom in your designs is something that can’t happen very often. Contact me as soon as possible with your complete ideas and plans.
PS: My wife has just told me that she disagrees with many of the instructions I’ve given you in this letter. As architect, it is your responsibility to resolve these differences. I have tried in the past and have been unable to accomplish this. If you can’t handle this responsibility, I will have to find another architect.
PPS: Perhaps what I need is not a house at all, but a travel trailer. Please advise me as soon as possible if this is the case..
June 18, 2007
In a real dark night of the soul
I was amazed to find that when my blog went offline; people actually e-mailed me to ask when it would be back. I discovered more readers in the last few weeks than I was aware of in the last few years. Thanks everybody! I appreciate the kind words and comments.
The reason that I went down was due to the need to switch hosts to someone a little more…. well… sane. If anyone is in need of a good hosting service; I cannot speak well enough of Hostmonster.com! Oh, and if you have the options; stay away from iPowerWeb.
While I was fixing the website I updated the wine list with three new wines. Two reds and a wonderful white Riesling.
May 2, 2007
Surrender Hope all… wait, is that Snow?
I actually shed a tear yesterday. Jason accomplished what I thought would never happen. Liz (his beautiful and yet amazingly stubborn wife) went shooting for the first time. Though she had never before shot a gun, non of us doubted Liz’s shooting abilities. Mostly because I was already throughly convinced that she could kill any one of us, at any time, with anything she chose to use.
Hope you had a good time Liz! This finally proves, once and for all, that… “Guns don’t kill people. Liz kills people!”
May 1, 2007
MySQL Database Backups
MySQL AB has, in its Reference Manual for MySQL, a section on database backups. The simpliest way to configure database backups in MySQL is to “dump” the database (or the part of the database you want to dump) and backup that dump. The primary tool in MySQL for this is, appropriately named, mysqldump.
April 30, 2007
Development Life-cycle Integration
Now that I can focus on more application development issues at work, it is time to start bringing up some of the open source life-cycle tools I need. Integrating the individual tools (MediaWiki, Bugzilla, Subversion, Mailman, WordPress, etc..) requires some work. This has proven to be a little different than my previous experience because we are an Active Directory shop. MS Active Directory actually uses a form of LDAP for authentication but it is different enough that each of the tools I use requires a little… playing… to get it working. Here are the important links:
- –MediaWiki LDAP Authentication — Contains AD specific information in it’s section on configuration.
- –MediaWiki WordPress Integration — Specific information on getting the very best wiki software and the best available blogging software talking to each other.
- –Bugzilla/SVN/MediaWiki/Mailman Integration — A walk-though on getting magic identifiers on four of the most useful application development tools available. This functionally links Subversion, Bugzilla, MediaWiki, Mailman, ViewCV, Apache, MySQL, svnmailer, svn2cl, and Bonsai. I know of very few organizations that have such a complete set of development life-cycle tools. In addition you can add code auditing (via Codestriker), source tree monitoring (via Tinkderbox), automated developer/project statistics (via StatSVN), source code indexing (with LXR), and the list just goes on.
- –MediaWiki Active Directory Integration — This is a forum post that I found useful in the AD process with MediaWiki.
- –Bugzilla Option Additional Configuration — A subsection of The Bugzilla Guide. Provides support on setting up LDAP, patch viewing, persistent bug whining, dependency charts, and incident graphs.
- –Integrating Bugzilla with Active Directory — THE setup information to get Bugzilla working with an Active Directory Tree.
- –Scmbug Homepage — Scmbug is a tool to integrate software configuration management tools with bug tracking software (i.e. it connects tools like CVS and Subversion, with tools like Bugzilla and Mantis.)
- –Subversion and Bugzilla integration with BugTraq and Scmbug — An example configuration by Platinum Solutions combining those four tools.
- –WebSVN: Subversion repository broswer — Another Platinum Solutions document talking about WebSVN. WebSVN allows for web based browsing of repository data. It is different from a tool like ViewCV in that it supports Subversion authorization. WebSVN is not as advanced a tool as ViewCV but it’s native subversion authentication makes it a good fit in some places.
- –Bugzilla accounts in Subversion with mod_auth_mysql — Platinum Solutions has another great article on setting up shared users between Bugzilla and Subversion. This is much easier then configuring my setup with Active Directory authentication.
The reality is that if you company is not doing re-time build tests, nightly builds, automated testing, bug tracking with integration into you source control management system, and automated reporting; then your company is waisting developers time and resources. Open Source has only been as successful as it has because of the plethora of automated tools available to them. Your competition is using them… you better be. There are hundreds of freely available software engineering tools in the Open Source world. Check out Tigris.org for a fairly complete list.
April 27, 2007
AutoMouting Windows Shares
Found this article on using autofs to mount windows samba shares on demand. It is particularly nice because it requires no effort to use and automatically unmounts the share when not in use.
April 24, 2007
10 JavaScript Tips
Here is a lists of useful tips for novice JavaScript programmers. With AJAX becoming a way of life on the internet, the importance of solid software engineering practices has become more important. All too often neither JavaScript developers, nor “hard language” programmers think of JavaScript as real programming. Most people’s web experience would improve significantly if more people did.
February 17, 2007
God loves us and loves to see us happy
I have updated the my wine list. New to the list are a couple of Cabernet Sauvignons and a wonderful Bordeaux.
February 14, 2007
From What Dreams May Come
Harpers online has a well written, and thought provoking, article entitled “The Ecstasy of Influence.” It is about plagiarism and the role of influence on creative work. Besides, rare is the author that can reference both The Simpsons and Heidegger in the same article.
February 13, 2007
And the truth…
I have been glued to Cato-at-liberty for the last couple days. Cato-at-liberty is the official blog for The Cato Institute, the definitive classical conservative think-tank. I have become so sick of both parties (Democons and Repulicrates), and their constant hypocrisy that I haven’t even been able to blog about them. Reading the posts on Cato-at-liberty has been like a breath of fresh air for me. While I may still catch the occational literary trash; I have basically given up on intelligent political discussion, from the any mainstream media source.
Here are some of the web resources I have been reading lately. They have NOT been dumb-down for your reading pleasure: