jb… a weblog by Jonathan Buys

Development Environments and Software Quality

September 16, 2008

In OS X, there is a small collection of very high quality software. This is a fact, and there is really no debating it. Mac software that was developed specifically for the Mac is generally well crafted and performs as advertised, every time. In comparison, in Linux, there is a very large collection of freely available software of varying quality. Some of it is outstanding, check my last post on F-Spot for an example, and some of it leaves much to be desired.

I’ve found two genres of software that I’d become accustomed to on OS X that are either not available in Linux, or the existing versions are simply not “up to par”. The first group is that of off-line blog editors. I’ve been writing online since 2000 or so, and I’ve used several different methods of getting what I wanted to say onto a web server, everything from typing up my own html to online wisiwig text editors like what is included in Wordpress. However, since purchasing my first Mac a few years ago I’ve been spoiled by off-line editors like Ecto and the excellent MarsEdit. In comparison, I’m typing this up now in Drivel on Linux. First off, I really despise that name. Why would I want to call what I type drivel? Besides that, the editor is simply not as functional as MarsEdit, and I can’t seem to find any blog editor for Linux that is. From what I can tell, my best bets are Drivel, which is very “bare bones”; scribefire, a firefox extension that seems out of place to me; or an even more simple editor that lives in the toolbar. Don’t get me wrong, I’m grateful to the developers who make these tools available, but they are simply no match for MarsEdit.

The second genre of software is that of information gathering software. I’ve grown very accustomed to Yojimbo since it came out, and Evernote looks very nice too. Before that I used StickyBrain from Chronos, and there’s also Circus Ponie’s Notebook which is also excellent. There are plenty of tools available on the Mac to make managing your information easier. All of the software mentioned above allows you to add text, pictures, pdfs, and even music or video files. Each of the apps listed above goes for around $50 per license, and works beautifully. From my standpoint, they are well worth the investment for the time that they save me. So, I was quite surprised to find that similar software for Linux is just not available. When I asked, I was pointed towards BasKet, which looks promising, but is a KDE app, and I’m a gnome user. Then Tomboy, which is a great note taker and list manager, but not an all inclusive information “digital junk drawer” like Yojimbo. Then several desktop wiki type applications that still didn’t seem to fit the bill just right for what I’m looking for. It doesn’t look like there is any way for applications to handle media file types in Linux, something that Cocoa takes care of in Mac development.

So, why not? Where are these missing applications that thrive on OS X?

I’m tempted to say that the answer lies somewhere in the licensing restrictions of Linux with regard to the GPL, open source, etc… but I don’t think that’s it. I think it has more to do with the fact that the development environment in Linux simply doesn’t support the simple drag and drop of multimedia the same way that Cocoa does on the Mac. The Linux developers do a great job with what they’ve got, but “what they’ve got” is a mixture of C, C++, Mono, Python, PyGTK, etc, and it is no where near as clean and mature an environment as OS X. Mozilla and Firefox have proven that open source software can be just as high quality as any commercial software, so why hasn’t these types of applications appeared yet on Linux?

The answer, after pondering it awhile, seems obvious. The platform simply isn’t ready for it yet. Linux on the desktop is just now getting to the point where the average user can depend on it for day to day use, where Macs have been on people’s desks since the 80s. Linux simply isn’t mature enough to warrant the userbase that is going to demand the type of high quality, flexible software that I’m talking about.

Linux grows by leaps and bounds, year after year, so I’m certain that Linux’s final, mature state is not too far out in the future. When it does arrive, I wonder if there will be a market for high quality commercial software like there is on the Mac, or if it will continue to be completely open source and free. Time will tell, I suppose, and it’s too early to say just yet.


Ubuntu Scanning

September 15, 2008

My wife has recently gone back to college, and, seeing as she’ll need it much more than I do, I gave her my shiny, beloved MacBook. As compensation, I’ve got her old PC, running Ubuntu, which looks great on my 22 inch monitor. How long this will last, I don’t know. I’ve just recently started writing seriously again, and moving all of my “really important stuff” into Linux should give me lots to comment about as I note the differences between OS X and Ubuntu. However, I’ve heard rumor of MacBook Pro product refreshes… hummm….

The first difference worth noting between the MacBook and Ubuntu was a very pleasant one. I needed to scan a couple of photographs and give them to my wife, but I hadn’t bothered to connect my HP PSC 1510 all-in-one to the Linux box, and I didn’t have the correct drivers installed on the Mac at the time. But, I did notice the XSane Image Scanner application listed under Graphics in the Ubuntu menu, so I thought, I’ll give it a shot.

I’m glad I did. XSane automatically detected the HP, and was able to scan the photographs to the desktop with no problem whatsoever. From there, I fired up the Gimp to crop the photos and dropped them into Thunderbird to email them to the wife. From scanning the images to emailing them out took about five minutes… tops. During this time I would have probably still been waiting for the massive HP software download to finish on the Mac. However, the HP software does seem to have a few features that I wish XSane had (like image resizing before scanning), but for pure functionality and performance, Ubuntu wins this round.

Step One: Plug it in Step Two: Use it. Step Three: That’s it, no step three.

That’s how computers are supposed to work. This is amazing, considering that eight years ago Linux had a tough time identifying even internal hardware.


On Graduation Day

September 10, 2008

In May of 1995 I should have graduated from high school in the rocky mountains of Montana. Then, in the following fall, say around August or September, I should have started my pursuit of a college degree. Finally, in May of 2000, I should have graduated from college with a bachelors degree in who knows what.

As fate or God would have it though, that’s not the path I took. One night too many spent on the fringe, one too many parties, and one too many disappointments for my parents, and I dropped out of high school in December of 1994. Even then, I thought that I might be making a mistake, so I went ahead and took the GED test, which I passed with flying colors. For nearly a year, I travelled around Washington state. Sleeping in tents, staying with a friend in his uncle’s garage, hanging out at a Rainbow Festival… but in the back of my mind, I knew something was wrong. Something inside of me wouldn’t let go of the fact that what I was doing was wrong.

So, one day, after way too much for way too long, I went home, and from there, I left everything I knew behind me and joined the Navy. Looking back on it now, joining the Navy in October of ‘95 was probably the best decision I ever made. The Navy forced me to sober up, and gave me a structured, goal oriented lifestyle that appealed to me. The Navy gave me discipline when I had no self control. The Navy taught me to believe in myself after many years of being an outcast. The Navy taught me the value of hard work. I began to make incremental steps towards knowing who I really was. Work hard, and make rank. Study hard, and pass the test. The work that I was forced to do turned into its own reward. I am today, a better man because of the time I spent in the Navy.

However, even with the success I had in the military, I regretted never walking across that stage and receiving my high school diploma. For anyone in the position to care, let me tell you right now, a GED is NOT an equivalent to a degree. A GED labels you for life as a quitter, and someone who couldn’t make it at a very basic level. For this, I was ashamed. So, in January of 2000, after transferring to shore duty overseas, I started working on my college degree.

It was fun at first, I took Speech and English, and a few IT courses. A little at a time, when I had the time, one or two courses a semester, sometimes face to face, mostly distance ed, I worked on my degree. Years passed, I transferred back to the States, and I kept taking courses. Some were really difficult (like Project Management… uggg), some were morally challenging (Myth and Culture), and some were genuinely interesting (Algebra, Writing, and Programming). I liked college, not only because the courses I took and the professors I had were interesting, but because the I was constantly challenged. I had something in college that I didn’t have in high school, the drive to succeed… to be the best.

Part of that is growing up. Part of it is the discipline I learned in the military. Part of it is that I was just an angry kid who needed some direction. What ever the reason, the result is that I did finally grow up and realize how important education was. The mistakes I made in high school have taken me thirteen years to correct. But, two days ago, on September 8th, 2008, I was awarded my Bachelors Degree in Information Systems Management from the University of Maryland University College. It took eight and a half years. That’s eight and a half years of lost weekends because I was holed up in the bedroom doing homework. That’s eight and a half years of long nights of studying at night after the kids were in bed. That’s eight and a half years of justifying taking classes, making financial arrangements, taking time away from my wife and our growing family, writing papers, solving formulas, graphs, charts, proctored tests… and stress.

I wasted three years of high school, and it took me eight and a half years to earn my respect back.

Was it worth it? Depends on the question. Was what I did as a kid worth the work that it took to repair the damage? I’d have to say that’s a qualified… almost. I can’t explain what I did as a teenager, but I can say that I’ve been places and seen things that most people have not. If your question was “Is the degree worth the work and the time that you put into it?” I have one answer for you.

Yes.

My degree may never “pay-off” in terms of a big promotion or more opportunities (although it probably will in the long run). I didn’t really need the degree with my experience and expertise in IT. The job that I have now required a bachelors or “equivalent experience”. When I took the job I did not have the degree, but I had the experience, so one could argue that I don’t need the degree at all. For the most part, they’d probably be right.

The degree is worth the effort because I’m a high school drop out. It’s worth it because the look of disappointment in my Mom’s eyes was more than I could bear. It’s worth it because I want my kids to be able to look up to me. The degree is worth it because it was a goal that I had for eight and a half years, and I finally achieved it. Yes, yes, yes, yes yes… the degree is worth every minute of time I put into it, and every penny that it cost.

Mountain climbers, as far as I’m aware, are not paid to climb a mountain, but ask one who has made it to the top if it was worth it.


The Linux Box and Upgrading Java

July 15, 2008

As a general rule, I really don’t like to go outside of the box when it comes to Linux. And by that, I mean that I don’t like going outside of what is provided by what ever distribution you are using, be that SLES, Red Hat, or Ubuntu. A lot of people put a lot of work into making sure that the packages that are available for the distribution actually work in the distribution and do not interfere with any other apps. Linux will let you do what ever you want, but just because you can do something, doesn’t mean that you should.

Going outside the box can have disastrous results with Linux. Back in early 2000 and 2001 when I was installing SuSE and Mandrake on my old IBM box, I wound up in dependency hell more than once. If you’ve never been there, it goes something like this:

OK, I want to upgrade my music player to the latest version, so I’ll download the latest RPM. Wait, that failed, because it depends on a newer version of some library file that I don’t have, so I’ll go search the Internet and try to find that. OK, found it, downloaded the rpm, and it failed to install because it depends on a newer version of some other library file that I don’t have. Looks like there’s no RPM for that library, so I’ll download the source code and compile it. OK, ./configure; make; make install; Nope, that failed because of a gigantic list of dependencies that are not available! At this point, you have to make a decision: Do you go ahead and find the dependencies, or do you give up and have a drink instead. If you choose to go ahead, you download the source to a dozen different packages and install them, then compile your library, then compile your other library, then go to install the rpm to find that it fails because one of the applications you upgraded along the way is, get this, too new to support your music player, and the install still fails. Oh, and by the way, half of your other apps that used to work, don’t work anymore.

This was a very real problem a few years ago, that’s why there is such a focus on package managers, and why I recommend staying in the box. That’s why when I’m asked to go outside the box, I always tend to meet such requests with scrutiny. Do you really need that? How badly do you need that?

Java however, is not so bad. It’s one of the few apps that is self contained in it’s own directory. You download the executable bin file from Sun, run the installer, and put the extracted directory wherever you choose. I normally put it in /usr/local/ Then, I do a which java, and move the original java to java.bak. Next, I create a symbolic link to the new java in /usr/local. Run java -version, and verify that we are using the new and improved java.


Open Formats

May 31, 2008

Remember the early days of networking… before TCP/IP became the standard protocol? Well, neither do I, but I’ve read about it. That’s years ago now, but back then, each computer manufacturer developed their own method of networking their machines together, and each method, or protocol, was incompatible with the other. Apple had AppleTalk, Novell had IPX/SPX, Xerox had XNS, and on and on it went. TCP/IP was born out of the desire to create a vendor independent network, which became known as ARPAnet, and later, the Internet.

This little history lesson is meant to illustrate the tremendous advantages there are to open standards. Would the Internet exist if it belonged to a single corporation? Not as it is today, no. These same ideas can be applied to several other forms of data on the computer; images, documents, music, etc… We now have the capability to keep almost all of our data in a format that is guaranteed to provide greater flexibility, so why isn’t Apple taking advantage of it?

For example, Mail, the venerable email client that comes with the Mac, provides suitable email functionality for most Mac users. Now that I’ve got several years of email stored on my Mac, I’d like to be able to keep those files in a format that is not subject to any corporation’s whims. I’d also like to be able to drop my mail folder on another platform and be able to open it up in a different client… interoperability. Another example is iPhoto, one of my favorites. Would it really be that difficult for Apple to design iPhoto so it stores its database in a reliable, documented format that is readable (and writable) outside the application?

This goes back to a central belief I have about data, and applications. While the application may belong to its author, the data it processes belongs to me, and it should be available to me in a well documented, open format. Open formats make sharing files easier, as they are capable of being supported on more platforms

How about giving Quicktime the ability to natively export to Ogg-Theora? Or allowing iTunes to use Ogg-Vorbis as its default media format? (DRM not considered here…) Pages? Keynote? How about some Open Document Format support? I really don’t think the move to open formats would be that big of a leap. Apple already includes several open source applications inside its server offering, and has built its core data framework around XML and SQLite, so why not open the rest of it up?

The other note worth mentioning is the high profile “switch to linux” news that has been making the rounds lately. With several long time Mac supporters moving to Linux citing problems with formats and a lack of openness from Apple, it seems to me that this is a problem that could be easily fixed. I’m not calling on Apple to open source OS X, I’m not even implying that, although open sourcing a few of the bundled apps might be a good thing in the long term

The world is becoming more aware, and times they are a changin. The world is knocking, dear Apple, its time to open up.


The Master Craftsman

May 14, 2008

The Master Craftsman works methodically, not slowly, not hurriedly. He has mastered the basics, and knows the essence of his craft. He has moved to a point where he can define his own methods, and doesn’t need to explain them to anyone, unless someone is wise enough to ask. The Master Craftsman enjoys the hardest, most complicated problems, and enjoys unravelling them piece by piece. He enjoys the challenge to his skill, and proves his worth again and again as he overcomes each obstacle.

The Master Craftsman has an intimate relationship with his tools. He knows not only what they do, but much more importantly, how they do it. His choice of tools for a certain task is based on years of experience, research, and hands on use. He can debate intelligently on the merits and problems with his tools, as compared with other tools that he has tried and discarded over time. His choice of tools explains something about him.

The Master Craftsman enjoys his work, and is comfortable with his place in the world. He is an expert, and he knows it.

I’ve had an abstract idea for this post for a couple of months now. The Master Craftsman is the embodiment of my professional goals. I’m not one to speak of gurus or wizards, since I come from very down to Earth country in Montana, but a craftsman, or a woodworker is an image that I can grab on to. I’m not a Master yet, but I’m working towards it. My tools are not jigsaws and planers, but vi and zsh, but the basic principles still apply. I think the idea of a craftsman is less about impressing others and more about perfecting his skill.


Creative Uses for Wordpress

May 7, 2008

Where I spend my days ($WORK), we have multiple monitoring systems for just about every service on every server that we have. Many of these are Nagios, some are built in, and others are SiteScope. All of the systems generate email alerts that either go to our pagers, our email, or both. From time to time, management would ask a question like “How many pages do you get in a week on average”, which up till a couple of months ago, our answer was always “It just depends”.

Not a great answer, so I decided to start tracking the email alerts with a centralized database. Now, at this point, I could have whipped up my own home-brew frankenstein creation, but since everything I wanted was already built into Wordpress, I really didn’t need to. Wordpress has the option of posting blogs via email. So, all I needed to do was set up a special email account on our mail server and make sure the pop3 server was running. Then, add the server and login information into Wordpress, setup a cron job to trigger the mail check every five minutes, and there. Instant logging of all pages that are sent out in a searchable, easy to read, web format. Now, when management gets it in their mind to start asking questions, we can easily say “Let me reference my report.” They really like hearing things like that.

Building on the success of the alert log, I thought it might be good to also log all of our changes to the system. This idea is completely different from traditional “Change Management” systems which require you to log ahead of time what you want to accomplish in some ridiculous form or application. Instead, I find it much more useful and relevant to build in the change logging where we spend most of our time, the command line.

I’ve added an alias for “exit” in the shell like so: alias exit=”exec /scripts/ch_log” Here is the ch_log script:

#!/bin/sh
# ch_log - Prompt the user to log system changes on
# exit from the root shell.
#
# jonbuys@os-zen.com - Wed Apr  2 15:32:43 CDT 2008
#
############################################################

HOST=`hostname`
DATE=`date +%m-%d-%y`
echo $DATE
echo "Did you make any changes to the system? (y/n)"
read answer

if [ $answer == n ] ; then
   echo "OK, Thanks!"
   exit 0
else
   echo "Cool, please enter your name, and then describe the changes in the form."
   echo "Name:"
   read NAME

    cat /scripts/log_template | sed s/NNN/$NAME/g | sed s/DDD/$DATE/g | sed s/SSS/$HOST/g > /tmp/$$.answer
    vi /tmp/$$.answer
    mail change_log@mail.mydomain.com -s "Change Notification for $HOST"< /tmp/$$.answer
    echo "OK, thanks!"
fi
exit 0

############################################################
# EOF: ch_log

Basically, when we exit our shell we now have to make a choice… do we log what we did with this quick and easy script, or do we ignore it and risk the consequences. I’ve found that for the most part, I choose to log my work. The email that is sent off to the change_log@mail.mydomain.com address is picked up by a second Wordpress install, and posted to the blog. Now we have a historical record of what we’ve done incase something breaks, or (more importantly) when annual review time comes around and we are asked “what have you been up to”

There is one other change that I had to make to get this to work right. By default, Wordpress holds all posts it recieves via email for approval before posting it to the main page. This is good security, but not really needed on an internal LAN, and it breaks the system I’ve laid out above. So, to fix it, I’ve made a slight change to the wp-mail.php file: // Set $post_status based on $author_found and on author’s publish_posts capability if ($author_found) { $user = new WP_User($post_author); if ($user->has_cap(‘publish_posts’)) $post_status = ‘publish’; else $post_status = ‘publish’; } else { // Author not found in DB, set status to pending. Author already set to admin. $post_status = ‘publish’; }

Above, I’ve changed the “pending” post_status to “publish” for unidentified users, which is everything that it receives via email. This is a very bad idea to do outside of the LAN, but I don’t see any harm in it internally. Undoubtedly there are those who would disagree, but this works well for us.

This is how we are using Wordpress internally on our corporate LAN right now, I’d be interested to hear how some others are using Wordpress or other blogging software.


My Optimized Windows Workflow

May 6, 2008

I love Linux, I really do. Compared to the older UNIX systems like AIX, HP-UX, and Solaris (who is trying really hard to catch up) Linux is head and shoulders above the rest. The main reason for this is that a lot of really smart people also love Linux, and try their best to make it the best server on the planet. For the most part, I’d agree that we are succeeding on that front. On the other hand, to date, I simply can’t run Linux on my desktop. If there are servers down, or an application fault somewhere, I need to be able to rely on my tools to be there for me. That’s why I run XP on my laptop.

Now, just because I’m running XP doesn’t mean that it has to suck. I spend most of my time either in the command line or in Firefox. Oh… uhhh… and, most unfortunately, in Lotus Notes (holding back gag reflex). I’m not sure if there has ever been a worse email client created than Lotus Notes, but that’s a post for another day. So, to make the most of what I have, there are three tools that I’ve come to rely on:

  1. PuTTY - Outstanding SSH client. Always there for me, never craps out, and an awesome Alt-Tab to full screen command line goodness.
  2. Launchy - Now on my permanent list of apps I can’t live without.
  3. Emerge Desktop - I’ve got a small screen, and that damn “Start” menu always bothered me. With Emerge, I’ve replaced the Explorer shell with a very small, very minimal, no task bars or anything else desktop. If I need the Start menu, I just right click on the desktop and there it is.

With PuTTY, I’ve traded out my SSH keys with my management server, where I run everything else from. I set up a saved session in PuTTY for the management server, and make sure that I can log in without a password. Next, I create a “Launchy Indexed” folder in my home directory on my laptop, and create a shortcut with the following as the “Target:”

"C:Program FilesPuTTYputty.exe" -load my.management.server

Next, reload the launchy index, and we are in business. Now I’m just a couple of keystrokes away from my management server. Since my management server is secure and on the same network as most of the rest of my servers, I’ve set up some custom scripts there as well. My most used script is named “go”:

#!/bin/sh
# go - ssh into the specified server
#
# jonbuys@os-zen.com - Wed Jul 25 09:52:09 CDT 2007
#
############################################################
# Make sure the user actually entered something here
if [ -z "$1" ]; then
        echo "Usage: go [servername]"
  exit 1
else
        # Set the variables
        SERVERNAME=`echo $1`
        USERNAME=`whoami`
        # run the command
        ssh $USERNAME@$SERVERNAME
fi
############################################################
# EOF: go

Very simple, but still, fewer keystrokes than actually typing ssh myusername@whatever.server.com. I’ve also been known to abbreviate server names as well in /etc/hosts for folks who insist on ridiculous names that make sense only to them. Fewer keystrokes, quick access, and less to think about when I absolutely need to get to that server ASAP. Luckily, there are very few times when the need is that great. It is, however, very satisfying to see the looks on the faces of my old-school co-workers when they realize that “He hasn’t touched his mouse yet…”


Contextual Search

May 2, 2008

My personal browser of choice has almost always been Omniweb. Omniweb and I went through a tough time for a while when it (she?) was crashing frequently and generally having a tough time of it. The Omni Group has once again straightened things out, and she (yea, I’ve decided Omniweb is a she) is once again fast, sleek, and powerful. There is one small item about the browser that bothers me though, and that is the lack of a search function from the browsers contextual menu that pops up when you select a word and right click on it.

Exhibit A: Omniweb Contextual Menu Omniweb Contextual Menu

Omniweb has some interesting options available, including the somewhat dubious value of cascading the “Page” menu that is available when right clicking without selecting a word. I’ve tried both the “Start Speaking” and “Inspect Element” options, neither of which do me any good in my normal browsing flow.

When Omniweb and I were not getting along I tried out both Firefox and Safari for a while. While both browsers offer a search function from the contextual menu, Firefox has made the best choice from a usability standpoint.

Exhibit B: Firefox Contextual Menu Firefox Contextual Menu

When I select “Search Answers.com For ‘perfect’”, Firefox opens a tab in the background searching Google for the word that I had selected. To me, this is clearly the best option.

Safari’s search function is complemented by a “Search in Spotlight” option that I’ve never used. I suppose its nice that its here, but still, never used. The ability to search the built in dictionary is nice, and I think I may have used that function once.

Exhibit C: Safari Contextual Menu Safari Contextual Menu

The problem I have with Safari’s search Google option is that it replaces the tab that I’m reading instead of opening up another tab. Clearly this defeats the purpose, I’m interested in the word, product, or service that I’m reading about, but I don’t want to stop reading to search Google. I want Google to be there in the background waiting for me when I’m good and ready. Firefox has this right, and I think both Safari and Omniweb could stand to adopt this feature.


Starting Over

April 22, 2008

My wife wanted me to read something that she was writing the other day, so I sat down at her laptop on our table and read through it. While I was there, I happened to glance at her email, an old hotmail account, and noticed that she has emails going all the way back to ‘01. A quick glance at my gmail tells me that there is no way I can tell how far back my email goes, but I’m pretty sure that I’ve lost everything prior to ‘05 or so. I’ve been accused of having email ADD in the past, and I’m fairly certain there is a bit of truth to it. It seems to hold true for a lot of the technology in my life, I’m just never satisfied with it, and wind up tweaking, fiddling, and otherwise screwing around with my tools until they are either just right or completely screwed up and I throw the entire thing in the trash and start over.

This certainly holds true for my email, I have been through @aol.com, @hotmail.com, @yahoo.com, @mac.com, @inbox.com, @live.com, and finally, @gmail.com. It also holds true for my web sites. I’ve started 10 or 15 web sites throughout the years, starting with a geocities site back in… what, ‘99 or so? If I’d have stayed on top of it, I’d have managed to compile a decent amount of writing in one place for 9 years. But, I have some form of technology ADD, and can not seem to be happy with any single system. When I discovered Linux, my curiosity really got the best of me. I must have downloaded and tested 100-125 distros. I installed so many that I started recording them on my old (now defunct) blog, jonstechblog.com, which evolved into the also now defunct, osvids.com. This went on until I “switched” to Mac, and I’ve been fairly happy with my operating system since. At least I know that there is nothing else out there that’s any better than what I have now.

I’ve learned a lot about what I want out of my technology over the years, and I’ve found that when I find a good system, even if its not perfect, its best to stick with it until there is a significant reason to change. My curiosity has unfortunately led to my loosing data. Somewhere along the line I lost a lot of email, and a lot of writing, and there is no way to get that back. So, now, I’ve come to a point where I’m content in the systems that I have in place. My email works great, my OS works great, and I have an excellent blogging platform on a reliable host. I’ve started over far, far too many times, and it’s time to settle down and shoot down some roots. Its time to stop worrying about the method of creation, and focus on the creative process itself.