Archive for June, 2010
Alright, so you’ve got your CMS (website software) installed and set up, and you’re looking at your new front page.
Here’s my suggestions for the first ten things to do to get your website “off the ground” as it were. It’s recommended that they be done in some kind of order, as you will get the best results with one after having done the others before it.
1. Edit your front page
This should go without saying. Change the default content to something a little personal talking about you and your new site. State what it’s about, but don’t go overboard with the keywords or ads. A new site is a new site, but a new site rife with “keywords” and ads will scream “stay away!”
Don’t worry about themes at this point, unless you have something specific in mind. The search engines won’t care what kind of theme you use and they’ll re-index as things change. There will be plenty of time for theming later.
2. Get an XML Sitemap plugin
XML sitemaps are sitemaps specifically designed for search engines to use to crawl your site quickly and effectively. They contain a list of every page regardless of whether or not it’s linked from another page, and the page’s last update. Even better, most XML Sitemap plugins will automatically “ping” (or notify) the search engines when you create a new page or update a page. A must have for fast indexing.
3. Get your webmaster accounts
Google, Yahoo, and Bing offer webmaster tools for site owners to submit, verify, and specify XML sitemaps for their sites. Once you complete this step, search engines will usually begin crawling your site within a day.
Make sure to complete the verification steps at each site.
4. Get a good stats system
Server logs aren’t a good indicator of site traffic unless you’re getting less than a handful of hits each day. Even then, once you start getting some traffic, you’re going to want to see specifically what pages are popular and with what visitors. Even inbound searches will show you what you’re doing right so you can keep focusing on the important stuff.
I recommend Clicky. The stats are real-time and it’s free for one site.
5. Get some inbound links
Chances are you have at least one friend with a website. Ask them to put up a link to yours. This is good for two things, traffic and search engine ranking.
Visitors to the other site may see a link to yours and click on it, and search engines will see the link from the other site to yours and “follow” it to yours, helping your search ranking.
Of course, it helps if the sites are on the same topic as yours.
6. Make it your own
Start playing with the theme, layout, and color options. Make it your space and your style. Darker themes are more suitable for personal sites, lighter themes for more professional. Use colorful backgrounds that show off your skills if you are an artist (painted or drawn art, music, etc. If you create something, show some style).
7. Start adding real content
Nothing is going to turn away visitors faster than the words “Coming Soon” or “Under Construction.” Post something up, if only a few paragraphs. Talk about yourself, the reason and aim for your site, and what you’re working on. Link to your user profile on some social networking sites, put up pictures. Above all, make sure it’s original content! Users know when you steal from other websites, and it will immediately discredit you.
8. Make yourself available
Add a contact form, your email address, a Skype or Google Voice button if you have them. If a viewer wants to get in touch with you, they should be able to. If you’re a business, your address and/or telephone number are also a must.
9. Add interaction
Add a comment box or guestbook. Let visitors comment (even if it’s negative). You may learn something. Respond to the comments to show you are involved and that you care.
10. Update often!
A web site is not a set-it-and-forget-it kind of thing. Look at your site regularly and add new content, update out-of-date content, and play around with the layout. Out-of-date content is a turn-off for most web visitors. No one wants to spend time reading a post that is obsolete or out-of-date. Keep it fresh and keep it coming.
Have experience launching a website or any advice to share? Did you try these tips? Did they work for you? Have something to add? Please share it in the comments!
A friend presented me with an issue a while back where certain buttons on his Logitech keyboard, specifically the zoom bar, didn’t work properly under Ubuntu. After some searching, I found a site that codes Linux drivers for these devices, and directed him to it. They have drivers for Debian, CentOS, Fedora, Mandriva, Mint, RedHat, Suse, and Ubuntu. The full list of supported devices is below.
After testing, he came up with a set of instructions (originally posted at another site) and I have rewritten them here in a [hopefully] more accurate process.
- Head over to HIDPoint
- Fill in the requested information on the download page (mouse/keyboard/OS/etc…), you can ignore the email field if you wish and select download. Make sure you select correctly if you’re using a 64-bit or non-64-bit OS.
- On the next screen, select the link “Download Now“, and save the file to your hard drive.
- Navigate to wherever you downloaded the file to.
- Right click on the file, and go to Properties > Permissions and check the box for execute.
- Double click on the file and select “Run In Terminal“. Type “Y” then hit “Enter”.
- Follow all on screen prompts.
- After Installation is complete, you will need to reboot.
CMS systems like WordPress, Drupal, Joomla, etc are rife with plug-ins and modules you can add for extra functionality, but it’s really hard to tell the load that some of those add-ons place on your system and database. When you want to have a website that won’t collapse under load (or take the server down with it) it’s important to have well-written plug-ins. Many times we install things assuming without knowing the impact they can have. Especially in the case of shared hosting where everyone shares a server, it’s important to play nice — or face the possibility of having your hosting account suspended because you put too heavy of a load on the system.
I got to experience both sides of this first hand. Some time back I had my Drupal site hosted on my own machine. In searching for a decent chat room, I found the Drupal chat room module. It was easy to install and set up, and I had a few friends joining in to give me feedback on it. After 3 or 4 people joined, it started to get really laggy. I took a look at the server and saw that it was literally drilling a hole in the SQL server. The amount of queries and load that it was producing was just unbelievable. So I disabled it. Lesson learned.
Last night while I was making some changes here, I noticed a lot of issues with pages taking forever to load, lost connections to the MySQL server, etc. Since I’m on shared hosting, the first thing I thought of was “maybe the server is having an issue?”
So I checked server status: Nothing.
I let it go and kept making edits to my pages, but noticed the problem was getting worse instead of better. I checked server status again; nothing. I thought: There has to be a problem somewhere. So I looked through my cPanel and found an icon that I thought might give me a clue: CPU Throttling.
What you see below on the left side of the red line is what I saw (I took the screenshot 15 hours after I started working the issue so I would have a clear before-and-after).
BlueHost uses a unique CPU throttling approach, not primarily to control CPU/RAM usage, but to control scripts which pound on the SQL database and make time-consuming queries. If the database gets pounded too hard, it becomes a major issue for everyone on the server. So they throttle access to the database for load spikes, and that keeps everyone happy. They say that a throttle of 500 sec/hour is acceptable, and you shouldn’t see any slowdown from it. Obviously my problem was way beyond that.
I was obviously having an issue with some script, and it needed to be fixed immediately. Since they make log files available to you for “Slow SQL queries”, I took a read through them. I saw here and there 1.3, 1.5, 1.8 seconds… not terrible. Then I saw the issues. I had SQL queries that were running 3, 4, 5, 6, even up to 8 seconds each. You know what? It wasn’t even this site. It was the feeds module I had added to another site.
So I weighed the benefit I was seeing to the site (which was zero) and went ahead and started purging the data and disabled the modules. This took a few hours (because of the already throttled connection state), and when I was done I let it idle for an hour and made sure I was no worse off than before I had started. It was nearly 3am, so off to bed I went.
I woke up this morning and immediately checked the CPU throttling chart. Not only was I under the 500sec/hr target, I was less than half of it.
The worse part of this is that I was almost never aware of the issue. It wasn’t until I stated making bulk edits that I noticed there was a problem.
This does happen to be a system that only BlueHost offers. My only request might be that I could have gotten alerted via email when the load spike shot up so I could have been aware of the issue rather than having to find it out myself. But in any case, I saw it, I took care of it, and all is well.
Have an experience with a script that negatively impacted your CMS or server platform? Please share it below…
When I got my, the first thing I looked for was a good case. It’s a shame to have a nice phone and tear it up from keys in the pocket, accidental drop, banging against a counter (which is how I cracked the camera lens on my HTC Touch Pro: I leaned up against the counter at Chuck-E-Cheese).
I initially had a cheap silicone case, but it quickly stretched and became a lint magnet. Not to mention the fact that it would stick to the inside of my pocket and not want to come out when my phone was ringing. Though cheap, silicone cases are junk, in my opinion.
I decided I was probably better getting some kind of hard case. The nice thing about hard cases is they feel more natural on your phone and they can take the abuse. I’m rough on my phone — it goes with me everywhere, even in the rain.
I heard some really nice things about Seidio cases, and checked them out. My friend Jeff beat me to the order, and I asked to take a look at his device with the case on it. It’s nice-looking.
Breaking this case was no easy task: I’ve dropped it on concrete, tile, wood floors, tossed in my work toolbag a few times (screwdrivers, pliers, etc), talked on it while doing a brake job (which is probably what took the finish off)… This case is tough. I’ve even demonstrated to a few people that you can take a key to it and not scratch it.
Ironically enough, I was out somewhere and dropped it on carpet. The case flew apart and the locking tabs broke. I guess it had finally had enough.
So now I’ll be ordering another, and I guess I have to be extra careful with it until the new case comes in.
Caveat: There is a small downside to [the black] case. I’ve found out through experience that the BlackBerry will stop charging the battery if it gets too hot. That’s actually a good thing, as if you try to charge a Li-ion battery thats too hot, you’ll actually degrade the battery. The case I bought — being black and having a soft finish, actually caused the phone to heat up if I left it in on the passenger seat of my car in the sun. Solution? I just put it in my center console.
Have an Innocase for your phone or considering it? Share your thoughts below…
Something I noticed immediately after installing the nvidia drivers in Ubuntu 10.04 was a low-resolution splash screen. This hasn’t bothered me too much in the past, but now that I’m using hard drive encryption it pushes the input box to the edge of the screen (and makes it ugly) as well as pushing the text above it off the screen. So I did some searching and happened about the following solution, which appears to have been tried by many users who report overwhelming success:
* uvesafb required v86d package to be installed. hwinfo package is required for the next step as well.
sudo apt-get install v86d hwinfo
* Find out the supported resolution by using hwinfo:
sudo hwinfo --framebuffer
Sample output :
02: None 00.0: 11001 VESA Framebuffer [Created at bios.464] ... Hardware Class: framebuffer Model: "(C) 1988-2005, ATI Technologies Inc. M92" Vendor: "(C) 1988-2005, ATI Technologies Inc. " Device: "M92" SubVendor: "ATI ATOMBIOS" ... Mode 0x0321: 640x480 (+2560), 24 bits Mode 0x0322: 800x600 (+3200), 24 bits Mode 0x0323: 1024x768 (+4096), 24 bits Mode 0x03ee: 1366x768 (+1408), 8 bits Mode 0x03ef: 1366x768 (+2752), 16 bits Mode 0x03f0: 1366x768 (+5504), 24 bits Config Status: cfg=new, avail=yes, need=no, active=unknown
* Edit /etc/default/grub to make sure we boot with uvesafb framebuffer. For the
mode_option parameter change to your native screen resolution you see from running the above comment (if not just set to
1024x768-24 which is safest. Oh, Netbook user – please exercise some common-sense here) Non relevant lines are omitted for clarity.
<span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;font-size:12px;line-height:18px;white-space:pre;">... </span><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;font-size:12px;line-height:18px;white-space:pre;">GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1366x768-24,mtrr=3,scroll=ywrap" </span>... GRUB_GFXMODE=1366x768 ...
* Edit /etc/initramfs-tools/modules to include uvesafb by adding the following line.
uvesafb mode_option=1366x768-24 mtrr=3 scroll=ywrap
* Force the use of framebuffer:
echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
(Note: What we’re doing here is creating the file
/etc/initramfs-tools/conf.d/splash with the line
FRAMEBUFFER=y. Feel free to use
echo FRAMEBUFFER=y > /etc/initramfs-tools/conf.d/splash if you are more comfortable.
tee is necessary when running as non-su. I wanted to know exactly what this command did in case I wanted to undo the changes.)
* Update and we are done
sudo update-grub2 sudo update-initramfs -u
My only change to this was to substitute the native resolution and color depth of my LCD panel as confirmed by
hwinfo, specifically 1440×900-24. Everything else remained the same.
I was very skiddish about trying this as I have an encrypted hard drive, and if plymouth went south on me I wouldn’t be able to unlock my drive and fix it (easily). I was very happy to see that everything worked. Kudos to all involved. UPDATE: If you have an LVM/LUKS encrypted hard drive, you’ll be prompted for your hard drive password at a text-only prompt, so there’s no worry of a non-bootable system (at least for this reason) if you mess up the above.
Two times recently I’ve had friends who have had data stolen from them physically; one had her house broken into and her laptop stolen, another had her external backup drive stolen.
It’s one thing to have a laptop or a hard drive stolen, but it’s much much worse to worry about the impact that the now-compromised data can have on your life — Stored passwords, confidential data, personal information, photos, the list goes on. It’s even possible that a thief could use the saved passwords and cookies saved on your computer to access your on-line accounts and do considerably more damage. On-line banking, email accounts, social-media accounts, etc.
Even if your laptop is damaged, it’s still possible for an attacker to take the hard drive out and hook it up to another computer to gain access to your information. Log-in passwords don’t protect against this if the OS is bypassed. Your data is completely accessible.
While it is possible to secure a large part of your data by encrypting your most private files, that still doesn’t cover areas like browser cookies, temp files, and the swap space. Data from secured areas can “leak” into those areas and still be viable for attackers. In addition, this requires effort, and I talked about this in my post about backups.
Hard drive passwords are one good tool, as they render the drive effectively useless to all but the most sophisticated attackers (read: all except police, government, and attackers with sophisticated tools). The hard drive is logically “locked” at the firmware level and cannot be unlocked without the correct password or some circumvention of this. Your data is still stored on the drive, but attempts to read the drive will fail. Most modern computers (especially laptops) and hard drives support hard drive passwords. This is a good tool, but if you’re at all concerned with the potential weaknesses of this, you might want something a little stronger.
Enter full-disk (or whole-disk) encryption. This is one of the strongest tools to protect against any time of attack against the hard drive. By storing the data on the drive in an encrypted form, it becomes next-to-impossible to get anything useful off the drive. Full-disk encryption typically uses the AES method, which is well-established to be secure.
There are several commercial solutions to full-disk encryption, but as a big supporter of free/open-source software, I’m only going to cover the free and cross-platform ones.
TrueCrypt (Windows, Mac, Linux) – This is an exceptional tool for encrypting both internal and external drives, and creating encrypted “containers” to store files in. Free and open-source, and from what I’ve seen, rock solid. I’ve used this under Windows to do full-disk encryption, and I still use it to keep my 1TB external hard drive encrypted. Setup is easy and doesn’t require you to reinstall the OS — encryption of your existing drive can be done on-the-fly and you won’t lose any data. (Though having a backup beforehand is always a good idea)
Ubuntu has a few options ingrained into the OS. Home directory encryption is a choice during installation, which protects your files when you’re not logged in. The encryption is very good, but there’s still the chance that file information will leak out into unencrypted areas of your drive. When you’re installing Ubuntu, and you’re at the part where you enter your chosen username and password, at the bottom of the screen you’ll see the option “Require my password to log in and decrypt my home directory.” That’s the option which enables home directory encryption.
The “alternate” installer CD gives a solution to this: Full-disk encryption using LVM/dmcrypt. Unfortunately, this option will require you to reinstall your OS as it requires the disk to be repartitioned as LVM and encrypted. Also, it’s a little harder to set up. Although the installer is guided (and some very good walkthroughs exist) there’s no fancy GUI. It’s also not easily reversible, but as far as I’m concerned, there’s no reason you’d want to. While installing using the alternate CD, choose “LVM with encryption” while you’re setting up partitions. It’s worth noting that this installation was markedly slower than a typical install (I think it took an hour-something) but considering the amount of disk I/O that was taking place, I’m really not surprised.
Performance versus an unencrypted drive in all cases is good — your system will take a performance hit but it wont be very noticeable except in cases of disk thrashing, or very heavy disk read/write activity. You will notice a little bit of a slowdown in system performance then, but it won’t be much.
Thoughts or opinions on this? Please share them!
I picked up a Brother HL-2170W wireless laser printer at OfficeMax a while back to replace my empty HP ink jet. For the price per page, laser is without a doubt the way to go.
I had done some searching while I was at the store because, as a Linux user, I’m big on cross-platform. (Obviously, or I’m not going to buy it.) I read a lot of mixed stories about this printer, but at the time Lucid (10.04) was coming out and I figured that a number of the issues would be addressed and I had a good chance of it working. Besides, it was a wireless printer so nearly any generic driver should work.
I brought it home, unpacked it, and set it up. Connecting the printer to the wireless AP was a breeze — simply connect the printer (via wire) to either the PC (via USB) or the router (via ethernet) and do the config using either the web interface (built into the printer) or the software. I had tossed the instructions immediately upon opening the box — this is one case where you’re probably going to want to refer to them. At least until that first test page comes out okay.
So I got the printer hooked up, on the wireless network, static IP set up, and off I go to install the drivers on the machines.
Ubuntu: Recognized immediately. Going to System > Administration > Printing and click Add brought up the add printer screen where the printer showed up after a few moments. Though the installer showed some lag, I attributed it to having to communicate with the printer during the setup.
Windows Vista: Installation of the drivers from the CD was grudgingly slow. It must have taken me the better part of half an hour start to finish.
Printer performance? I was immediately impressed. But my mind changed after a few days: This printer choked on graphics. A page of text would come out immediately, but any page with a graphic on it could take up to 20 minutes. Then for the sake of troubleshooting I tried it on the Windows machine. Came out in moments.
Something was definitely amiss. But I left it as it was for a while, until I finally got tired of waiting 20 minutes per page to print shipping labels for 15 boxes one day. So I put Windows 7 on my machine. Problem solved. (Note — the printer ships with a second drivers disc specifically for Windows 7.)
So now, a few months later, I am a Linux user once again and ran back into the same problem: The incredibly slow graphics printing. Only this time, determined to find a solution. I only had to look so far as this post. Citing a fault in the cups drivers for (at the least, this printer model), a solution was explained using a generic driver instead of the [presumably broken] cups driver:
1. Log on to the cups web interface: http://localhost:631/admin (for username and pw I used an account with sudo privileges).
2. Select “Add Printer”
3. From “Other Network Printers:” I selected: LPD/LPR Host or Printer
4. under “Connection” put in: socket://IP_of_the_printer:9100 (of course, substitute in the IP of your printer)
5. Name, description, location: fill those out as you wish.
6. Sharing: I did not check this box.
7. Make: Select Generic and click Continue
8. Model: Generic PCL 5e Printer Foomatic/hpijs-pcl5e (recommended)
(this model is the closest by name to what Johnny_vc told me to use. I figured mine is different because I’m using Lucid)
Nick (below) adds this: Make and Model: Brother HL-2170W Foomatic/hpijs-pcl5e (recommended)
If you find the Brother selection, try it and see if it works, otherwise the Generic as above is known to work.
9. Click “Add Printer” and you’re done.
Works for me too. After doing this, you can view and edit the properties of the printer via System > Administration > Printing. Printing speed is back to normal.
Also, I strongly recommend you have your printer assigned a static IP address, either on the printer itself or using DHCP address reservation.
UPDATE: I encourage users to try the instructions contained in the blockquote above first, if their printer does not appear or performance is bad. Make sure you know the LAN IP address of your printer or it won’t work. I just tested this with a stock 10.10 install and I was able to print without installing anything else.
Feedback and comments are welcome, as always.
I run this WordPress blog as well as a Drupal-powered forum site and one of the biggest challenges that any webmaster can have is controlling spam — both in comments and user sign-ups.
I used to rely heavily on captchas, and I’ve gone through several captcha and non-captcha systems to try to find the “ideal” solution: One that cut the spam down to nearly nothing as well as not putting too much of a burden on the legitimate users (as to possibly deter them from participating on the site).
Here’s what I’ve tried, and what I’ve learned in the process:
Pros: As a side effort, the service also aims to help digitize books by using the legitimate users to correctly identify one of the mangled words provided. Also has a feature called “reCAPTCHA Mail Hide” to hide email addresses behind a captcha to keep them from being harvested by web bots.
Cons: reCAPTCHA has one distinct weakness: at least one implementation has a weakness making the captcha worthless.. Additionally,
Pros: Aims to be unobtrusive. Does not present the user a captcha unless textual analysis cannot be performed or appears to the service to be a spam submission. Captchas are “cleaner” looking than other services (less visual distortion). Audio captchas.
Cons: Limitations on the free service, and does not scale well. Free service only allows 1,000 legitimate posts per day, then it’s 30 EUR/mo/site. (Around $50 USD). No service uptime guarantee with the free service.
Pros: Comes installed on all WordPress.COM blogs by default and needs no configuration. Powered by, and maintained by Automattic, the same team behind WordPress and Gravatar. Suspicious submissions are placed in a moderation queue for the administrator to manually approve, with the option to automatically expire (delete) them after 30 days or so. Easy setup via an API key.
Cons: Akismet weighs input the same across all Akismet-protected sites. This means that someone who submits a comment on an Akismet-protected blog that gets flagged as spam would get the same treatment on an Akismet-protected forum (and every other Akismet-protected site for that matter) until enough comments get marked as false positive for the system to re-learn the user is not a spammer. I had a user that got hit by this false-positive treatment the first day I implemented Akismet on another site and it became a hassle. When I enabled Akismet on this WordPress site, his comments were still getting flagged as spam. That’s a serious issue for me. (Akismet FAQ)
Pros: Defensio is a service similar to Akismet, but weighs content from each website (blog, forum, etc) separately to avoid mistakes. You register each web property you want protected and obtain an API key for each. Slow to learn at first, but avoids false-positive/negative and cross-property disasters like I mentioned above with Akismet. This service is a favorite of mine. Additionally offers profanity / file link protections, as well as customizable filters. (Link)
Cons: Slow to learn at first. Might require you to manually flag content until it learns. Currently free, though they mention.
Pros: Filters access at the http level, by blocking proxies, historically abusive IP addresses, suspicious user-agents, and malformed requests. Cuts down on bandwidth, spammers, users who are accessing site content through known proxies, etc. Conserves server bandwidth and resources, as pages are not served up at all when a block is performed. No training required.
Cons: It’s possible that a number of users whose ISPs force proxies may be blocked, but I have not seen evidence that this is happening on my sites.
So there you have it. Personally, I use a combination of Bad Behavior and Defensio on my sites, and I’ve seen a big drop in the amount of spam.
Have experience with one or more of the above? Please share it!
Having a kid myself, I know how frustrating it can be when a little one walks up to the computer and presses the power button while you’re in the middle of your work. This simple walkthrough will show you how to disable the shutdown signal on the power button press. NOTE: Your computer will still shut off if the power button is held for 4 seconds. This cannot be changed, but this walkthrough will restore a good deal of your sanity.
Click Start > Control Panel
Look for and select Power Options
On the left side, look for and select Choose what the power buttons do.
Locate Power Button and change the settings to your liking.
That’s it! Changes take effect immediately.