Checkout the O’Reilly Answers Social Network

Image2 I am typically not one to recommend a social network to my clients w/ the exception, of course, of the already established networks such as Facebook, Twitter, LinkedIn, Tumblr, etc.  My whole philosophy regarding social networking at this stage of the game is that if you want to build a community, build upon what’s already out there as much as possible (Facebook API, Twitter API) and don’t try to re-invent the wheel. 

However, I have always felt that strong, reputable Niche networks could exist externally if they were packaged correctly.  A good example of such a network that is currently in Beta right now is O’Reilly Answers.  O’Reilly has a good vision with this network, and of course they have some really positive things in their favor already such as Awesome Reputation, an Established Following, and a Trusted Name, what more could you ask for?

You can also look at the Network and tell that there were some clear objectives put into place while developing this solution.  They obviously wanted it to be user friendly, functional, and interactive.  There are basically three ways you can interact inside O’Reilly Answers:

Share Your Knowledge    

You can actually enter in blog posts and tag them according to your subject matter and other users can comment you on your posts.  This is one area that I think they could have done a little differently.  We all manage our own blogs externally, why would we want to post our content on their website as well and have 2 comment systems running at the same time to follow up w/ readers?  My thoughts on this part are that they could have put into place some sort of RSS option where you could aggregate your content from your blog and have your friends inside the network click out to read your posts.  Maybe I am not seeing the big picture on this, but as a workaround I posted about 3/4 of 2 blog posts into their network along w/ a link at the bottom to get to the remainder of my post on my blog.

Ask A Question

Since O’Reilly has been catering to the Technically Minded community for so long, you can rest assured that some pretty sharp folks are going to be hanging around in this community.  Well, let’s say you have a question about a project you are working on, you can post that question to the community, tag it, and before you know it some of the sharpest minds in the world are answering your question.  This is an area where I really see this network having value for a lot of us…

Answer a Question

Let’s say someone asks a question and you know the answer, you can provide them w/ your insight w/ ease.  I think that this networking model is going to speed up the “obstacle to solution process” once the network get’s off the ground.

———————————————-

Also, just a few notes regarding the Network as it is right now.  There are obviously some bugs, I had a couple of errors pop up on me when I was setting up my profile, this is to be expected w/ a new release like this.  Give them time, I am sure that O’Reilly will iron out all of the kinks very soon.  Here’s some basic information that was forwarded to me today from our Account Rep at O’Reilly…

We’re launching the beta of O’Reilly Answers, and I’m inviting you to be part of it. In brief, O’Reilly Answers is a community site for sharing knowledge, asking questions, and providing answers that brings together our customers, authors, editors, conference speakers, and Foo (Friends of O’Reilly).

Why Answers, and why now?
O’Reilly is at the center of an amazing exchange of knowledge sharing and idea generation. We’ve created the usual means of facilitating communication between customers, O’Reilly folks, and the outside experts we call "alpha geeks" who contribute to O’Reilly books, conferences, and websites. We can connect through reader reviews, errata submissions, book forums, blog comments, Get Satisfaction, our customer service department, and more. But too much of this conversation is siloed, and not enough is public (e.g., discussions on our internal mailing list for editors, or personal responses to customer questions). O’Reilly Answers will be the place where much of that communication happens from this point forward.

Why participate?
The lofty reason: Like O’Reilly, you want to "change the world by spreading the knowledge of innovators." That’s our mission, and we’ve been fortunate enough to build a community of passionate, committed people who love to learn and share their knowledge as they work towards a better world for us all.

The "nice, but what’s in it for me" reasons: reputation, recognition, and rewards.

Get Recognized: "Find interesting people" is a core activity at O’Reilly, and an important component of our success. We see Answers as an important way to discover and connect with our next authors, online instructors, videographers, and speakers.

Build Your Reputation: You’ve learned a lot, why not get credit for all that knowledge? As your submissions to Answers are voted up, your personal reputation on the site increases. At launch, your reputation will be based solely on your participation in O’Reilly Answers. Soon, we’re expanding across oreilly.com, so the book errata and book reviews you’ve submitted, books you’ve registered, and conferences you’ve attended, will add reputation points. You’ll also earn badges to mark accomplishments and milestones.

Earn Rewards: Glory is great, but discounts and deals are nice, too. We want to reward your contributions to the O’Reilly community. Shortly we’ll have a point-based system in place that you can redeem for books, training, courses, and conferences. Details soon, but in the meantime, any actions you take now will count towards your total points.

This is just v.1: The best part of any project on the web is watching it take on a life of its own. With that in mind, we’re looking forward to *your* suggestions about where O’Reilly Answers should go, what features should be added, and what benefits and rewards we can offer all of you.

I’d like to acknowledge the projects that have proceeded Answers and inspired us, such as SitePoint Forums (we distribute their books), StackOverflow, Yahoo! Answers, Knol, and many others. They’re great resources, and we think the O’Reilly community can create a useful site that’s, well, a different kind of animal.

One last thing: O’Reilly Answers is in beta and you may encounter bugs. We’re still working on many improvements to the site, such as feeds for each tag, but would love to hear your suggestions for features and improvements. Please send any suggestions/questions/bug reports to answers@oreilly.com.

Until next time–
Marsee Henon

Also, if you should signup, be sure to add me as a friend, http://people.oreilly.com/cotton

System Administrator Appreciation Day

At Pleth, we will be celebrating System Administrator Appreciation Day!  What an awesome idea. I know that this holiday is probably not on those calendars you get for Christmas from your family each year, but it’s a pretty cool thing to add to it.  Friday, July 31, is system administrator day across the country, it’s celebrated on the last Thursday in July each year.  If you have a system administrator be sure to let them know how much you appreciate what they do behind the scenes.  And if you have never had a conversation with your system administrator when you weren’t frantic about something, you should take it even a step further and take them to lunch or something because he / she probably thinks you are a turd… 

I feel blessed because I have worked with a lot of system administrators over the years and can honestly say that Matt Critcher is quite possibly one of the best ones out there, and I have the pleasure of working alongside him putting out fires.  Of course it’s usually him spraying the water and me pointing at the fire with a dazed look in my eye, and also sometimes denying any responsibility for the fire whatsoever!

So What is a System Administrator??

A sysadmin unpacked the server for this website from its box, installed an operating system, patched it for security, made sure the power and air conditioning was working in the server room, monitored it for stability, set up the software, and kept backups in case anything went wrong. All to serve this webpage.

A sysadmin installed the routers, laid the cables, configured the networks, set up the firewalls, and watched and guided the traffic for each hop of the network that runs over copper, fiber optic glass, and even the air itself to bring the Internet to your computer. All to make sure the webpage found its way from the server to your computer.

A sysadmin makes sure your network connection is safe, secure, open, and working. A sysadmin makes sure your computer is working in a healthy way on a healthy network. A sysadmin takes backups to guard against disaster both human and otherwise, holds the gates against security threats and crackers, and keeps the printers going no matter how many copies of the tax code someone from Accounting prints out.

A sysadmin worries about spam, viruses, spyware, but also power outages, fires and floods. When the email server goes down at 2 AM on a Sunday, your sysadmin is paged, wakes up, and goes to work. A sysadmin is a professional, who plans, worries, hacks, fixes, pushes, advocates, protects and creates good computer networks, to get you your data, to help you do work — to bring the potential of computing ever closer to reality.

So if you can read this, thank your sysadmin — and know he or she is only one of dozens or possibly hundreds whose work brings you the email from your aunt on the West Coast, the instant message from your son at college, the free phone call from the friend in Australia, and this webpage.

System Administrator Appreciation Day

Critch on Drupal Security / PCI Compliance

drupal-logo Resident Server Administrator and all around Linux Guru, Matt Critcher, recently posted an entry on his blog about Drupal Security and PCI compliance.  Matt has been running Drupal on his site for a while now and it seems to be working out well for him.  I always look to Matt for security issues because he has an enormous knowledgebase between his ears when it comes to that sort of thing.

Making your website secure is one thing, but going the extra mile and making it PCI compliant is another thing.  In the past I have recommended PCI Compliance only to our clients that do e-commerce, or gather sensitive client data, but it’s rapidly becoming a buzzword in the industry.  I first learned about it in 2006 at a conference we attended in Las Vegas.

My business partners and I even partnered with HackerSafe, now owned by Mcafee, to sell PCI compliance solutions and certification to our clients back in 2006.  If you are interested in learning more about PCI compliance or securing your website, be sure to give us a shout.

This site is running in a CMS called Drupal. It, like most CMS systems, allows users to easily create, edit, and delete content and manage many features of a website. But, like most, it is not without a few security flaws. Me, being a geek, and having more than a passing interest in security, decided to try to make this site a little more secure, and possibly even PCI Compliant.

It is possible to make Drupal PCI Compliant, but it takes a little work. Now, for the record I don’t have nor do I collect data that falls under this standard, but some people do, and some run Drupal. There’s not much information about the subject on the net, so I figure it’s worth writing about. But be warned that there is a trade-off. By default, Drupal is set up to be more convenient for its users. Putting these modifications in place will make you login EVERY time you close your browser window. To me, that’s not a problem. I actually prefer that to be the case. Others, well, you may not like it as much. YMMV.

First thing that you need to do is to force Drupal to use HTTPS for login. There are tutorials all over the net on how to install mod_ssl or Apache-SSL and configure it for HTTPS traffic, which is a pre-requisite for this. There is currently no drupal module that does just this, but you can get around it using .htaccess. In the root of your website, put the following somewhere in the .htaccess file

You can read the rest of Matt’s post here: Making Drupal More Secure | www.mcritch.com

Critch on VMware, Apache, PHP/MySQL

I am happy (bordering on giddy) that our server engineer / administrator Matt Critcher is now blogging, dude is probably one of the sharpest guys I have ever met and he is an all around cool guy to hang with too, but beware of the fancy cheese he brings to dinner parties because you could find yourself in the emergency room on New Years Eve thanks to a long-standing penicillin allergy.

As some of you might know we made the transition to Virtualization a while back and have been extremely happy with the versatility it has brought us with our managed hosting and vps products that it has allowed us to bring to our clients, but with growth there can also be growing pains, it is for this reason that I am so glad we have Matt in our corner, dude knows his stuff and he can get to the bottom of an issue better than anyone I have ever worked with.

Lately we have been transitioning to VMware and have had some issues w/ websites that are slow to respond via browsers, but yet they still ping out okay.  It’s been a weird week or so, here’s a post that Matt put together the other night about the issues, I thought maybe someone else could benefit from his findings down the road:

I posted a few weeks back that Pleth had transitioned some of their equipment over to VMware Server and for the most part it’s been a very smooth process. But, as of late we’ve ran into some slowdowns, especially on the VPS with Plesk (which happens to host several of our websites). After doing a bunch of research and spending many a late hour digging through tons of mpstat and other sysutils data I think I found the culprit(s).

VMware Server, unlike the ESX/ESXi products, does not run in a Type 1 Hypervisor. This means that the underlying OS (in our case Red Hat Enterprise Linuxwas tuned out of the box for a general all-purpose server. This configuration isn’t always optimal for a Type 2 Hypervisor. It works just fine as long as things are "normal," but as the new VMware server got a larger load (in terms of I/O and CPU) performance went downhill.

One of the major problems has to do with how VMware Server uses disk-backed memory files (*.vmem). There is great debate on the web whether or not you should disable them, but one thing that is clear — when a site is busy, the file will be updated with memory information to reflect the changing memory of the VPS in question. This is where the problem lies — servers with unga-bunga hardware RAID solutions with 15K RPM disks and tons of spindles have a less of a problem with it but moderate quad-core Xeon and SAS disks in a RAID1 configuration like we and most other webhosts our size have it is a bigger issue. All those writes causes a wait-state in the CPU and therefore a backlog of transactions to be processed causing said server slowdown.

One way to deal with this is to modify the /etc/sysctl.conf to add (or modify) the following parameters:

vm.dirty_background_ratio
vm.dirty_ratio

I set my vm.dirty_background_ratio = 2 and vm.dirty_ratio = 85

Basically what these 2 parameters do is dictate the percentage of memory that can be "dirty" before it begins to flush (background_ratio) and the percentage of memory that can be "dirty" before a forced flush begins. When these files are updated, we can either have them done in the background (hence the low number for background ratio) with pdflush which allows other processes to continue to run, or we can have them queued up and wait for a synchronous (forced) write causing the iowait states (hence the large number for dirty_ratio). The big gap between background writes and synchronous is to try to keep the background writes coming consistently and avoid the synchronous writes as much as possible. You’ll have to play around with these figures to see what works best for you. See this page about half-way down for a little more in-depth explanation of these two parameters.

I also made some configuration changes to PHP and Apache to try to get a tad bit more performance out of each of them. I had written out a whole list of stuff that I’d modified to post here, and as I was looking for websites to help explain the modifications, I stumbled upon this website from IBM that lists pretty much every change that I made to Apache and PHP.

If you want to tune your MySQL database, this website is invaluable. It explains almost every parameter that you can possibly adjust and how to adjust them. One that it doesn’t really get into though is

innodb_flush_log_at_trx_commit

Setting this to "2" will force the system to write out any changes to the transaction log when the commit occurs but will only cause a flush of this data from memory to disk once every second (which gets stuck in the scheduler and is handled in the background by pdflush). The default setting of "1" will write out to file and flush this data from memory every time a commit happens. On really busy servers with InnoDB tables, this can cause slowdowns if your server really isn’t designed to handle a heavy DB load (most webservers aren’t). The drawback to this is that if the system crashes, you could lose 1 second of writes. Depending on what you are doing, this might be acceptable. Setting this to 0 will cause the write every second, but if the server crashes you might lose a ton of data because nothing is done at transaction commit. Scary, but fast (to me, scary outweighs speed in this case).

None of these changes should be taken without first thinking about what might happen. We have a test box in our office that basically mirrors our production server that I could test on beforehand. The Apache and PHP config changes are easy — no server reboots required, and you’ll know almost immediately if you mess them up. If you modify sysctl.conf incorrectly, the server might not boot. Better test a few things out (a VMware VM is a perfect testbed for these settings) BEFORE you have downtime.

VMware, Apache, MySQL, and PHP Performance Tuning | www.mcritch.com

Using ModRewrite

Let’s say you have just re-designed a website and during the process you were forced to change some filenames in the new site from what they were in the existing website.  For example, about.htm is now called about.php in the new site structure.  Normally you would be forced to endure having a dead link in Google until your new filename get’s crawled or updated from your sitemap.xml.  This can sometimes take weeks if not longer.

A quick way around this is to use the ModReWrite Engine to “re-route” filenames to new filenames.  This also comes in handy if you have a lot of external websites or clients that link back to specific pages in your website.  To setup ModRewrite Engine, simply create or edit your .htaccess file to have the following sample code: (of course change this to match your filenames, etc.)

 

   1:  Options +FollowSymLinks
   2:  RewriteEngine On
   3:  RewriteRule ^index.html http://www.yourwebsite.com/index.php
   4:  RewriteRule ^directory_name/index.html http://www.yourwebsite.com/directory_name/index.php

Apache 301 Redirect

I could have sworn I had posted some basic Apache Functions and Mod Rewrite’s on here a long time ago but today when I actually drew a blank and couldn’t remember how to do a 301 they were nowhere to be found so I am going to create a new category on here for Apache and re-post a few that I use frequently so that I can refer back to them.

This is a simple 301 redirect.  Let’s say you build a new website inside a new directory such as <cms> and you are now ready to go live w/ the website but you don’t want to lose your SEO benefit or be penalized for restructuring your site, you can use a 301 redirect to accomplish this.  It’s very simple, see sample code below:

   1:  Redirect 301 /index.htm http://www.yourwebsite.com/directory/filename.htm

Book Review: Run Your Own Webserver

My partner Stephen ordered us all a copy of this book shortly after we started Pleth.  It took me a while to finally get into it because my first thought was that it was going to be a light read but it really wasn’t, parts of it were filled with some really good info.  There is also a CD-Rom with the book that contains the Fedora build and also a handy wall chart.  if you are thinking about getting your won web server, this might be a good read for you, it sits on the bookshelf behind my desk to this day and I refer back to it from time to time.  I have even loaned it out to folks a few times.

Run Your Own Web Server Using Linux & Apache

ISBN: 0975240226
ISBN-13: 9780975240229

Book Review: Maximum Apache Security

About a year or so ago we were working pretty hard with our server admin to harden our servers against potential threats such as remote shell executions, bots, and xss vulnerabilities.  It was a frustrating time for me because there were a lot of elements that I couldn’t get my mind around, fortunately our server admin Matt is a hoss when it comes to Apache and that helped a whole lot.  To get myself up to speed on Apache a lot better I picked up this book and really learned a lot from it.  I recommend it to anyone who is thinking of getting their own server or who is tasked with managing a high end enterprise web server that runs apache.  It’s also a great reference tool that I sometimes refer back to from time to time.

Maximum Apache Security

ASIN: B000C4SQWS

Example .htaccess Apache Redirect

From time to time we will install a website and want it to redirect to a directory or file inside of it’s root directory besides the default index.htm, index.html, or index.php file.  Here’s an example of how this can be achieved using .htaccess with Apache.

redirect /index.html http://www.yourwebsite.com/sitefile.html

As you can see, when a browser pulls this website up with the .htaccess file sitting in it’s root directory it will then transport the visitor to http://www.yourwebsite.com/sitefile.html instead.  Pretty cool trick for doing a quick redirection that won’t hurt your SEO.

Using mod_rewrite in Apache

I created a Real Estate solution for a client a while back in php and it has worked well for them but once the site launched we noticed that it wasn’t getting crawled by the search engines as well as we would have liked for it to so I did a little research.  I knew that typically data called in from a database dynamically presented a problem when it came to getting the best SEO performance. 

I asked a few developers this past year at HostingCon about this and they suggested I look into Mod Rewrite in apache and see if that wouldn’t help out.  I checked it out and so far the results have been phenomenal for the client.  Here’s what I did in case any of you run into a smilar situation.  I first created an .htaccess file to redirect to a “home page”, in this case it’s called index2.php.  Next I did a rewrite for the dynamically generated pages.  The .htaccess file looks like this:

Options +FollowSymLinksRewriteEngine OnRewriteRule ^index2.php  prime-listings/index_view.php?editid1=1RewriteRule ^prime-listings/lakefront_homes.php  prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=Lakefront+Homes&SearchOption=Equals&SearchField=typeRewriteRule ^prime-listings/lakefront_lots.php  prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=Lakefront+Lots&SearchOption=Equals&SearchField=typeRewriteRule ^prime-listings/lakeview_homes.php  prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=Lakeview+Homes&SearchOption=Equals&SearchField=typeRewriteRule ^prime-listings/lakeview_lots.php  prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=Lakeview+Lots&SearchOption=Equals&SearchField=typeRewriteRule ^prime-listings/river_properties.php  prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=River&SearchOption=Equals&SearchField=typeRewriteRule ^prime-listings/residential_properties.php  prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=Residential&SearchOption=Equals&SearchField=typeRewriteRule ^prime-listings/residential_lots.php  prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=Residential+Lots&SearchOption=Equals&SearchField=RewriteRule ^prime-listings/commercial_properties.php  prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=Commercial&SearchOption=Equals&SearchField=typeRewriteRule ^prime-listings/farm_land.php  prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=acreage&SearchOption=Contains&SearchField=  

So now for example, instead of using http://www.greersferryrealestatecenter.com/prime-listings/prime_listings_list.php?a=search&value=1&SearchFor=Residential&SearchOption=Equals&SearchField=type as a link, I just use this: http://www.greersferryrealestatecenter.com/prime-listings/residential_properties.php. This is apparently more favorable to the search engines.