What is Larry Thinking? #16 => Business, Contracts, and More

October 23, 2008

In this edition…

About this Newsletter

So the goal for my last newsletter was to send it out within a month of its predecessor. Ah…those were the days! So it’s been more than two months since my last newsletter, yikes! I’ve spent that time finishing up the Ruby book, which is now thankfully done (more on that in this newsletter). I wish I got it finished faster, but that’s how things go sometimes. But I’m very happy to say that I’ve got some exciting things planned for the next 4+ months. I’m going to take some downtime to polish my own skills, learn new things, remind myself of what I already know, etc. As a way of both taking notes on my little adventure, and to provide more free content to the world at large, I’m going to document as much as I can: impressions, specific code, tips and techniques, whatever. Much of this will be published online in a blog and some will go into future newsletters. More details will follow as I get things worked out. For this newsletter, I wanted to answer some lingering questions and highlight a couple of other things and then I was hoping to turn out another one quickly, but time slipped by again so I’m just going to make this a larger newsletter and move on. I am giving away some books in this newsletter, so make sure you read that part if you’re interested. As always, thanks for reading and let me know if you have any questions or comments. (Also, there seems to be a bug in FCKEditor–which I use to compose these newsletters–for Firefox 3, so I’m not turning any URLs into active A HREF links. I apologize for any inconvenience.)

In the Forum => Online Poll

Thanks to everyone who voted or provided feedback on my online poll (https://www.larryullman.com/forum/read.php?20,38041,38041#msg-38041). I was a little surprised by the result, so I’m quite glad I asked. The solution I came up with in the end is to manage most links through my own site. Established and reliable URLs will be put directly in my books from here on out but others will be linked through me. I’ll use URLs like www.DMCInsights.com/links/1234. In some cases, that will automatically forward the person to the appropriate site. In other cases, that will bring up a page of links and other information. This way I should be able to keep the links and information I put into a book as accurate as possible.

On the Web => MoWeS Portable

A reader referred me to MoWeS Portable from CH Software (http://www.chsoftware.net/en/useware/mowes/mowes.htm). This is a free product that allows you to run a PHP-MySQL application from writable media, like a USB or Flash drive, on Windows. CH Software also has a commercial version called MoWeS Presenter which can run a PHP-MySQL application off of a CD. I haven’t personally used either product but I occasionally get asked about how one would go about distributing a PHP-MySQL application so I thought I’d mention this as a potential solution.

On the Web => Adobe MAX 2008

I’ll be attending the Adobe MAX 2008 conference in San Francisco from November 16-19. I’m not speaking, just attending. They’ve organized the sessions into three threads: Designers, Developers, and Business Decision Makers. Although I also act in this last role, I’ll be focusing on the developer content. I’ve been thinking about learning Flex (I’ve only tinkered with it a bit thus far), so this will be a good opportunity to pursue that. Plus I’ll be able to talk with the AIR people to learn new things, ask questions, etc. The URL for the conference is http://max.adobe.com. I’m excited to see what it’s like and will certainly be reporting upon the experience.

On the Web => Ruby on the Rise

I just saw this article about the increasing popularity of Ruby: http://www.eweek.com/c/a/Application-Development/Study-Use-of-Ruby-Language-on-the-Rise/?kc=EWKNLINF10152008BREAKINGNEWS It also mentions a Web site that I was not familiar with: http://www.koders.com. That’s a search engine for finding open source code in any of some two dozen languages. Worth checking out!

Q&A => How do I protect my Web site’s copyright?

One of the questions I received in response to my previous newsletter (which talked about the business of business) is how to protect the copyright of a Web site and its contents. As a writer I do know quite a bit about copyright protection, but I will say upfront that if you’re serious about the subject, talking to a lawyer is your best bet. And, of course, what I know pertains primarily to United States copyright laws, although most countries respect the laws of other countries in this area. Before I get to my answer I’ll also add that I generally try not to waste time on things that are beyond my control (this belief colors my response).

The specific question sent in was: How do I prevent someone from stealing all the content from my Web site and using it for their own purposes? The answer is that you can’t. Period. You can’t. Anything that’s viewable in a Web browser can be copied and reused and there’s no way of preventing this. Here’s a little anecdote you might appreciate: One day years ago, I started getting odd and irate emails about some business that seemed more than a little dubious. I assumed the emails were spam but eventually had reason to believe they weren’t so I replied to a couple of people. It turns out that some business stole my site’s HTML and images to use for their own site. They were so brazen and ridiculous in how they handled it that they left in my email address and contact form, which is why people started emailing me. I contacted the company hosting that site (which I discovered by viewing the domain’s DNS record) and had them shut it down, but it took some effort. So the bad news is that you can’t protect a site’s content from being stolen. In fact, content may be stolen and you’ll never know about it! The good news, though, is that a dynamic site’s functionality–for example, the database and the PHP and whatever other server side technology–cannot be stolen. So, at most, someone can only steal an empty shell of your site. But what steps can and should you take?

First of all, if you’re serious, it’s probably a good idea to buy up the domain names that are like yours. If you’re primary domain is example.com, then also buy example.net, example.org, and whatever other permutations you can think of. If you’re really, really serious, also purchase misspellings of your domain name, use of additional punctuation (like hyphens), and so forth. You should also go through the proper copyright authority (like http://www.copyright.gov in the US) to copyright your company’s name, logo, etc. Taking these steps will prevent someone from being able to do any legal harm, which is really the worst case scenario (e.g., if I were able to register my company as Microsoft, then prevent the real Microsoft from using that name anymore, they’d be in trouble). In terms of copyrighting a site’s content, you can do so by just placing a copyright notice on each page. However, should you be in a court trying to prove someone violated your copyright, you’ll need proof that it was originally of your creation. The simplest and cheapest way of doing so would be to take your site’s content, put it onto a CD, and mail it to yourself. Then never open that envelope unless you’re in a court of law. This simple step would prove, via the postmark, that you had that content in your possession at that date. Unless the violator could show that they had the same content in their possession prior to that date, which they obviously couldn’t, it’d be clear that you created the content before them, ergo it was yours. (This is called a “poor man’s copyright”, and admittedly, it’s efficacy is questionable.)

As I said, someone legally infringing upon your business is a worst-case scenario. If someone illegally infringes, like the time someone took my site’s design, you would have to turn to government sources to terminate and perhaps prosecute the infringement. This may or may not be possible or even likely to happen. You could also spend quite a bit of money through lawyers and such to pursue financial restitution, which in all likelihood would never pay off. And all of this is assuming that you find out someone is violating your copyright. In the end, my opinion would be that you should take some simple, basic steps, then spend your time trying to make your own business or site successful, and not worry so much about people possibly trying to rip you off. That’s what I do, and I say that as a person that knows for a fact that my book copyrights are being violated!

Q&A => How do I get new business?

Since I’ve been writing about the “business of business” lately, I just received this question about how I get new business. Unfortunately, my personal answer to this question probably won’t be too useful to many others. About 60% of my workload comes from writing books, maybe 30% from existing clients, leaving only maybe 10% from new clients. And most of those clients I get either from referrals or from the fact that I’ve written such and such books (in other words, writing books about a technology is a pretty decent way to get work!). So I don’t know that I can offer the best concrete advice for today, but I will say how I got to this point…

I started doing professional IT work in 1999 (I had dabbled with it before that point). I didn’t come from a formal IT background when I started the Digital Media division of DMC Insights, Inc. (the company focused solely on telecommunications prior to that). I had no tangible experience, no portfolio, and no clients. My best advice would be not to go it alone under such conditions! I was able to make it work largely because of the status of the industry at the time. This was just before the “dot com bust” and there was a lot of work to be done in new and interesting ways. I started off using sites like eLance and Guru.com. At the time, these sites were all just getting started themselves, so they were entirely free (which was nice). So if I were to start today, I’d look at sites like those. You’ll have to be prepared to spend some money up front, which means you should probably have a good buffer of money in reserve (or very few expenses) in order to afford the early dry spell.

The next trick is to make the most of these resources. If you use a site like that, you’ll be competing with lots of other people and companies so you can’t just put your name out there and hope for the best. Figure out what makes you the person to hire and then convince them. It shouldn’t be just price: maybe you’re a better communicator, maybe you can get something done faster, maybe you can give them a taste of what they want before they make the hiring decision. I still have a client from when I just got started and I got the job because I offered a reasonable price and showed them what they wanted before they purchased it (it was a piece of JavaScript). You’ll probably start by spending a lot of time and effort getting jobs and much less time doing the actual work. You’ll probably have to be competitive when it comes to fees and not very picky about the kind of the job you take on. Over time, hopefully, the percentages will switch to where you’re spending most of your time doing work and not much time looking for it. Plus you can charge more money and pick the better jobs to do. Again, I’m very fortunate now in that I don’t have to look for work, but that’s what I remember about how I got started. I would also recommend that if you need to build up a portfolio, try doing some personal projects for yourself, your friends, and your family (for free or a nominal charge). A well-executed personal project counts almost as much as a well-executed professional one.

The person that asked this question also asked about which things I wish I had done differently or wish I knew then that I know now. There’s lots of things that I would like to go back and change, but most are very minor. I had two clients that didn’t pay, costing me a couple thousand dollars. I don’t regret not getting paid as much as I regret the time I spent on their projects that I could have been dedicating to the better clients. A couple of times I should have used contracts but didn’t, not that I ever got terribly burned there. Mostly I made some classic mistakes that many people made in using technologies (like relying upon HTML frames for too long) that I probably could have avoided had I just kept up with the current trends. Although that’s easier to do now then it was back then. Mostly my advice, which I did stick to myself, would be to be honest and fair, communicate effectively, and don’t promise things you can’t deliver (e.g., I have poor design skills, so I outsource that kind of work if it’s part of a whole project). I’ve seen others pretend to be something they’re not too many times and it’s just not worth the risks and negative impact it could have on your reputation. You build a business by giving clients what they want and by treating them well. In turn, they give you money. It’s that simple.

Q&A => How do you learn new technologies?

Someone asked how I go about learning new technologies. This is an amusing question to me because it seems more and more the process goes like this: learn a new technology, use it for X time period, write a book about it! That last part is actually an important step in my learning process because it turns out that knowing something well enough to explain it to someone else requires a knowledge far beyond just knowing how to use it yourself. I remember way back when that I had a cobbled-together PHP script that worked perfectly fine for the situation at hand. Then I needed to use a similar example in a book and went to explain every line of code, and it wasn’t until then that I really comprehended all of the code, and, more importantly, was able to make the code more efficient and secure. But not everyone’s writing a book, so…

The first step is finding out about new technologies that may be of interest. For that I subscribe to lots of newsletters and mailing lists to see what other people are talking about. Then I do a search online to see if anyone’s written a basic introduction to the technology: how to use Ruby on Rails or how to create a simple AIR application. This gives me a better sense of the technology and whether I might be interested in it. If I might be, I think about a possible use. Normally, this is a personal project, just to experiment (you wouldn’t want to sell a client something you’re just picking up yourself). While messing around with the personal use of the technology, I take a look at the available documentation. If there isn’t much, it’s not a technology I want to mess with. In theory, I like to read a book or two about a subject, but that’s not always possible. When I wrote my first PHP book, there were only maybe two books out on the subject. When I was writing the AIR book, there were none. If there are books available, like on C or Ruby, more often than not I buy the best reviewed of them, skim them a bit, but don’t really read them (sadly). I just learn so much better by doing. So I experiment, I get errors, I search the Web for answers, I experiment some more. Some months or years after the fact, I’ll go back and read those books, mostly confirming what I already figured out (or read in the documentation), sometimes picking up better ways of doing things.

What is Larry Thinking => Contracts Revisited

In the previous newsletter, I wrote some general tips about the contracts you use for your business. I didn’t receive any specific feedback about that topic but in rereading previous emails I’ve received, this is a subject that has come up a time or two so I thought I’d revisit a couple of quick points. First of all, and this may seem obvious but it’s not, remember that a contract is a legally binding agreement. Whether you’re the client or the service provider, never sign anything you don’t understand! If you don’t understand it, have it reviewed by a lawyer. If the project isn’t worth the lawyer fees, it’s probably not worth doing the project in the first place. I’m thinking about this again because of a couple of specific things that have happened to me…

Some years ago, when I was fairly new to the Web development business, but not so new I couldn’t say “No” to bad projects, I had the opportunity to do some PHP programming for another company. The company wanted me to sign a non-disclosure agreement (NDA), which was fine. But in the contract they wanted me to sign, it granted them the right to learn about my company’s clients and finances for a period of three years! I have no idea why they would want that (I guess to make sure that I didn’t take what I did for them and apply it elsewhere), but it didn’t seem reasonable to me, so I refused and I didn’t get the job. The important thing is that even if they never exercised that legal right, they would have still had it.

The second example comes from a mailing list I’m on for authors that have written a “For Dummies” book (I wrote two, for Mac OS X). Quite frequently newer authors complain about the treatment they receive at the hands of the publisher. Now, to be fair, one could say that the contracts that Wiley (the publisher of the “For Dummies” series) uses aren’t as kind to the writers as the contracts that other publishers use. But the important thing again is that a publisher can only do what you’ve contractually allowed them to. Any action they might take, like print a foreign edition of your book with other authors’ names attached, is something you’ve given them the right to do.

Book Giveaway

You must be subscribed to the newsletter to participate in the book giveaway.

My Book News

I’m very pleased to report that my “Ruby: Visual QuickStart Guide” is complete and at the printer. It took longer than I had hoped (they often do) but it turned out well and I was able to get some stuff in there that I was worried there wouldn’t be room for. The chapter on Ruby on Rails turned out particularly well, I believe. I’ll also post more details about the book and Ruby in general in time.

With the Ruby book done, I’m now working on the third edition of my “PHP for the World Wide Web: Visual QuickStart Guide”. It’s going to be a very quick and light revision, updating the content for PHP 6 and fixing some minor things. I’m already about halfway through the revision and should be done with it by the end of the month (October).