On OSX, svn: This client is too old to work with working copy ‘.’; please get a newer Subversion client

I got this message when trying to use Subversion on OS X through Terminal.

I checked out my svn version using “svn –version” and it said I was using 1.4.4 – so I decided to update. Here’s how…

Download the latest SVN binaries for OS X and install them just like any other program:
http://svnbinaries.open.collab.net/

Update your system wide path settings by editing /etc/profile through the Terminal:

$ cd /etc/
$ sudo vi profile

At the top of the file, add the following line of text, then save and quit vi.

export PATH=/opt/subversion:$PATH

Then rename the old binary:

$ cd /usr/bin
$ sudo mv svn svn.old
$ cd ~
$ svn --version

And you should see the later version (mine is 1.5.5) and all is good.

Thanks to http://www.imarichardson.com/2008/10/06/osx-svn-woes-client-is-too-old-to-work-with-working-copy/

Upgrading MySQL, PHP MySQL Client Version, phpMyAdmin

Some mental notes for myself in case I encounter this again, and maybe this will help someone as I was doing Google searches trying to figure this out myself…

I have a server with ServInt, which runs WebHost Manager (WHM) and cPanel.  I logged into phpMyAdmin and it said I was running MySQL 4 instead of 5.  Wanting to upgrade to MySQL 5, I went into WHM and used cPanel->Upgrade to Latest Version and Software->Update Server Software.  This updated everything just fine and it said I was running MySQL 5 (and doing “SELECT VERSION()” returned 5), even though phpMyAdmin still did not report v5.

I assumed the fact that I was running a very old version of phpMyAdmin was the problem.  Since I couldn’t find anyway to automatically upgrade phpMyAdmin in WHM/cPanel, I did the following, which tries to use your existing phpMyAdmin config file:

# wget -O /usr/local/cpanel/base/3rdparty/phpMyAdmin-3.1.2-all-languages.tar.gz http://dfn.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-3.1.2-all-languages.tar.gz
# tar xzf /usr/local/cpanel/base/3rdparty/phpMyAdmin-3.1.2-all-languages.tar.gz -C /usr/local/cpanel/base/3rdparty/
# cd /usr/local/cpanel/base/3rdparty/
# rm -f phpMyAdmin-3.1.2-all-languages.tar.gz
# cp -R phpMyAdmin phpMyAdmin-backup
# cp phpMyAdmin/config.inc.php phpMyAdmin-3.1.2-all-languages/config.inc.php
# mv phpMyAdmin phpMyAdmin-old
# mv phpMyAdmin-3.1.2-all-languages phpMyAdmin

And then I got an error in phpMyAdmin, and seeing nothing significant in my old config file, did this to use the sample that comes with the new version:

# rm phpMyAdmin/config.inc.php
# cp phpMyAdmin/config.sample.inc.php phpMyAdmin/config.inc.php

Then phpMyAdmin worked just fine, and the new version differentiates between Server version (which was now correct) and PHP Client version (which didn’t sound right).  I checked phpinfo() and the PHP MySQL client version was 5, but I read that I would have to recompile PHP.  I took the opportunity to upgrade from Apache 1 to 2 and to the latest release of PHP 5, all done using EasyApache under WHM->Softare.

With PHP upgraded and recompiled, I then went ahead and launched phpMyAdmin again.  It still gives the warning, “Your PHP MySQL library version 4.1.22 differs from your MySQL server version 5.0.67. This may cause unpredictable behavior.”, which is what I was trying to get rid of, but now I give up.  I know my MySQL client and server versions are both 5, so if anyone knows how to fix that warning let me know.

Let me know if you know why phpMyAdmin gives this warning.

PS, I also did this:

#vi phpMyAdmin/config.inc.php

and added a random string under blowfish_secret.

Switch to MacBook Pro and OS X

A couple months ago I bought my first Mac computer with the release of the new MacBook Pros. The new machine is beautiful and the switch to OS X from Windows has been primarily positive overall.

There were a few things from Windows that I greatly missed, but I found solutions which worked:

Make Safari open new windows in new tabs (especially links in Gmail messages), just like Firefox: http://hetima.com/safari/stand-e.html

My Bluetooth Mouse was extremely difficult to use with the OS X mouse acceleration settings.  Fortunately after trying several options I found a program that fixed the problem for me: http://www.usboverdrive.com/

Create “new document” context menu option in Finder to create a quick way to make a new Word document or Text document in a specific folder: http://www.growlichat.com/NuFile.php

Combine multiple buddy lists into one in iChat: http://www.ksuther.com/chax/

Quickly lock your computer like Windows Key + L: http://www.gkoya.com/2006/11/23/locktight-for-mac-os-x-intel/

Google Summer Internship Completed / Goodbye California

This summer I had the privilege to intern at Google and spent another summer in Silicon Valley – the hub of all things tech-related. My internship lasted 10 weeks and, much like my Yahoo! internship last summer (I gave my reasons for not going back to Yahoo! this summer), I had an incredible experience.

I learned a lot at Google. I did a combination of development for the front-end (JavaScript/AJAX, CSS/HTML) as well as on the back-end (PHP, Java). Every line of code that I wrote was code reviewed by another Googler before it could be checked in. At first I thought this was an unnecessary and time-wasting procedure, but I came to understand the importance of this, even for the seemingly unimportant pieces of code. When you know someone else is going to be looking at your code, it forces you to program more clearly and concisely, and I learned better coding techniques from the code reviews. Also, by ensuring that all code at Google conforms to the same style guides, any engineer can quickly jump into someone else’s code with the smallest possible learning curve.

My software engineering internship was pretty unique and flexible because of the team that I was on, so I also had the opportunity to do a good bit of UI (user interface) work. I designed from scratch, improved existing UIs, and did research and make recommendations for better UIs. My other team members (here’s two) were very talented and I was able to learn a lot just by working along side them. Working at a company like Google is great because you are constantly surrounded by very intelligent people.

It is a great feeling to know that you’re working at a company which is providing products and services that millions of people use every day. It is an even better feeling to know that your work is directly being used and liked by real people. At Google, while doing research for one of my projects, I had an idea that would help save other Googlers time and make them more productive. Without getting into details about the project itself, after about 1,000 lines of JavaScript, I had created something that a lot of Googlers started using, talking about, and sharing with others. It wasn’t a world changing application that is being launched externally any time soon, but it was useful enough that we could actually see it spreading virally throughout the company, and I got over 100 thank you emails within a few days. I can only imagine the great feeling it would have been to create an external product (like GMail), that millions of people love and use daily.

Another great part of the summer was the opportunities for networking. I was able to visit Meebo for another great lunch2.0, visited the offices of Facebook a couple times, met the creator of Mint (which I think is my favorite web2.0 app of the year), attended WordCamp, and attended the Techcrunch Party 9 at August Capital. It was also great seeing, meeting, and hanging out with a lot of other young people working in the web space – other Google interns, friends at Yahoo! and eBay, those doing startups, others working in the Bay Area, and friends who flew out to visit.

Overall, I’d give the summer a thumbs up. For now, I’m back in Gainesville studying Computer Engineering at UF, where the weather is significantly hotter. A lot of people have asked me about next summer and what I want to do when I graduate. I still do not know. I could definitely see myself at a company like Google, but for now I am just looking forward to a new semester at school and am not making any definite plans yet.

Two Websites Launched

I have two more happy clients now. I’ve launched two new websites recently: SwimmingSafari.com and Hibernicor.com …

Hibernicor, LLC (Gainesville, FL)

This website is for Hibernicor, a medical technology company that is creating a device which allows for better transportation of donor hearts. The website design was based on the client’s needs.

Highlights:

  1. Clean, professional site design to complement the company’s other branding material.
  2. Laid out technical content in a simple way by attaching PDFs and other documents where appropriate.
  3. Developed a simple way for the client to post news updates for those interested in the company.
  4. Built the site around WordPress as a Content Management System (CMS) which allows the client to easily update the website content without knowledge of web design.

“Our clients think the website is great and has a professional layout that is easy to use.”
-Andrew Rivard, Founder of Hibernicor, LLC


Swimming Safari Swim School (Jacksonville, FL)

This site is the online home for Swimming Safari, a company that teaches swimming lessons. I came up with a complete website design based on the client’s needs.

Highlights:

  1. Site design is fun and inviting to convey a child-friendly swimming lesson environment, while being professional and easy to use.
  2. Provide a way for the business to accept online payments via PayPal to save time in processing registrations.
  3. Focused heavily on Search Engine Optimization (SEO) in order to help drive local business to the site for people looking for swimming lessons in Jacksonville, FL.

Google Summer Internship

Google logo

I’m was recently offered and accepted an internship at Google for the summer. I’m extremely excited about this opportunity as I’ll be working at the company which has been having such an incredible amount of impact on the web. I’m looking forward to being around and learning from the very talented people that work there.

My title will be Software Engineering Intern, and I’ve been placed on a team that works on web applications for Google’s intranet. I won’t be able to discuss any specifics of what I’m working on once I begin, but I’m expecting it will relate to primarily front-end work (user interfaces and such using HTML/CSS and JavaScript/AJAX) as well as some PHP.

I’ll be out in the San Francisco Bay area again (6/5/07 – 8/10/07), most likely living near downtown San Jose. I’m definitely looking forward to reconnecting with many of the people I met last year there and meeting many more.

Lastly, some people have asked me about Yahoo!, and why I’m not returning there for another summer. I had an incredible experience at Yahoo! last summer; it is a leading web company and I learned a lot by being there. However, I feel like my summer would be better spent at Google for a few reasons. First of all, this is the one time in my life where I’m able to easily check out multiple competing companies in a relatively short period of time. Secondly, while Yahoo! is doing great things, Google is behind more products that I currently use on a daily basis and I have a strong appreciation for their simple but powerful interfaces such as Gmail and Google Calendar. I’m not putting Yahoo! out of the question in terms of future employment, but I also don’t feel an obligation to go back.

I’m looking forward to this summer at Google. I expect to learn a lot and will hopefully have another great, eye-opening experience.

Thoughts and Recap of SXSW

SXSW 2007 Platinum badge

This post comes a bit late, but I wanted to recap my experience at SXSW Interactive 2007. I decided to diverge from the typical college spring break plan and headed out to Austin, TX for the 4-day conference covering topics such as web design, usability, blogging, and other technology.

Some of the panels and parties that I enjoyed the most:

Saturday 3/10:

  • After the Brief: A Field Guide to Design Inspiration. It was great to see some examples of inspiration for designers Jason Santa Maria and Rob Weychert of Happy Cog Studios
  • Grids Are Good and How to Design with Them. Very insightful and practical presentation about using grids in design from Mark Boulton and Khoi Vinh of Subtraction
  • From Tags to Riches: Life After Code.

Sunday 3/11:

  • Keynote Conversation: Limor Fried / Phil Torrone. They’re from MAKE, what else do I need to say? It was also good to see Bre Pettis of Make Magazine again.
  • Avalonstar Bowling Tournament. Thanks Bryan Veloso, this was definitely one of my favorite parts about SXSW. Competition+meeting others in a fun environment was a great experience. My team, Team Pin Monkeys, came in 2nd place overall, after nearly losing to the guys from Clearleft.

Monday 3/12:

  • Barenaked App: The Figures Behind the Top Web Apps. Many thanks to the founders of Freshbooks, Dropsend, and others who were willing to share exact figures in terms of development costs, gross revenue, etc for several popular web apps. I was especially shocked to see the high monthly maintenance costs of these apps – very insightful.
  • The Growth and Evolution of Microformats.
  • Godbit Dinner. Great to finally meet Nathan Smith and several other great people and had some really good conversations.

Tuesday 3/12:

  • Web Typography Sucks. Another great presentation on the current state of web typography. I learned a lot in terms of letter spacing, line height, fonts, special characters, alignment, and more.

All in all, I had a great experience. While I expected to go to SXSW to learn a lot (and I did), I quickly figured out that it wasn’t really just about that. As Richard pointed out, it’s more about meeting people. No other place (arguably besides in Silicon Valley) can you find so many enthusiastic and talented designers and programmers. I was able to just go up and introduce myself to well-known designers and bloggers, and they were always completely approachable and humble. Being in this kind of environment definitely caused me to think about the web design and developing web apps in a different way. SXSWi: highly recommended.

SXSW & Business Cards

With SXSW coming up, I decided to make up some quick business cards and have them printed through OvernightPrints.com. I can’t believe SXSW (and Spring Break) is only a week away, but I am excited and looking forward to learning a lot and meeting some great people.

It will also be good to see some people I haven’t seen in a while. I’m flying up with Jon Livingston, meeting up with Richard Crowley, and looking forward to see Bryan Veloso at the Avalonstar Bowling tournament. If I know you (or not, but you’re reading this) and you’re going, be sure to let me know so we can meet up. This is guaranteed to be an interesting experience, and I’m excited. Maybe I’m expecting too much, but I’ve heard from people that SXSW can change your entire perspective regarding the web. Bring it on.

Some Advice for Facebook on Integration

This post actually is a comment I left for this blog post, but decided I would also post it here.  The author’s post discusses contrasting opinions on using several separate social media websites vs. using Facebook for everything.  My comment is below:

Great post!  In a way, I would strongly agree with you.  In a way, I desire more integration.  Ironically, I actually found/read your post through Facebook Notes because you tagged Richard.

I, too, am an avid user of the “best” social networks (Flickr for photos, del.icio.us for bookmarks, YouTube for videos, LinkedIn for professional networking, etc).

Here’s what I like about what Facebook is doing: making these services available and known for “the masses”.  Blogging/Notes, Photo Sharing, and now Shares.  For people who wouldn’t normally use any of these features at the above named other websites, this is great.

Automatically recognizing blogs listed as “websites” and integrating/importing blog posts as Notes is genius.

In my opinion, this is the kind of the thing that Facebook really needs to do.  Here is another example:

What if Facebook extended this type of functionality to watch your del.icio.us (and other popular/competing sites) bookmarks and automatically import them into “My Shares”?
[Aside: you may not want to pollute everyones News Feed each time someone bookmarks something, but perhaps a message like: “Phil Freo has Shared _7 items_ today.” with a link to those items would be good.]

The magic for Facebook can then happen when a lot of del.icio.us users have all their bookmarks as Shares.  “Normal users” (the kind that don’t use del.icio.us) can then benefit from everyone else using it by being able to search/find the best websites about anything.    By keeping the current Shares model, I would never think to search Facebook Shares for a good website (or search my own bookmarks) – but this would cause me and a lot of other people to rely on Facebook for even more, which is exactly what they should want.

So, what else can Facebook do to both integrate *and* allow non-techies to benefit from?  Here’s three to get you started.

  1. Automatically watch/import/tag my del.icio.us (and competing) bookmarks as Shares.
  2. Automatically watch/import my blog’s comments in imported Notes
  3. Automatically watch/import/tag my Flickr photos where possible into My Photos.

[Aside: yes, there are issues with each of these, but I’m more than confident they can be worked out.]

For the average user, there is just a massive amount of very valuable content on Facebook.  For the power user, they now have all of their own content on Facebook.  Everyone would then be happier – especially Facebook.

CSS Tabs, BrowserCam, and Temporary Email Addresses

After spending time today with frustrating IE6 CSS issues with borders on ul and li tags, I finished my CSS navigation tabs. The CSS is based on the XHTML produced by the WordPress K2 theme, but can be easily matched for any site.

css for k2 theme tabs in wordpress

Here is the CSS:

ul.menu {
margin: 9px 9px 0 9px;
padding: 5px 0px 6px 10px;
border-bottom: 1px solid #afafaf;
}

ul.menu li {
margin: 0px;
list-style: none;
display: inline;
}

ul.menu li a {
margin: 0;
padding: 5px 12px 6px 12px;
border: 1px solid #afafaf;
background: #DDE;
font: normal 12pt Georgia, 'Times New Roman';
color: black;
text-decoration: none;
}

ul.menu li a:hover {
background: #333;
color: #eee;
text-decoration: none;
}

ul.menu li.current_page_item a,
ul.menu li.current_page_item a:hover {
border-top: 1px solid #afafaf;
border-bottom: 1px solid white;
background: white;
color: #333;
text-decoration: none;
}

BrowserCam is an extremely useful (and quick) tool to easily see a screenshot of your websites in over 30 different OS/browser/version combinations. It’s incredibly handy instead of guessing whether it work in other browsers, or trying to install multiple versions of each browser. It’s free for 1 day for every email address you have…

On an unrelated note, 10 Minute Mail, 2 Prong, and Mailinator allow you to have an instant free temporary email address for those sites that require you confirm an email address but you know you don’t need your real address. Leave your browser window open until you get that “confirmation” email and then forget about it.

PS - If anyone has any advice as to how to easily paste CSS or other code and have WordPress preserve it’s formatting (line breaks and spaces), let me know.