Using Subversion in Eclipse

Having setup a Subversion repository on Dreamhost and imported all the existing code, I’m ready to start using it in my day-to-day programming. I’ve already installed the Subclipse 1.4.8 plugin, so let’s figure out how to use it.

To check out a working copy:
* Eclipse File->Import->SVN/Checkout Projects from SVN, next
* Create a new repository (since this is the first time), next.
* Enter the URL to the repository (http://svn.therockband.org
At this point I got an error “Unable to load default SVN Client”.

On OS X Subclipse requires JavaHL. This appeared to be installed, but maybe this is causing the problem. So I downloaded the Universal Mac package from CollabNet (http://www.open.collab.net/downloads/community/). This appears to be a newer version 1.6.2.
Before continuing with the install, I disabled the existing Subversion plugins in Eclipse (everything except Subversive, which indicated that it was required by the Zend Studio CE.
Installation put a copy of Subversion in /opt/subversion.
Now I installed Subclipse in Eclipse from the 1.6 Subclipse path.

Now I can open the SVN Repositories Perspective. However, the ‘Synchronize’ function isn’t working. I’ll leave that for tomorrow.

Setting up Subversion

Having downloaded and installed subversion, I’m ready to set it up for use with all of my website code. Since I’m working on a MacBook Pro, I’ll be using Terminal’s command line interface.

The svn-book available from http://subversion.tigris.org/ is a very useful document.

DreamHost supports subversion, so I’ve setup a repository there and a subdomain. I can access it at svn+ssh://userid@therockband.org/home/userid/svn/TRBSource. On DreamHost user’s must be specifically created or granted permission to access Subversion, so I added permissions to my main ID and created a couple additional IDs with subversion permission.

DreamHost FAQs list instructions for setting up credentials to allow accessing the site without specifying password every time (SSH#Passwordless_login). I set this up and provided the password one time. Now my accesses can be done quickly without being prompted for a password each time.

The initial set of files are added to the repository using the svn import command:
cd /Users/Ron/Sites (the documentroot folder on my MBP)
svn import newrockband2 svn+ssh://userid@therockband.org/home/userid/svn/TRBSource -m “Initial import”
During the process a message is displayed indicating each file being added.

I can now ‘list’ the files using:
svn list svn+ssh://userid@therockband.org/home/userid/svn/TRBSource
to verify that everything is there. The list shows that ‘application/’, ‘public/’, and ‘tests/’ folders were added. These are the contents of my ‘newrockband2’ folder. The folder itself was not added.

So now I rename the original newrockband2 folder, create a new one, and creating a working copy in the new folder using ‘svn checkout …’ on all 3 directories (from within the new directory).

Ok, so now I realize that this isn’t the layout that I really wanted. I didn’t create the recommended ‘trunk’, ‘branches’, and ‘tags’ directories first. So I’ll need to create these directories, and then move my new directories to trunk/. So a quick check with ‘svn help’ shows ‘move’ and ‘mkdir’ commands (among others). ‘svn help mkdir’ and ‘svn help move’ give info on using these commands. However, I’m get an error when trying to use mkdir telling me that I haven’t setup environment variables to display/edit log messages. So for now I’m going to leave it alone. I’ll add/move those later.

First of course I make sure that my backups are up-to-date. I’m using Time Machine, so I verify that it has completed a recent backup. Now I’m going to cleanup my Sites folder, deleting a lot of old stuff (it’s backed up, right?), then check-out the code I just put there.

Having previously installed SCPlugin, now when I look at my newrockband2 folder in Finder I see green checkboxes next to the directories 🙂

However, browsing to the new copy displays an error message complaining that it cannot open the log.txt file. So I locate the log file and change permissions ‘chmod 777 log.txt’ and all appears to be well now.

Now I need to check out the code to the live site (new.therockband.org). This is described in http://wiki.dreamhost.com/Subversion#Gotchas. So I SSH into the site (ssh userid@therockband.org):
cd therockband.org
svn checkout http://svn.therockband.org

Browsing to the site now, I see that the DB path is incorrect (127.0.0.1). The APPLICATION_ENV is specified in the .htaccess file, so I edit it using pico. There appears to still be an error, which I’ll investigate tomorrow. But for now it appears that Subversion is working, and can directly update live site. Tomorrow I’ll investigate using it to deliver to a test site also.

Web Development

For the past 4 months I have been knee deep in refreshing and extending my web development skills.

I decided to move some of software I wrote at work over to be web based, since many of my users are located in Taiwan and Shanghai. This has been a very interesting project. I’ve had a lot of fun doing it, and learned a lot in the process.

Below is an append that I have made to one of the Zend forums:

I’ve recently moved from Dreamweaver (DW) to Eclipse PDT (without Zend). I’m trying to avoid the $400 to purchase Zend.

I have been pretty much hand coding PHP and JavaScript in DW, using DW to help with CSS and FTP posting to the server.

DW is very helpful when it comes to the graphical/artistic aspects of the site, and was helpful in getting PHP code started. I like the way it helped me get MySQL going, and some of the code it generates for PHP handling of forms, etc.

However, once I outgrew the built-in Spry capability, what I found was that the code it generated was horrible to try to maintain and extend afterwards. I’ve had to refactor/rewrite all of it.

Let me say that using Dreamweaver allowed me to get my last site up quickly, and for that it is a very powerful tool. However, once I reached a certain level of complexity (and personal skills) I needed to ‘graduate’ to something more programmer-centric.

I’ve spent the past couple weeks working with Eclipse+PDT. It took me a day to get things downloaded, mapped to my directories, and the free Zend Debugger installed on my local Apache test server.

The fact that all of this was free was a prime consideration for me at this point. I think if I had had $400 I would have purchased the all-in-one Zend Studio for Eclipse things to simplify and speed up doing all of this. It would be nice to have had technical support during this process.

That gave me a good IDE, but no way to keep my production server updated. I created the Eclipse project right within my local Apache DocumentsRoot so I don’t need to copy to/from the local test server. I also set DocumentsRoot to my AccuRev workspace, so SCM check-in/check-out is quite simple. My company uses AccuRev so I didn’t really have a choice there. If I had the choice I would have installed Subversion and taken a look at Subclipse. I agree with the earlier post that it is worthwhile and probably *not* overkill.

I’ve been using BC2 for synch’ing my local files to the production server. (I use a separate AccuRev workspace to track these changes). This works ok, but I’ve never figured out how to resolve the linux/windows file differences, so the files always appear different until opened and compared. I’ve done a little reading about the RSE(?) project on Eclipse which is supposed to provide remote site management, but haven’t figured it out yet and haven’t wanted to spend a lot of time researching it. My guess is that eventually this will provide the sort of synch capability we all need right within Eclipse.

I purchased Zend Studio 5.5 long ago, and am in the process of evaluating using it instead of Eclipse for now. It appears to provide the main things I needed (Editor, IDE, Debug, FTP) and it also runs on both Mac (my laptop) and Windows (my work desktop).

I hope this long winded post provides you with a few ideas and pointers. Good luck.

Update as of 2/16/09: I convinced my work to purchase a copy of Zend Studio for Eclipse and am now using that. This appears to have been a good choice and well worth the $400 investment.

I’m now part way up the steep learning curve of using Zend Framework. I’ve very excited about this and expect to convert all of my current sites over to Zend framework. I’m working my way through Rob Allen’s “Zend Framework in Action” book, but found that I also needed to view some online youtube tutorials and the Zend online tutorial before it all started clicking for me. I recommend doing this.

(end of forum append)

Having made the point in the first append that I would purchase Zend Studio if I had $400, I went back to my work and requested to purchase it and they agreed. So now I’m using Zend Studio for Eclipse and so far am very happy with it. It’s support for Zend Studio is perhaps the biggest advantage at this point.

I came across Rob Allen’s web site (akrabat.com). This is another good resource for learning about Zend Framework.

Valentine for Life

This is a song that I wrote for the love of my life for Valentines day. I attempted to play and sing it to her, which gave us both a good laugh. I eventually slogged my way through it, but I’ll need to record it so that she can hear what it sounds like start to finish.

 
C 
Shelley I  
Am 
love you and  
F 
I just got to  
G 
say.
 
You’re my  
C 
full moon on  
Am 
dark nights, and  
F 
cool shade on hot  
G 
days.
Am 
Do you re
F 
member our first  
C/E 
trip out to  
G/D 
LA?
Am 
I got on  
F 
one knee and I  
C/E 
asked you please to  
G 
say that you would
Chorus 
C 
be my wife (say that you’d)  
Am 
be my wife (say that you’d)
F 
be my wife, and my  
G 
Valentine for  
C 
Life
E 
g c g  
Eb 
gb 
 
 
D 
 
C 
(trill hi c chord)
 
C 
You are my  
Am 
band-aid 
 
 
F 
when I get a  
G 
cut.
C 
You’re so ad
Am 
venturous, you  
F 
pull me from my  
G 
rut.
Am 
Do you re
F 
call the night that  
C/E 
you ran out of  
G/D 
gas?
Am 
We’d wanted to  
F 
wait but we knew  
C/E 
this chance couldn’t  
G 
pass

(so won’t you)

Chorus 
C 
Please be mine (say you will)  
Am 
please be mine (say you will)
F 
please be mine, Be my  
G 
lifetime 
 
Valen
C 
tine
E 
g c g  
Eb 
gb 
 
 
D 
 
C 
(trill hi c chord)
 
C 
Now that we’re  
Am 
older, folks think  
F 
we should just slow  
G 
down. 
 
But,
C 
Shelley I  
Am 
tell you, you still  
F 
make my head spin  
G 
round.
Am 
It may take  
F 
longer, but that  
C/E 
makes me want to  
G/D 
sing:
Am 
”More of a  
F 
good thing, is still  
C/E 
more of a  
D/F# 
good 
 
thing!”

(key change to D)

 
(repeated in new key)
D 
Shelley I  
Bm 
love you and  
G 
I just got to  
A 
say.
 
You’re my  
D 
full moon on  
Bm 
dark nights, and  
G 
cool shade on hot  
A 
days.
Bm 
Do you re
G 
member our first  
D/F# 
trip out to  
A/E 
LA?
Bm 
I got on  
G 
one knee and  
D/F# 
you told me  
A 
OK

that you’d

D 
be my wife (you said you’d)  
Bm 
be my wife (you said you’d)
G 
be my wife, and my  
A 
Valentine for  
D 
Life

(repeat)

F# 
a d a  
F 
ab d ab  
E 
g d g  
D 
(trill hi d chord)

Don't Check Your Faith at the Door

This is a song for use in the sending forth. It has sort of a Peter Gunn feel to it.

Verse?

Well you’ve heard sermons, and …

to help strengthen your convictions.
We’ve sung hymns and …

Now there’s only one thing more:

Don’t check your faith at the door.

Chorus

Take it out there with you.

Don’t leave it here inside.
You know the world needs to hear you.
So go out there, and …

Trip to Quantico, Virginia

We’ve travelled out to Virginia to attend our son Aaron’s US Marine OCS training graduation tomorrow morning. We’re settled in at the Hampton Inn, and pretty exhausted from having had to get up quite early to catch our 7:00 am flight, as well as having spent about twice as much time driving around Virginia because I kept either gettting lost or making wrong turns.

Motorcycle trip from Austin to Monterey

Saturday, July 12. Austin, TX to Santa Rosa, NM

Met up at the HEB in Leander, TX. at 5:30. Various delays caused us to delay leaving
for almost an hour.

Had breakfast in Lampasas.

Tommy had made reservations in both Santa Rosa, NM and Santa Fe, NM.
We’re were hoping to make it all the way to Santa Fe which was about 680 miles.
When we finally made Santa Rosa at about 8:00 pm, Jim “had a vision” that we should
stop there. We all felt pretty good about that.

Sunday, July 13. Santa Rosa, NM to Ridgway, CO

Ran into some wet weather, so had to suit-up.

Drove in from Santa Rosa to Tommy’s cabin in Ridgway, CO.
We stopped for dinner at the True Grit restaurant there.

After dinner we headed up the gravel road to the cabin.
It was dark, and the dust was pretty bad
coming off the road from Jim and Tommy’s motorcycles in front of us.
We were both pretty nervous about that, but made it safely to the cabin.

Monday, July 14. Ridgway, CO to Ely, NV

Woke up to a beautiful view and the sound of Jim and Tommy drinking
coffee and talking out on the deck. We had kidded about there not being any
coffee at the cabin, or if there was it would be years old. We don’t know why,
but the guys had made a pot of “years old” coffee, and I think it was the best
I’ve ever had. Maybe it was just the view.

Drove down the mountain from Ridgway to Ely, NV.

Tuesday, July 14. Ely, NV to Carson City, NV

Drove in from Ely, NV to Carson City, NV.

Things got a bit dirty at times. Here’s Tommy cleaning his face mask.

Wednesday, July 16. Carson City, NV to Yosemite National Park

Woke up in Carson City, NV a little before 6 am.
Walked down to get coffee, but they don’t make the coffee until 7.

Today we’ll be driving into Yosemite and spending the night there at
Curry Village.
The trip took us along the side of Lake Tahoe.

We stopped at a cafe next to the lake for lunch.

After leaving Lake Tahoe, we then took a scenic side trip
west over Hwy 4. At points it was slow going, being a narrow
single lane highway with hairpin turns. GPS was a great help
knowing when to slow to 5 mph to make the turns.
This picture was taken beside one of several beautiful little
lakes along the way.

Thursday, July 17. Yosemite to Seaside, CA (Monterey)

Yosemite was beautiful. Driving my bike through the valley was a
bucket list item for me.



We got up and had breakfast, then took the tram over
to the Mirror Lake trail. It was a nice 1 mile hike up to the lake. We were up
before most other folks, so had the trail all to ourselves. The lake was indeed
a mirror, with only an occassional bug causing ripples on it. With the sun barely above
the valley walls, the lighting was perfect for showing off the mirror images
on the water. We took lots of pictures!

The drive into Monterey was uneventful. We had made plans with Tommy
to split up once we got close, since he was staying in a different town.
Our GPS misguided us though as we got to the 101, so we split off from Tommy
about an hour sooner than we needed to. Tommy was ahead of us and went straight
through a 4 way intersection, and our GPS told us to go right. So we waved farewell
to Tommy, made the right turn, and then was told by the GPS that we were “off route”.

As we got closer to the coast the temperature suddenly dropped into the low 60’s.
We had to stop and take off our evaporative cooling vests and put on our outer jacket
liners.

We got checked into the Embassy Suites in Seaside, CA. They put us on the top floor (12)
with a nice view. Diner at Chili’s ended another perfect day.

Seaside, CA Friday July 18.

We’re planning on taking it easy for the next few days, wash some clothes,
maybe a few short trips around the beach towns nearby.

Found some pre-race tickets at the Shell station across the street.
Took the noon bus to the Laguna Seca race track and spent the afternoon there.
Shelley asked me as we were going into the track what the chances of finding
Jim and Tommy were, and I was about to say “about 100-to-1” when I heard somebody
yell “Ron” and turned around and there was Jim. So I guess the odds were somewhat
better than that.

Right after getting there, there was a trick bike exhibition. This guy could ride his
bike up a 3 foot wall, stand still for minutes, and walk it over a row of barrels while
doing a wheelie the entire way

That day they were doing practice runs, and had a kids (?) race.

Saturday, July 19

We’ve bought tickets to the Monterey Bay Aquarium, along with the behind-the-scenes
tour at 1:00.

When we came out of the aquarium, we discovered that there was some sort of
bike show scheduled following that day’s events at the track. The street was closed to
cars, and by rough estimate over 500 bikes parked along the street on both sides as far
as one could see.

Did I mention that no cars were allowed?

We heard from Tommy, and his Mom isn’t doing well, so they are going to split
off and head straight home after the races.

Sunday, July 20

My sister Vickie drove down to join us today. We did the 17 mile
Monterey loop (by car). Shelley has been here before, and wanted to show me Pebble Beach and
some of the other sights around here. The weather was perfect, and we stopped and had
lunch in Carmel.

Monday, July 21

Vickie spent the night with us at the hotel, then said good-bye in the morning.
We headed south down Highway 1 (another bucket list item). Wow.

We stopped and did the beginner tour of Hearst Castle. This was worth
taking the couple hours to do. I hadn’t realized that the castle was up so high
overlooking the coastline.

We then finished our run south arriving at Mom’s after stopping at Tommy’s
to pick up a couple burgers.

Tuesday, July 22

We headed out somewhat early, intending to make it to Williams, AZ.
At one point our GPS routed us onto another scary road, reminiscent of our misadventures
in Utah on our sabbatical. The sign on the road said “Warning, this road not maintained.”
What that means is that there were sections where most of the road had caved in. Provided
we maintained a slow enough speed to see these huge holes in the road, it wasn’t any problem.

Anyways, we made it to Williams, AZ about 6 and ready to call it quits for the day.
We’ll have a couple more long days back (about 1100 miles to go), but we may opt to take
3 days. We’re just playing it by ear.

Wednesday, July 23

We got up early (5:30) and headed out. Our plan was to try to beat the heat by doing
most of the driving in the morning. This worked out pretty well. We got into Albuquerque
at lunch time just as it was starting to get hot.

We stopped at a motorcycle shop looking
for a replacement mug for Shelley, since she had lost the top going down that “no maintenance”
road yesterday. They could only sell us the whole thing, bracket and all, so we passed on that.
We’ll need to order online when we get home. We also had them check out her helmet mic which
had been cutting in and out. We tried swapping both cables to the helmet, and in the process
realized that the old cables worked just as well as the new ones, so ended up not buying anything.

We asked for a recommendation for lunch (not a chain, preferably something local) and
they recommended Christy Mae’s. We had the Albuquerque Turkey sandwiches which were fabulous, although we should have split one. We’ll definitely stop by there again.

We then located a local movie theatre and sat out the hottest part of the day taking in
“Meet Dave”. That was really a great idea, and by the time the movie was over it had cooled
down. We didn’t need the evaporative vests all day.

We then drove until dark, which put us in Clovis.

Thursday, July 24

We’re planning on getting up early again, and heading on in. We’ll stop if the going gets
too tough or rainy. Otherwise we expect to be home by mid-late afternoon.

We managed to get onto the road by about 6:30, and made it to Abilene for lunch,
and were home about 4:00. It finally started raining as we passed through Lampasas.
We had been expecting rain because of the big storm coming in off the gulf, but I guess
we almost beat it home.

Motorcycle trip from Austin, TX to Monterrey, CA.

Saturday, July 12. Austin, TX to Santa Rosa, NM

Met up at the HEB in Leander, TX. at 5:30. Various delays caused us to delay leaving
for almost an hour.

Had breakfast in ?

Tommy had made reservations in both Santa Rosa, NM and Santa Fe, NM.
We’re were hoping to make it all the way to Santa Fe which was about 680 miles.
When we finally made Santa Rosa at about 8:00 pm, Jim “had a vision” that we should
stop there. We all felt pretty good about that.

Sunday, July 13. Santa Rosa, NM to Ridgway, CO

Drove in from Santa Rosa to Tommy’s cabin in Ridgway, CO.
We stopped for dinner at the True Grit restaurant there, then headed
up the gravel road to the cabin. It was dark, and the dust was pretty bad
coming off the road from Jim and Tommy’s motorcycles in front of us.
We were both pretty nervous about that, but made it safely to the cabin.

Monday, July 14. Ridgway, CO to Ely, NV

Woke up to a beautiful view and the sound of Jim and Tommy drinking
coffee and talking out on the deck. We had kidded about there not being any
coffee at the cabin, or if there was it would be years old. We don’t know why,
but the guys had made a pot of “years old” coffee, and I think it was the best
I’ve ever had. Maybe it was just the view.

Drove down the mountain from Ridgway to Ely, NV.

Tuesday, July 14. Ely, NV to Carson City, NV

Drove in from Ely, NV to Carson City, NV.

Wednesday, July 16. Carson City, NV to Yosemite National Park

Woke up in Carson City, NV a little before 6 am.
Walked down to get coffee, but they don’t make the coffee until 7.

Today we’ll be driving into Yosemite and spending the night there at
Curry Village.

Thursday, July 17. Yosemite to Seaside, CA (Monterey)

Yosemite was beautiful. We got up and had breakfast, then took the tram over
to the Mirror Lake trail. It was a nice 1 mile hike up to the lake. We were up
before most other folks, so had the trail all to ourselves. The lake was indeed
a mirror, with only an occassional bug causing ripples on it. With the sun barely above
the valley walls, the lighting was perfect for showing off the mirror images
on the water. We took lots of pictures!

The drive into Monterey was uneventful. We had made plans with Tommy
to split up once we got close, since he was staying in a different town.
Our GPS misguided us though as we got to the 101, so we split off from Tommy
about an hour sooner than we needed to. Tommy was ahead of us and went straight
through a 4 way intersection, and our GPS told us to go right. So we waved farewell
to Tommy, made the right turn, and then was told by the GPS that we were “off route”.

As we got closer to the coast the temperature suddenly dropped into the low 60’s.
We had to stop and take off our evaporative cooling vests and put on our outer jacket
liners.

We got checked into the Embassy Suites in Seaside, CA. They put us on the top floor (12)
with a nice view. Diner at Chili’s ended another perfect day.

Seaside, CA

We’re planning on taking it easy for the next few days, wash some clothes,
maybe a few short trips around the beach towns nearby.

Updated ChordsAndLyrics Plugin

I’ve been using the plugin now for a couple months on our church band website with pretty good success. I’m working now on posting it publicly.

I’ve created a folder for it at http://lisles.net/ChordsAndLyrics.

I’ve also created a new category for specifically discussing it on this blog, and will use that category in links back to this blog regarding it.

The latest version 1.2 contains a Site Admin panel in Settings that can be used to select whether to display both Chords and Lyrics or Lyrics only. It also resolves the problem of lyrics wrapping around under a single Chord symbol when the lyrics length is long.