After hearing a story about the FDA investigating reports of problems following LASIK eye surgery on NPR this morning, I followed the provided complaint link, and reported my experience to the FDA. In the NPR story it was mentioned that it is believed as many as 5% of the nearly 1,000,000 LASIK patients per year have some difficulties following the surgery. Unfortunately, the FDA has only received about 140 reports of issues in the past ten years.
If you had LASIK surgery and, like me, are experiencing vision that is less than what you expected, or worse, some debilitating side effects, please take 10 or 15 minutes and complete the FDA’s adverse effect form.
The form isn’t the most user-friendly, and is at times confusing. You will need to enter a made up identifier on the initial page, and select the “adverse” category on the subsequent page. I described my situation in detail on the next page, and skipped over all the drug/dosage type questions. At the end information about the reporter (who may or may not be the affected individual) is collected. I have no idea what will happen as a result of my submission, but I feel better for having reported my difficulties.
Recently I have been dealing with a particularly egregious form of spam - technical recruiter emails. One company in particular, Talentberg, stands out for its lack of professionalism and ignorance. They absolutely refuse to prune their mailing list, even when repeated requests are made. And they attempt to justify their actions through an intimidating, if false, disclaimer.
As an Information Technology professional I have maintained a current copy of my resumé online, both on sites of my own as well as on Dice.com, for more than a decade. Technology placement firms and recruiters traverse the web and catalog all the resumés they can find. Each resumé is indexed by keywords, allowing the recruiter to automatically send out emails soliciting interest in new positions they are trying to fill. Post a resumé that is buzz-word compliant online and you too will start getting “Urgent Opening - Respond with Rate Immediately” emails.
Are these messages spam? Not in the strictest sense; placing your resumé online for all to see is advertising and contains an implicit offer. The recruiter is responding to that offer. However, these messages are still in a bit of gray area. They are unsolicited, and often are wildly off base with regard to the alignment of the opening they tout and your actual experience or interest. How the sender of these messages responds to requests to cease sending the emails, is the final criteria that determines if they are spam or not.
Most recruiters understand relationship management is their true business; can they develop a cordial, professional relationship with me that is mutually beneficial to all involved? Unfortunately, some feel that high-pressure and a lack of common courtesy is warranted, even acceptable. Who cares if we trample the sensibilities of one or two or even a hundred people we blindly email? After all, there are lots of IT professionals out there, we’ll focus on the ones who aren’t squeamish about integrity or ethics. This descent into used-car-sales techniques is not an endorsement.
The disclaimer that Talentberg, and others, use to claim their message isn’t spam is Senate bill 1618 or House resolution 4167.[1] Both of these bills contained language outlining what was or wasn’t spam. The disclaimer looks like this:
S.1618 does exist, and contains this language:
Some email may alternatively quote H.R. 4176 § 101:
Two, the erroneously quoted S.1618 is usually incomplete. It appears that their email template truncates the notice. Either they don’t know how to configure their own outbound email, making them incompetent, or they are deliberately trying to make it hard for people to unsubscribe to their messages, making them unethical. Either way, I am not interested in putting something as valuable as my professional life into their hands.
Three, their absolute refusal to remove my address from their mailing list despite numerous, repeated request from me to do just that. I have finally caved in and added rules to my mail server and client to “mark as read” and “delete” all messages from their domain.
In researching this “company” several inconsistencies appeared. Their web site was only registered in February of this year, yet they claim a longer history than that. Their site lists only a vice-president as part of the management team. Furthermore, while you can find at least two people associated with the company on LinkedIn, one seemingly has two names, on American sounding and the other Asian in nature. All of which adds up to a fly-by-night organization.
[1] Source: Spam and the Law - S. 1618 and H.R. 4176
In Random Is As Random Does, I talked about how I configured some smart playlists in iTunes to provide a better random sample of the music I most wanted to hear from my MP3 collection. Basically I created smart playlists for the least played tracks, the least recently played tracks, the most played tracks, the most recently played tracks, and random tracks that weren’t already part of the first four playlists. These five playlists are combined into one massive list, and that list is in turn filtered through the list I spend the most time listening to; one that grabs only 25 tracks at random provided they haven’t been played in the last 3 weeks.
This scheme has worked out surprisingly well except for one small beef. While the ordering of the songs is random, and does represent a nice cross section of my favorite songs, it was surprisingly repetitive. The pool of songs, those with 3 or 4 stars in my rating system just wasn’t large enough to produce freshness in the playlist as well as randomness.
Until today I had used the rating system rather haphazardly. When I started with iTunes I imported some 400 MP3s from WinAmp and gave them all 4 stars. Many of these titles were ones that I no longer had the CD for, and I wanted to keep them segregated from any new imports, purchases, or rips. 3 stars were given to new favorites outside of the original 400. Songs that I grew tired of were demoted to 2 stars, and since you can’t remove stars from a track once it has been assigned any, 1 star is for those tracks I don’t wish to hear, but are unwilling to delete. 5 stars were used for a while to create playlists for my iPod, but that scheme hasn’t been used in a long time.
The Shuffle playlist used only songs with 3 or 4 stars as it’s universe, and as it was rather underpopulated, produced repetitiveness. A quick scan of my library revealed some 3789 tracks that either had no stars, or hadn’t been played for one reason or another. Time to include them in the lottery.
First I added 2 stars to all the tracks that didn’t already have 3 or more stars. Scanning down through this new list of tracks I quickly eliminated several I don’t care to hear (but keep for completeness sake) by giving them 1 star. My new and improved star scheme looks like this:
Next, I created two new smart playlists to include a much larger swath of my collection in the shuffle. First I made a list of tracks to avoid. Audio books, holiday music, and some children’s music that I don’t want in my daily rotation. This list is called P:Avoid, and uses the genre tag to eliminate tracks.
The second new playlist is called P:Obscure, and it grabs all tracks with a rating of 2 stars or higher that aren’t in the P:Avoid list. The P:Obscure list is included in the shuffle composite list, bumping the universe of songs from 1675 to 3975.
Over time I expect I’ll be able to increase the “not played in x days” value to something much higher than 21. For now I am getting to hear lots of music I haven’t heard in a long time. There have been a couple of tracks I’ve wanted to banish to the 1 star level already, but I’m resisting the urge until they come around on the playlist a second time.
Here are the playlists that make up my Shuffle:
A composite list, made up of the 250 songs selected in the six underlying lists is next. Finally a smart playlist that you actually listen to, Shuffle, which selects songs from the composite list provided the song hasn’t been played in the last 21 days. Hopefully, even after I’ve chewed through the new tracks in the shuffle universe, the larger universe of tracks will eliminate the repetitiveness that had started to plague the previous shuffle.
I currently support four public facing sites that use Wordpress as the back-end content management system (CMS). I also have a Wordpress test platform on my laptop, where I tinker with several different themes, that supports another four sites. So, I’ve got eight different Wordpress installations to update each time a new release is made available. Running through the update steps is tedious at best and, with the need to not inadvertently overlay the theme or plugin directory in each installation, there is a fair amount of stress. Using ftp to accomplish the update isn’t difficult, but after doing the same steps four or five or six times, it is easier to make a mistake.
Wordpress does provide instructions for how to accomplish site updates using Subversion. Unfortunately, my host provider doesn’t have Subversion installed, nor are they inclined to add it just for me. As I am comfortable with command line tools, I decided to investigate rsync as a solution for my update tasks.
Rsync is remote synchronization software that allows you to keep files in two locations in sync with each other. This is not a rsync tutorial, so I high encourage you to read the man page, or visit one of the numerous sites explaining this powerful tools uses.
For my purpose I want my Wordpress update steps to be the following:
There are a myriad of options for rsync, but the three (or four) that I used are:
To update my locally hosted test sites, which are built upon MAMP, the command looks like this:
rsync -rav ~/Desktop/wordpress/ /Applications/MAMP/htdocs/siteRoot
In his seminal book, Object-Oriented Technology: A Manager’s Guide, the author, David A. Tayor, describes polymorphism as
In my recent efforts to learn music, specifically the piano, I have started seeing striking parallels between some object-oriented technology concepts and music. Polymorphism occurs in different chords derived from scales.
Each octave scale is comprised of eight steps, with the first and last step being the same note. A C Major scale is C D E F G A B C. Chords are combinations of three or more notes, for example C-E-G is the I chord in C Major scale. It is called the I Chord because the lowest note of the chord is the first note of the scale. A IV Chord is built on the 4th note of the scale. (The chords are denoted with Roman numerals, I, IV, V; but in speech are pronounced “one chord,” “four chord,” and “five chord.”)
There are three primary chords in an octave scale: the I chord, the IV chord, and the V chord. These are the primary chords because with them you play all the notes within the scale. The patterns for these chords is as follows: I Chord - 1 3 5, IV Chord 4 6 8, V Chord 5 7 2, where the number represents the step in the scale that is played.
For a C Major scale the I Chord is C E G, the IV Chord is F A C, and the V Chord is G B D. The chord patterns are polymorphic. While the pattern remains the same regardless of the scale being played, the notes do change for each scale. The implementation of the I Chord in C Major scale is C E G, but in a D Major scale it would be D F# A.
The chords are also polymorphic in that a C Chord (C E G) occurs in multiple scales, as the I Chord in C Major, and as the IV Chord in G Major, for example.
Many years ago, Pizza Hut had a series of television commercials featuring famous people talking about the whole pizza experience. Rita Moreno did one, as did Herbie Hancock. Herbie’s was great. He talked about how was to get a pizza and share it. “Sure! Have a slice.” That part that has stayed with me until today, though, was where he talked about the last slice.
You see, he said, that last slice belongs to the one who bought the pizza. “That last slice is mine.” Every so often I have a pizza by myself, and therefore I don’t have to worry about snagging the last piece. But I do think about it and plan for it. You see, there’s almost always one piece of the pie that is better than its mates. One piece that has the best distribution of toppings and cheese.
You scout out that piece first thing, and then you locate the second best piece, which is usually a neighbor of the best. You eat the second best slice first, and then work your way around the pizza eating all the other pieces before arriving at the last one.
And you eat that last one crust first, of course, so that the last bite is arguably the best bite of the whole affair.
Zanshin.net is just a speck of lint under a finger nail on the long arm of the Internet. As a weblog it gets few visitors, and even fewer comments. While the domain has existed for over 11 years now, the site has been formatted as a blog only since December 1999. I have no accurate, end-to-end accounting for the total number of site visits or page views, but I can make some guesses.
In the last two years and four months the site has enjoyed just over 11,000 visitors who have viewed some 20,000 pages. I have several regular readers who visit the site daily. If we say there are 5 regular visitors, who each visit the main page of the site 5 days a week, then in the last two years these regular visitors account for approximately 1300 of the visit and page view counts. The remaining 9700 visits are random visitors, usually from a search for “shotski’s ring” or any alphabetical construct involving the letter “z.” I believe that the number of visitors is slowly increasing, but even assuming 5,000 or so per year, I’ve had no more than 50,000 unique site visits; a statistical insignificance compared to the total number of site visit the Internet must get.
The nearly 1500 entries I’ve posted here have attracted a grand total of 86 comments. Since converting the site’s backend to Wordpress at the beginning of the year, the number of comments have doubled. Most of those were a result of the generosity of another site providing a link to my humble little Internet backwater. So the idea that a comment would suddenly become the nexus of a controversy is astonishing to me.
Last month, I wrote about a topic that was interesting to me. I referenced a couple of articles I had seen online and expressed my opinion about the topic. The posting must have resonated with more than one person as it almost immediately received a couple of comments. The first linked to yet another posting that was relevant to my central theme.
The second comment has become the center of a tempest in a teapot. The comment author linked to a story with a real world example of the central topic of my posting. About 9 days later a third comment was added to the posting, refuting the claims made in the second comment. Yesterday a fourth comment was added, refuting an obscure portion of the second comment.
Yesterday afternoon I received an email with the subject line “defamatory web comment.” The mail appears to be from the subject of the second comment, and author of the third comment. The email objects to the comment, calling it a “knowing or reckless falsity” and ask “whom my lawyer or I can contact about asking that this false and defamatory post [sic] removed as soon as possible.”
NB: The posting I made on my site has nothing to do with the subject of the comments. I believe the author of the letter is actually referring to a comment attached to the posting.
Maybe my little site has been promoted from lint under the finger nail of the long arm of the Internet to a hair follicle on its little finger.
A number of thoughts run through your mind when you are presented with what appears to be the precursor to a cease and desist letter. And a number of emotions go along with these thoughts. The extremes can be summed up as “you’ve got to be kidding me!” and “why didn’t I use a pseudonym when I created this site?”
Some web searching revealed some interesting facts. The same comment, letter for letter, appears on other personal blogs. Followed by the same rebuttal. That the contended comment has a malformed link which doesn’t lead anywhere in all instances I’ve found of it seems to have escaped notice. I have no way of knowing how prominent the handful of other sites infected with this comment are, but I suspect they are not any closer to the head of the Internet than Zanshin.
Turning to the potential legal aspect of this soap opera I eventually found the Electronic Freedom Foundation’s (EFF) Blogger’s FAQ. Which has an entire page devoted to Section 230 of the Communications Decency Act. While many sections of the CDA have been struck down as unconstitutional (partly as a result of the EFF), Section 230 remains as law. In brief it states:
The second aspect of bullying here is the tone of the email I received. “Whom may my lawyer contact” is a conversational gambit designed to put the recipient on the defensive. What ever happened to simply asking first, with an explanation, to have the offending comment thread removed? Trying to dictate the outcome you want, to an unknown party, using the thinly veiled threat of legal action is bullying. The emotional response I am experiencing is no different than what I would feel were I to be the subject of “defamatory web comments.”
I fear that in her quest to erase all record of what the she feels is “reckless falsity,” the party wanting my web site comment thread altered has reduced herself to the same level as the original author of the alleged falsity.
This weekend was the first truly mild weather we’ve had this year, and Sibylle was determined to get the plants back outside for the season. Saturday morning we started by moving the hibiscus, the geranium, and the fig tree back outside. We then spent some time preparing the flower beds along the south side of the townhouse, and the ones bordering the patio on the east side.
Saturday evening we visited the nearby Wal-Mart to get new flowers, and came home with some lavender, a cherry tomato plant, a rose bush, a flat of stock, another flat of petunias, and 160 pounds of potting soil. We planted most of the new stuff as soon as we arrived home.
Sunday the weather was even nicer than Saturday, and we spent the entire morning moving some sandstone rock to make a border along the south side flower bed. The rest of the new flowers were carefully planted, and by noon the flower bed was looking very good. With the day lilies Sibylle planted a week or so ago, and the pansies in the raised bed we made last summer, the patio and garden is shaping up beautifully this year.
The best part is sharing it each other. I’ve never had a garden of any kind before, so I am enjoying all the new aspects of this activity. Being able to be outside in the warm sunshine and fresh air is wonderful, sharing it with Sibylle make it all the more special.
There are any number of differences between working as a consultant and working as an employee. And there are some similarities. Today I ran across an unexpected similarity. The company I work for now, as an employee, has undergone significant growth in the past couple of years and they are going through all the growing pains you might expect as a result.
The group I joined in January 2007 no longer exists. The project we were slated to drive forward architecturally no longer exists. The manager, and my three peers, have all moved on to other opportunities. Since December I have been in a bit of a holding pattern, waiting for various reorganizations to be announced, so that I can make a decision between two divergent options.
I’ve continued to work in the architecture role on a new project while waiting to learn more about a potential new position, in a new group being formed as a result of the latest reorganization. Now that the group is public knowledge I can talk with its manager to determine if I have a role there and, moreover, if I want that role. The other alternative I’ve been weighing was described to me as “lead developer.” This position would have design responsibilities for a project as well as development responsibilities - picking up the requirements from business analysis and driving them through design, construction, and implementation.
What I didn’t realize until this morning, was that my current role, that of architect, is going away. I don’t have the option of passing on both opportunities. (Well, I suppose I have the option to leave the company entirely.) In the consulting world you spend a fair amount of time worrying about the contract; will it be renewed, what contract will follow this one? Today I rediscovered the anxiety of changing jobs within your employment. Today I’m an architect, tomorrow I’m a senior software engineer; today I’m a project leader, tomorrow I’m chief assistant to the assistant chief.
The emotions are roughly the same - anxiety, fear, uncertainty - for both. Losing ones contract (expectedly or unexpectedly) casts you adrift. Realizing that your career has come to a fork in the road (whether by your design or not) also casts you adrift. As a consultant I was cast adrift several times, often resulting in cross-country moves. As an employee in the 1980s and 1990s, I had various career changes within the same employment, that cast me adrift within the company.
My initial reaction this morning, upon realizing that staying in my current role wasn’t an option, was to feel cut adrift again. However, after reflecting for a while, I realized that in the past when I “had” to change roles within a company it always was good for me, and for my career. I’m adrift, but it is known waters, in sight of the shore. There is still some anxiety about which part of the shoreline to approach, but either will ultimately be good.
For the first time in several years, I am free of my cell phone contract. When I moved to Kansas in 2004, my cell phone was nearing the end of its two-year obligation. Without realizing the consequences (and without being told about them) I called Cingular and changed my phone number to the new area code. Turns out that this change added a full year to the contract.
I kept that phone for the additional year, and then some, before upgrading to a Sony-Ericsson W600i, which I still have today. The contract for the W600i ended yesterday. If my memory is correct, the phone without a contract would have been close to $400 new. The two-year contract cost me roughly $960, so I guess that makes my average monthly cost, for the past two years, approximately $23.30. ((960-400)/24)
The only phone available today that interests me is the Apple iPhone. However, I can’t justify the additional $20 a month the required data plan would cost, not to mention the $400 cost of the phone itself. The per-month cost would be over $76 ($400 for the phone + $60/month for two-years = $1840/24 = $~76.67), an amount nearly double what I am paying today.
So instead of rushing out and buying the latest gadget and committing myself to a higher phone bill, I’ll keep this phone for now, and celebrate not having a contract for a while.