Hambrosia Sandwich


You’ll need a slice of your favorite bread, with just a smear of mayonnaise on it, perhaps 2 or 3 tablespoons of crushed pineapple, and about an equal amount of your favorite cheese, shredded, and a 2 or 3 ounce slice of ham cut into strips.

Heat a cast iron skillet over medium-high heat until a drop of water hops and dances on the surface. Toss in the ham and cook until heated through, maybe 2 minutes. Add the pineapple (juice too) to the ham and continue to stir for another minute or so. Top with the cheese and let it stand until the cheese starts to melt.

Lift the whole thing onto your bread (or bun) and enjoy.


Chords are Polymorphic


In object oriented programming, polymorphism is defined as the ability of different objects to respond to the same message in different ways. Polymorphism is a Greek term meaning “many forms.” While the term may seem intimidating, the basic idea couldn’t be simpler: Each object can have a unique response to the same message.

Take people for example; ask a dozen people the same question and they all could determine their answers differently, but the meaning of the question and the form of the answer would be the same. The private mental process is different.

As I learn to play the piano, I am struck again and again by the similarity between music and programming. Music is a language, just like Java or Python, and it has its own syntax, rules, and constructs, just like Java or Python. Take chords, for example. (For the sake of this discussion I’m only going to talk about three-note chords. I haven’t learned any chords with four or more notes.)

In programming a function is a set of instructions that performs a task and returns a value. The function may or may not accept an input value (or set of values). A chord is a musical function that accepts the scale as it’s input value and returns a set of notes as its output. To use object oriented nomenclature, the scales are objects, and the chords are messages sent to those objects to perform some function.

The Major Scale object has 8 attributes, one for each scale degree. From Wikipedia:

Again, to use object oriented concepts; the Major scale class would define the eight scale degrees, and methods for each of the chords (I, IV, V, V7, et cetera). Each instance of a major scale (C, G, D, A, et cetera) would inherit the scale degrees and chord methods from the Major scale class. Something like this:

The C Major scale is comprised of the following notes: C D E F G A B C. So a I chord in C Major would return C-E-G as the notes. A IV chord, F-A-C.

A G Major scale is comprised of G A B C D E F# G, so a IV chord would return C-E-G, just like the I chord in C Major.

The chord functions (I, IV, V) are polymorphic. They respond to the same question in different ways. Ask a D Major scale the IV chord question and you get G-B-D, ask the same IV chord question of F# Major and you get B-D#-F#. The chord function always returns the same scale degrees, but the result is polymorphic in that the scale degrees vary based on scale to which they are being applied.


Password Security


Several times in the past couple of months I have gotten emails that indicate to me someone is trying to access one or more of my online personas. The latest was this morning and took this form:

[… snipped for obvious reasons …]  Apparently someone is trying to create an account using my old user name, on Blogger. I’ve not been active on that service since 2001, but it still contains all the old postings I made there. I’ve also had password reset emails for my primary Google email account.

The problem with GMail is compounded by their unusual practice of granting you all the variations on your email address using a dot separator. For example, if you registered an account as first.last@gmail.com, you also have firstlast@gmail.com, and f.irstlast@, and fi.rstlast@, and so on. I continually get emails addressed to my account minus the dot. And I am starting to get password reset confirmations for that variation as well.

That these services require an email confirmation is good, it prevents my accounts from being hijacked. However, getting these emails and realizing that someone is testing the locks on the door makes me nervous. 

Like most people I’m fairly lazy when it comes to passwords. I have several that I like and use, and I hope that they are secure enough to withstand casual cracking attempts. I tend to use a combination of upper and lower case, numbers, and misspelled or foreign words, but I also reuse the same password across many accounts. I am of the opinion that one really good password, that has lots of entropy used across accounts is better than individual passwords that maybe weaker for each account. The trick is finding a really good password and trusting that it is really good.

I’ve tried patterns on the keyboard where I don’t need to remember the password itself, just the pattern and a starting point. However I am not entirely convinced that a smart cracker wouldn’t attempt pattern based attacks, so hopefully my pattern isn’t obvious.

I’ve been experimenting with 1Password on my Mac, which in addition to remembering passwords for you, will generate new ones. The problem I see with using a password generator is that while the resulting password may be much stronger than one I would think up, I can’t remember it and therefore am totally reliant upon the software to remember it for me. If something should happen to 1Password, then I will be dependent upon the email verifications that started this posting. I suppose that wouldn’t be the end of the world but it seems messy somehow.

So I’m searching for a 12 ~ 15 character password that doesn’t contain dictionary words, has numbers and symbols, isn’t a readily identifiable pattern and is something I can remember and easily type.


13 Years Old


Zanshin.net will be thirteen years old tomorrow. I know that when I first got the domain I never imagined I would still be actively hosting a web site more than a decade later. The oldest blog postings go back to December 1999, so I’ve been archiving my life for almost a decade here.

Happy Birthday, Zanshin, and many happy returns.


Staying Grounded


Sibylle discovered this on the DailyOM, and I thought it was well worth sharing.

Staying Conscious

Staying Grounded in a Big City or Busy World

1. Live simply and live deliberately. By choosing not to get caught up in the details of this fast-paced world, you are doing your part to slow down the . You will also discover that you have more time to enjoy being alive.

  1. Stay in touch with yourself. Soul searching, meditation, and journaling are just a few of the many activities you can take part in to stay aware and learn as much as you can about your emotions, reactions, likes, dislikes, dreams, and fears. Having a solid sense of self gives you a firm foundation for living in this world.

  2. Support or teach others as often as you can. This can help you form connections with people while also giving you an opportunity to make the world a better place.

  3. Consciously choose what you will allow into your being. The media bombards us with visions of hate, war, and pain. Be judicious about what you read, watch, and listen to.

  4. Acknowledge the beauty that resides around you. Whether you live in a sprawling metropolis or a stereotypical suburb, there are natural and man-made wonders just waiting to be discovered by you.

  5. Nurture your ties to your tribe. If you don’t have one, create a community that you can belong to. Modern life can be isolating. When you have a tribe, you have a circle that you are a part of. Its members – loved ones, friends, or neighbors - can be a source of support, caring, guidance, and companionship.

  6. See the larger picture. Remember that the way that you choose to live is not the only way to live. Widen your perspective by exploring other modes of being through research, travel, and discussion.

  7. Embrace the challenges that life presents to you, and challenge yourself often. After a time, even the most exciting jobs or lifestyles can seem routine. Never stop assimilating new knowledge about whatever you are doing, and your life will never seem dull.

  8. Move your body. In this busy world, it can be easy to live a sedentary life. Movement reacquaints us with our bodies and connects us to the earth in a visceral way. It also restores our vitality.

  9. Make time for stillness, silence, and solitude. The world can be noisy, and we are subject to all kinds of noises nearly every waking hour. We are also often “on the go” and unable to relax. Being alone in a peaceful place and making time for quiet can help you stay in touch with yourself.


Defined


Husband

husband |ˈhəzbənd|noun

a married man considered in relation to his wife : she and her husband are both retired.

verb [ trans. ]use (resources) economically; conserve : the need to husband his remaining strength.

ORIGIN late Old English (in the senses [male head of a household] and [manager, steward] ), from Old Norse húsbóndi ‘master of a house,’ from hús ‘house’ + bóndi ‘occupier and tiller of the soil.’The original sense of the verb was [till, cultivate.]

Wife

wife |wīf|noun ( pl. wives |wīvz|)

a married woman considered in relation to her husband.

Husband and Wife. February 12, 2009.


An Open Letter To GoComics


To Whom It May Concern:

I have read the daily comics since I was old enough to understand that they were in the newspaper. Since the early days of the Internet I have consumed them from their sources online. With the purchase of an Apple Macintosh computer some six years ago I have used Comtastic to aggregate my favorite comics for my daily enjoyment.

You, GoComics, however have seen fit to block the images of the comics to outside sources. Your misguided business model suggests that your fortunes will somehow be improved if you force consumers of your product to visit your site, and your site alone to read Bloom County or Non Sequitor, among others. Your site infested with ads and popup windows and other nefarious “click me! click me!” traps for the unwary.

I refuse.

I will give up reading the comics if reading them means marching to the highly controlled beat of your drummer. They are available for free and with out all the slimy cruft of your grubby merchandising in the local newspaper at the library.

Sincerely,

A Former Reader.


Sharing iTunes Beyond Your Subnet


iTunes allows you to share your music library with other computers based on the same subnet of your network. Network addressing is too arcane a subject for this posting, but a simplified explanation will help. Each computer on a network gets a unique address, know as an IP address. (IP stands for Internet Protocol.) IP addresses have four sets of numbers, separated by a dot, e.g., 192.168.101.10. For licensing reasons Apple restricts the sharing of music to computers that have identical addresses except for the last portion of the IP address. If your computer has an address of 198.162.101.1, then any computer with an address of 192.168.101.* can receive your shared music.

Currently I have a situation where I’d like to share my music to a computer that isn’t on the same subnet. It turns out this is possible, if a bit cumbersome. I’m basing my instructions below on the much more detailed instructions I found the SSH Tunnel MtdWiki.  

Make sure you can establish a secure shell (ssh) connection from the client (listening) computer and the server (playing) computer. Open Terminal and type

ssh userid@192.168.1.1
where userid is the user account you have on the computer you’ll be using as the server. And where 192.168.1.1 is the IP address that machine has.

If this works then you are ready for the next step. If it doesn’t work, you’ll need to visit the Sharing preference pane (for Mac OS X 10.4.x) and make sure that Remote Login is enabled. While you are there, make sure that iTunes Music Sharing is also enabled.

Step two is to create a secure shell tunnel between the listening computer and the playing computer. One of the more useful features of ssh tunnels is the ability to forward a port from one computer to another. Services that listen to or respond at specific ports can be forwarded through a ssh tunnel to remote machines. iTunes uses port 3689 for sharing music. We want to establish a tunnel between our two computers that ties port 3689 on the listening computer to port 3689 on the playing computer. Something like this:

ssh userid@192.168.1.1 -N -f -L 3689:192.168.1.1:3689
Here’s a breakdown of the command:

ssh userid@192.168.1.1 is the normal secure shell login command. The -N flag makes it a non-interactive session, and the -f flag causes the whole command to run in the background, both of which free up your command line for other activities. The -L flag establishes the port forwarding from port 3689 on the listening machine to the same port on the playing machine.

Next you will need to install a Network Beacon, which allows iTunes to see the DAAP port (3689). The one I used is freely available from Chaotic Software. Since iTunes is geared to only “see” shared music from the same subnet, you need something to act as a proxy for the remote server. In this case Network Beacon acts as that proxy, allowing the copy on the listening machine to see the music on the playing machine through the secure tunnel and port forward we created above.

Here’s an image of how to configure the beacon on the listening machine:

{{ $image := .ResourceGetMatch “beacon.png” }}

 

With the beacon enabled, and the tunnel established, start iTunes on your listening computer and wait a few moments while the shared library is populated under the “Shared” heading in the sidebar.


Brain Food


Over the course of the past couple of weeks, I have observed an interesting phenomenon. The amount of Internet reading (RSS feeds, daily site visits, et cetera) that I do is inversely proportional to the mental engagement I have at work.

I’ll explain.

At my last position I was largely bored. The work, while important, was mind-numbingly dull and tedious. During the final weeks of my time there I consumed vast amounts of Internet reading material. My current position is anything but dull, I’m inundated with new material every day, and as a consequence, my Internet reading has been drastically reduced.

It seems that I require a certain amount of brain food in order to be mentally full and satisfied. When work doesn’t provide its share of this mental nourishment, I seek it elsewhere. It isn’t that the daily sites I visit are any less interesting, or that the RSS feeds I follow aren’t full of things I want to read, it’s just that my brain isn’t craving as much food outside of work as it was a few weeks ago.

Fortunately, I don’t think my brain can gain mental weight, so if I over-indulge for a while, I won’t have to go on an information diet later.


Backing Up Your Delicious Bookmarks


Recently I have become a big user of the social bookmarking site Delicious.  Nearly everyday I add several new bookmarks to my list on the site, the most recent ten of which appear in my sidebar.

Delicious is owned by Yahoo, which means the data there is likely safe for a long time. However, I don’t have any other record of these sites, so I was interested to see this Lifehacker tip on backing up your Delicious bookmarks using curl or wget. Admittedly this is a fairly nerdy solution, but that is where the attraction lies for me.

That’s it.  You could schedule this via cron, but that’s the subject of another posting.