Building A Website for Affiliate Advertising

I’ve been reading a bit about various ways to make money with online advertising. I’m looking into various affiliate programs, trying to decide on my next little website/blogging project. My first experiment with Google Adsense is on an informational site running on the WordPress platform. It’s doing fairly well, making around $100/month, but it took a lot of blog posts just to get it to that point and since its my first blog with ads, I’m not sure how well that will last in the long term.

I’m looking for my next idea. I was considering trying my hand at an affiliate program, but there’s so much out there and I’m not finding a ton of useful information about which programs are actually good, how people are making money with them, how to promote certain products, etc. I don’t mind putting in some time making a website, but I don’t want something that’s going to take several weeks and then only pay a few cents a week.

I checked out Commission Junction, which looks OK, but I can’t get approved to use their advertisers links until I have a website to put them on and I don’t want to spend time building out a site, only to not get approved by the advertisers.

WordPress Upgrade “Cannot Copy” FTP Permission Issue In Layman Terms

Solution: Contact your webhost and ask them to change your ftp server to ProFTPd.

Oh my goodness, WordPress upgrades have been giving me such a headache! As previously posted in “Automatic Update Fail” I was only able to upgrade my accounts either manually or after deleting the “upgrade” folder myself. I had hoped that this would solve future problems, but with the release of WordPress 3.0.1, all my blogs were failing to upgrade (including plugin updates) giving me a variety of changing error messages saying some variation of “cannot copy /public_html/…” and it would give me a path to different files, usually ending in dev.css. After countless hours of messing around with file permissions through Filezilla and/or through the file manager in CPanel, after deactivating my plugins, after manually deleting the upgrade folder and the .maintenance.html file…I was extremely frustrated and nothing was solving the problem.

The repeated “solution” posted on several forums was to simply manually upgrade when things don’t automatically upgrade…which works, but I’m a “why” person. It bugs me to not know why something is occurring and it’s a pain to have to repeatedly manually upload & upgrade when you have several different WordPress blogs & plugins, as is my case.

The solution has been found and is resolved (knock on wood).  I had read a few forums where people had mentioned a thing or two about ftp user permissions and how sometimes there are permissions problems with your ftp server. I honestly didn’t understand it all (and still don’t entirely) as I’m not a server person by any means, but my understanding was that it wasn’t a permission issue that I was going to be able to manually change through Filezilla or the CPanel file manager  and it had something to do with dhappache user or Nobody User permissions.

On a whim, I decided to check out my web host’s forum to see if other folks were have similar issues. I found out they were, but there were no posted solutions besides the usual manual upgrade. Argh. I then checked out their twitter account and they had posted a link to a WordPress forum thread that explained this:

“From what I’m able to tell by looking at the logs during an upgrade or plugin installation, the script attempts to write to an invalid path (usually /public_html/somefile rather than /home/username/public_html/somefile) before using the correct path. It does this for each and every file, so during a major operation like an upgrade where a lot of files are involved it takes a very long time. Eventually the script freaks out and tries to access more memory than is allowed by our suhosin php security module. In most cases it attempts to access 256MB while our default limit is 32M. Suhosin blocks the script and the installation fails.”

This made sense to me because I had used an .htaccess file to increase the amount that PHP memory could use and it helped for a plugin I was trying to upgrade, but it didn’t solve my overall upgrading problems.

Long story short, I needed to contact my web host to change my ftp server so that instead of using pureFTPd, it uses proFTP. For now, whenever I want to upgrade, I have to send them a ticket (thankfully they respond quickly) and have them change it. When that is done, I do my upgrades and then let them know when I’m done so that they can change it back. Hopefully this will be fixed in the future, but for now, it’s nice to know what the problem is and how to go about easy upgrades.

WordPress Automatic Update Fail

I host two WordPress blogs on my hosting plan and the past few upgrades have been a pain in the arse to put it mildly. In simple terms, the “automatic upgrade” failed giving a variety of error messages. One time I was simply having permissions issues; that was a while ago and wasn’t a difficult one to fix.

The previous automatic update didn’t work, so I did it manually and that worked fine for a little bit, until I got an error message about duplicate header information. After a bit of research I found out that Dreamweaver had inserted a space after one of my php files and it was causing all sorts of havoc.

Now, the most recent update to WordPress 3.0 failed, but I wasn’t getting any error message whatsoever, just a frozen screen that said something along the lines of “unpacking core updates…”. Finally, I solved the problem…sort of.

I had to delete my wp-content/upgrade folder. I don’t know why this happens and would love it if someone does know and can explain it to me, but sometimes WordPress fails to delete the temporary files in your upgrade folder from a previous upgrade. This causes problems. So, all you have to do is go delete that entire folder and try running your update.

I was having some trouble using the automatic update for several plug-ins and that solved those problems as well. Unfortunately, I still have to go delete the upgrade folder myself before doing any automatic updates, but at least that’s easy to do and blog life moves forward.

Side Note: It’s amazing how much disk space is freed up after deleting the upgrade folder. I did it for both blogs and checked the disk space in CPanel, wow. I highly recommend you do this occasionally.

Logorama (I asked ListofNow to suggest a post title for me…I’m sorry)

I love logos. They’re pretty. I love the constraints that a designer is given to work with and seeing how creative people can be. They look easy, but they actually need to accomplish a lot. They need to be readable. They need to communicate a feeling or an idea. They need to be unique and memorable.

I’ve been working on my own logo for a little while now as one of the first steps in designing a portfolio site. It’s usually a better idea to spend a lot of time on the logo before jumping into actually making a website because the logo needs to work with the rest of the site and can inform other thematic or color-specific choices. It’s one of those pieces that’s worth spending extra time on and making sure it’s right before going too far forward.

The reason I’m thinking about logos this Sunday is because I sat down at my elderly laptop with a cup of coffee and put on some excellent music to check out my feedly page (which for anyone that subscribes to feeds, I HIGHLY recommend. It’s a much more pleasant way of reading your feeds than Google Reader or other similar readers). I came across a Smashing Magazine article titled “Design a Print-Ready Promotional Ad Using Photoshop and Illustrator”. It mentioned as a place that print designers can go to find vector-based (easily editable) logos of tons of major corporations. It eliminates a lot of emails and phone calls trying to track down high-quality logos.

It’s an awesome place to go to just check out some logos and then, if you’re so inclined, you can download them and work with them yourself.

I particularly enjoyed this recently uploaded logo:

Get A Web Design Job: Accomplished.

A few weeks ago I posted a blog about my ideal work environment. I ended it by saying “If I blog it, it will happen.” Well, it happened, so there ya go.

Well, it didn’t EXACTLY happen as I blogged it. There is not a a workout room (unless a nerf basketball hoop suctioned to a dry erase board counts). There’s no pool. There is not a rooftop patio, although there is a collection jar for a “retractable rooftop” which seems to have roughly $5-$10 in it at any given time. It also doesn’t have a Mexican restaurant with great happy hours and I’m completely shocked because, really, what office doesn’t have at least that these days?

Things to Consider When Creating Your Online Portfolio

Nearly every creative person I know has or wants an online portfolio to showcase their work.

I’m taking a course that is meant to help students define and market themselves, and today’s class brought up a lot of great things to think about when creating an online portfolio. These are taken largely from notes I took during class, so it is a combination of stuff the teacher said or wrote on the screen and my own thoughts as I went.

Things to consider when creating your online portfolio:

  • Your interface should not interfere with your work. There is a reason that art galleries have simple, plain white walls. People aren’t there to check out the gallery’s stunning vintage wallpaper and fancy woodwork; they are there to check out the art on display. Visitors to your portfolio aren’t there listen to your background music or to watch a three-minute Flash intro. They want to see your work, so let them!
  • It should be easy to update. The number one way to keep a closet organized is to make sure everything is easy to take out and easy to put away. If you have to move the stand-up fan and then the tool box and lift up the guitar before you can put your folded blanket away, you’re just going to put the blanket on top of the fan. Whatever is easiest almost always wins in the end. The same rule applies to your portfolio for the same reason. If it isn’t easy to update, you probably won’t do it often and you probably won’t spend enough time making sure it looks right.
  • Be aware that most visitors spend a surprisingly brief amount of time at your site. Either make your navigation load and display quickly so that visitors can browse as much of your content as fast as possible, or make sure your content is engaging enough that they will willingly linger around your site.
  • Know how professional you need to be. Who do you want to hire you? Your portfolio design needs to speak the language of the industries that you want to attract. A portfolio for a web designer who builds sites for rock bands will probably have a much different feeling than a designer who builds sites for law firms. What kind of client are you interested in? Research and compare portfolios of people doing the kind of work you want to be doing.
  • Be as truthful as possible in communicating your skills and what you’ve contributed to projects. There really is nothing to gain from lying. Clients are going to know if you can’t do something and it will piss them off if you waste their time and money (and your own). There’s nothing wrong with saying something was a collaborative effort; tell them specifically what you contributed and sometimes it will be a match and sometimes it won’t be. Also, if you worked on something that a client chose not to go with, it’s perfectly fine to show it. Your value comes in the work you did and your ability to explain your choices, not necessarily what a client chose in the end.
  • Start Now. While you should always be striving for perfection, you should never wait for it. (Here’s a secret: Perfection doesn’t actually exist.) If you’re challenging yourself, learning and growing, then you will always be thinking of another way you can improve your work. You will probably constantly look back at your previous work and hate it because you can think of a dozen ways it could be better. That’s how it should be. Don’t let the desire for perfection immobilize you. Know when it is good enough and put it out there. Redesigns/revisions/etc can and always will happen.
  • Show the human element. This is meant literally. Create an about section. Write up a short bio. Give a brief history of the company. Put up a picture. Introduce yourself in some way. There are a million ways to do it, but there needs to be a human at the other end of that portfolio. The work is the most important part, but clients don’t want to work with a complete stranger.

Wish List: The perfect office

An article posted on the ReadWriteStart channel called From Co-Working to Cubicles: Where are you Working? got me to daydreaming about my ideal work environment.

I’d repost some pictures of awesome offices like the Twitter office, but the images are copyright protected, so a link will have to suffice.

Here goes:

  • I want to be able to take my office with me. I don’t think humans are best suited to repeatedly sit in the same spot of the same room every single day. How often do people start looking for a new job just because it’s time? To me, that means, “I can’t take looking at that Ansel Adams photo one more time. This place is starting to kill my soul.”
  • A home office. My ideal home office will be organized, but not too organized. It will be clean, but not sterile. I will have inspiring things hung up on my wall (not kitten posters with motivational quotes. More like artsy travel posters of the imaginary planets from Serenity. There’s a small chance I might already have those.) I will have a lot of plants. I will have a comfy couch, a spacious desk and a beautiful computer. There will be a coffee pot really nearby and my office will be stocked with great pens.

OK, so that’s really about it. Now, if I do not work from home and instead work in an office with real life co-workers, here is my ideal scenario:

  • It will be near my house so that commuting will not be a major part of every day of my work week and the parking will be easy.
  • The building will make genuine efforts to be eco-friendly.
  • There will be lots of huge windows overlooking a pleasant landscape (a skyline, forest, ocean…that sort of thing). My desk will be positioned right next to a window.
  • Lots of plants
  • Good lighting, none of that fluorescent stuff.
  • An open’ish floor-plan and  high-ceilings.
  • It will have some color to it.
  • Coffee.
  • Aaaaand, there will also be a workout room, a pool, a rooftop patio, and a really good Mexican restaurant with great happy hours.

So that’s my dream folks. If I blog it, it will happen.

Gzip: How a little compression can save the day

There come a few times in a budding web designer’s life when they discover something very useful and incredibly helpful and they wonder, “Why on earth did nobody tell me about this before!?” And, being the collaborative souls that they are, they think, “I will share the news with all of the others so that they too will reap the benefits of this new knowledge!”

Well, lucky for me I have a blog for this sort of thing. Somewhere out in the vast hinterland of the Internet, a lone geek must also be asking, “Is there another way to make my web site faster?”

And like me, they shun the easy non-standards solutions of image maps. Like me, they have read and re-read countless articles on how to optimize photos for the web. And like me, they felt there just must be something else out there. Something warm and fuzzy, like a tiny piece of code.

Today on my journeys, I learned a few new things on topics whose keywords involve GZip, htaccess, Live HTTP Headers, and YSlow.

Just about every web developer uses Firefox add-ons, especially the Web Developer Toolbar. There are two others that are particularly useful when trying to increase the loading speed of a site and for some silly reason, I never used them until today: Yslow analyzes a site’s performance based on Yahoo’s rules for web performance and Live HTTP Headers displays the live communications between your browser and a site’s server.

I used YSlow to analyze one of my sites. I got an “A” in everything except GZip compression. Huh? I did some reading and discovered that I might need to configure my server to output GZip compression. To check this, I scanned the dialog between my browser and the server using Live HTTP Headers. I saw that my browser sent this request: “Accept-Encoding: gzip, deflate.”

This is the browser telling the server, “FYI, I accept compressed files if you have any.”

The server ignored that request, meaning that it was not set-up to Gzip my content. Bah!

I have a shared-hosting plan and never realized that I have access to certain server set-up options. Web hosts who put dozens of clients’ sites on one server would be insane to allow everyone access to the server’s config file. I thought I’d just have to send them a message if I needed something on the server changed. It turns out that individual accounts may have access to certain set-up options by using an .htaccess file (hypertext access).

First, locate the file. I signed into CPanel, went to the file manager, clicked on a little check box to allow me to view hidden files, and then went into my home directory. There it was, “.htaccess”. I clicked on it to edit it and added code from BetterExplained to configure the server to allow compression output.

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Or, compress certain file types by extension:
<files *.html>
SetOutputFilter DEFLATE

I saved the file.

I then reloaded my site and behold, the load time was four times faster! My work here is done.

For great reading, check out these articles:

Real-Time with PubSubHubbub

“An overview of PubSubHubbub, a simple, open, web-hook-based pubsub protocol & open source reference implementation. Brett Slatkin and Brad Fitzpatrick demonstrate what PubSubHubbub is and how it works. For more information, visit” –The Google Code Channel on Youtube.

Kinetic Wave Sculptures by Reuben Margolin

Maker Profile – Kinetic Wave Sculptures on MAKE: television from make magazine on Vimeo.

Artist Reuben Margolan talks about how he experiments with his ideas to create wave sculptures.

I love so much about this, like how making things has been a part of his life since he was a child and how he takes one thing about the world that he finds beautiful or fascinating and then uses his art to experiment and explore that.