<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>John Schultz</title>
	<atom:link href="http://johnschultz.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://johnschultz.net</link>
	<description>In[site] to an online world</description>
	<lastBuildDate>Sat, 21 Apr 2012 17:00:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>The Digital Texas Tea (IPv4)</title>
		<link>http://johnschultz.net/?p=161</link>
		<comments>http://johnschultz.net/?p=161#comments</comments>
		<pubDate>Fri, 11 Feb 2011 03:34:13 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[ipv4]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=161</guid>
		<description><![CDATA[On February 3rd of this year, the <a href="http://iana.org" target="_blank"Internet Assigned Numbers Authority (IANA)</a> who according to their website "is the body responsible for coordinating some of the key elements that keep the Internet running smoothly," assigned the last 5 remaining blocks of IPv4 addresses to the five Regional Internet Registries.]]></description>
			<content:encoded><![CDATA[<p>On February 3rd of this year, the <a href="http://iana.org" target="_blank">Internet Assigned Numbers Authority (IANA)</a> who according to their website &#8220;is the body responsible for coordinating some of the key elements that keep the Internet running smoothly,&#8221; assigned the last 5 remaining blocks of IPv4 addresses to the five Regional Internet Registries. One of the five, the <a href="http://arin.org" target="_blank">American Registry for Internet Numbers (ARIN)</a> assures us that they still have a pool of available addresses and will continue to assign those addresses in accordance with documented policy.  To help put the folks who get all edgy at rest they are publishing daily updates on their website linked above.  All that being said I&#8217;ve still seen quite a bit of hype about the rapidly depleting quantity of available IPv4 addresses so I thought I&#8217;d take a moment to address the issues at hand.<br />
<span id="more-161"></span><br />
Lets start with what exactly is going on in the simplest terms.  Way back when, in the early 80&#8242;s the good folks who were putting together the internet developed an addressing system that allowed every computer on a network to reference every other computer using a unique address much like a street address would uniquely identify your home.  Using four sets of digits between 0 and 255 (the maximum allowed by using 32 bits per digit) separated by decimal points they were able to create a massive amount of unique addresses.  These good folks decided that certain address spaces were going to be reserved such as 127.0.0.1, 0.0.0.0, and 255.255.255.255 so after all was said and done there were roughly 3706.65 million usable addresses.</p>
<p>Unfortunately the good internet folks couldn&#8217;t have predicted the number of devices that would use IPv4 address space such as mobile devices, tv&#8217;s, and even some web enabled home appliances.  When it was realized that the global demand for web access would far exceed the expectations of it&#8217;s creators certain measures were put in place to slow down the eventual exhaustion of the available addresses.  Measures such as private networks reusing address spaces such as 192.168.1.255 then connecting several devices to the web with network address translation (NAT) basically using one address like a buildings street address and several apartments inside subdivided by apartment number.  Sadly these efforts weren&#8217;t enough and with an ever increasing number of web enabled devices a new addressing system was developed known as IPv6 (version 6 vs the previous version 4; who knows(cares) what happened with versions 1, 2, 3, &amp; 5).  The problem with IPv6 is that because it uses a completely different addressing system it is not cross compatible with IPv4 which means everyone must adopt the new system for it to be successful.</p>
<p>IPv6 has been around for years and while most of the hardware is physically capable of supporting the traffic and a large amount of the software is capable of supporting it the global adoption of the protocol just hasn&#8217;t happened.  Most business majors such as myself would blame the overall cost of making the switch.  Big businesses are afraid of switching to a newer address system because it means potential clients may not be able to reach them.  Oddly enough this isn&#8217;t true because most computer systems developed in the last few years can support both IPv4 and IPv6 simultaneously.  Of course setting this all up and installing new compatible routers and software takes time and money that most companies might consider a waste because what they have is working for them now.</p>
<p>This is all good in theory, oddly enough I watched a great case study as <a href="http://iastate.edu" target="_blank">Iowa State University</a> started implementing IPv6 throughout campus and there were plenty of issues.  While on campus I spent most of my time in three buildings accessing computer resources physically and remotely between those buildings.  While working on my laptop in an IPv4 building I could access all of the resources in that building and the other two; if I moved to either one of the other two IPv6 enabled buildings (still had IPv4 access) while in theory my system should have worked I was occasionally unable to reach certain systems that were only using IPv4.  Why did this happen? For a few reasons, my operating system was configured in such a way that it preferred IPv6 communication over IPv4 so if it was on an IPv6 enabled network it broadcast its requests to the IPv6 network instead of the IPv4 network if no response was received it would fail over to IPv4 and hopefully find the desired resource.  Certain router configurations prevented this failover process from happening so unless I disabled IPv6 on my machine I could not access IPv4 resources.  This in a nutshell is what&#8217;s holding the world back from IPv6 (in my opinion).</p>
<p>Another (less likely) consideration goes right along with the title of this post, it&#8217;s the basic law of supply and demand.  What happens when a finite resource such as oil or IPv4 addresses has an increasingly large demand and an ever shrinking supply.  The price goes up.  Registries can charge more for the last remaining blocks of addresses and as that filters down the pipes hosts can eventually charge more per year for every IP address they assign.  If the powers that be are careful the can do this until it is no longer feasible then switch over to IPv6 and continue to sell IPv6 address space off at an inflated price.  But that&#8217;s all just food for thought.</p>
<p>Oddly enough in all of this hype I came across more than a few posts that stated that after switching to IPv6 we would have more than enough addresses, <a href="http://www.focus.com/images/view/49504/" target="_blank">Focus</a> even going so far as to call it &#8220;an inexhaustible amount of IP addresses.&#8221;  Who ever said history is doomed to repeat itself seems to be spot on.  We cannot assume that this is a permanent solution and while it is a good solution for the time being, increasing the volume of available addresses dramatically, we will eventually run out again so we need to be thinking about another stop gap or maybe even a solution.</p>
<p>So what does this mean for us right now at this very moment in time?  As individuals we should be conscious of our IP address utilization.  Use NAT&#8217;ing when ever practicable and avoid un-necessarily using public IP address space.  System admins should do the same; use virtual hosts when possible to avoid using multiple addresses on individual servers.  Most important of all for system admins, make sure all of your network resources are IPv6 compatible and configured properly to use IPv6; eventually the switch is going to happen and it&#8217;s not going to happen seamlessly unless everyone gets onboard, starting with the hosts.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=161</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All or… Something!</title>
		<link>http://johnschultz.net/?p=158</link>
		<comments>http://johnschultz.net/?p=158#comments</comments>
		<pubDate>Thu, 06 Jan 2011 21:55:14 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=158</guid>
		<description><![CDATA[I know I didn’t cover every possible angle of virtualization but hopefully I got you thinking...]]></description>
			<content:encoded><![CDATA[<p>In the past few years I’ve been playing with and occasionally preaching virtualization but is it really worth it.  Companies like <a href="http://vmware.com" target="_blank">VMWare</a> would have you believe so, I get the feeling they stand to profit from your decision though.  In my personal opinion it’s a mixed bag.  There are several reasons to virtualize and there are several reasons not to.  In this post I will explore some of the benefits and shortcomings of virtualization.<br />
<span id="more-158"></span><br />
It all comes down to your application needs.  For instance a home user with a Mac or Linux box might consider using VMWare or some other product such as <a href="http://virtualbox.org" target="_blank">Oracle (Sun) Virtual Box</a> to run a Windows environment.  Even this solution presents certain issues that may be avoided using a dual boot system.  In this situation it all comes down to what your performance and application requirements are.  If you only need to run another virtual machine for a single application that doesn’t require large amounts of RAM, Video Memory, or CPU time such as the Windows Server Administration Tool Pack or Microsoft Excel with VBA Support (not available in the Mac version of Excel) then a Virtual Machine might be perfect for you.  What if you’re running something with a bit more of a kick though; what if you’re running that new computer game that’s only available on PC?  The virtual machine is limited by the hypervisor, other applications, the host OS, and lastly the physical machine.  With each limitation comes another degradation of performance.  You can offset this by getting yourself an incredibly powerful host machine with plenty of resources to spare, I’m sure the good folks at <a href="http://newegg.com" target="_blank">NewEgg.com</a> would be happy to help, but why not just dual boot your machine.  Boot-loaders like GRUB and Boot Camp make it easy to select your OS at startup and even define a default OS that boots unless there is some for of user interaction.  You get all the functionality of the physical hardware available to every operating system on the machine and all at the cost of a little bit of HD space that would have been consumed by the VM image anyways.  The downside, you have to restart every time you want to switch systems, which can make multitasking difficult.</p>
<p>Lets take a look at something a bit more corporate though.  Now we’re running applications that require high quality of service, at the lowest possible cost, with high security.  We’ll start by focusing on quality of service as it branches off into the other areas of interest.  QoS is composed of several parts, application availability, disaster recovery, and user experience.  Virtual environments allow several images to run on a single piece of hardware.  From the availability standpoint this is no different from individual machines running on their own hardware.  The benefits here are in the apparent cost savings.  First and foremost you’re creating a smaller physical footprint in your data center.  Space costs money and the smaller amount of space used the better off you are.  You’re also using a smaller amount of power; the single physical machine is being utilized at a higher capacity so your power consumption per CPU cycle is lower.  And less power means less heat production, fewer physical machines to cool means a lower cost in environmental controls.   The question that pops up in my mind is simple; the application with the biggest footprint in most setups is going to be the OS, so why duplicate it so many times?  Sure, sure you’re using your CPU more efficiently by running it at a higher percentage of it’s capacity but you’re going to need more memory and CPU power to support the multiple OS’s you may be running, especially if they have a larger footprint like Windows.  Why can’t we run all of our applications on a single OS, without the VMs?</p>
<p>Portability and disaster recovery are a bit of an issue when answering this question.  By having all of your systems running in VM’s they can easily be migrated from physical host to physical host, copies can be made if the demand increases, and in the event of a physical host failure they can be instantly transferred to another physical host that may or may not be running on the same hardware.  As long as proper backups are made of the VM images this isn’t an issue.  You also have to consider specific application needs, some software packages only run within a Windows environment like Share Point while some system administrators would much rather (maybe even need to) run their web services on a LAMP stack.  This takes us back to the cost issue (two physical machines vs. one and all the issues that go with it) and it’s not necessarily a clear-cut answer.  But where does security come into all of this?</p>
<p>Well let’s say in a perfect world that every application we needed to run could be run in a single OS environment.  Now my choice is, do I set up several virtual machines running the same OS with different applications to meet all my needs or do I run one host OS with all of the applications running on it.  What happens if one of those applications becomes compromised in a single OS system?  Assuming the compromise is something that wouldn’t normally affect the other applications (such as a password leak) then we may have compromised our entire system by putting all of our eggs into one basket (sorry, applications into one OS environment; I tried to get creative).  If properly configured, system administrators can jail their machines to a certain point but if the host operating system fails for any reason all of the applications fail.</p>
<p>So far I seem to be leaning a bit more towards the concept of virtualization but here’s where things really start to get sticky.  Let’s talk a bit about application performance.  The overall user experience is what really led me to write this post; while I was working on a server based Java application that I had set up in it’s own VM on one of my ESXi servers I noticed that even tho I was running the VM well above it’s necessary resource allocations the Java application was still eating through resources and crashing on user connections.  In a production environment this isn’t a good thing (no worries it wasn&#8217;t production, not the point though).  I set up a physical system with all of the same application settings to see what it was that would make this application run in a way that would allow for a reasonable user experience and I found that the Java application was using over 50% of 4 CPU’s and a staggering amount of memory when running on the physical host.  While this told me that the application may be an issue running in any large scale deployment it also told me that maybe virtualization wasn’t going to work for this specific configuration.  Putting this on a virtual machine would require so much CPU time that I wouldn’t be able to run any other VM reliably on that host.  This to me would be a huge waste of resources.</p>
<p>In the end I’d have to say whatever you do really depends on your applications specific needs.  I know I didn’t cover every possible angle of virtualization but hopefully I got you thinking; is virtualization necessary or is it more like Pogs in the 4th grade?  Personally I would look into the <a href="http://www.ubuntu.com/cloud/private" target="_blank">Ubuntu Enterprise Cloud</a> (<a href="http://aws.amazon.com/ec2/" target="_blank">Amazon EC2</a> did!), they take virtualization to a whole new level allowing shared resources reducing the amount of waste across any single machine.  Virtual environments are great for testing purposes, if you’re just playing around, like most of what I do, go for it; production environments really should consider how virtualization may impact their QoS.  If you&#8217;re interested VMWare came up with this nifty little page called why virtualize; they talk about some of the issues above and a few others, just remember, they&#8217;re trying to sell you something: <a href="http://www.vmware.com/virtualization/why-virtualize.html" target="_blank">http://www.vmware.com/virtualization/why-virtualize.html</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=158</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Leap of Faith</title>
		<link>http://johnschultz.net/?p=155</link>
		<comments>http://johnschultz.net/?p=155#comments</comments>
		<pubDate>Fri, 24 Dec 2010 19:11:54 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=155</guid>
		<description><![CDATA[Believe it or not the entire concept of the Internet is built on trust, certain factors help build that trust, but every time you surf the web you’re taking a huge leap of faith.]]></description>
			<content:encoded><![CDATA[<p>Believe it or not the entire concept of the Internet is built on trust, certain factors help build that trust, but every time you surf the web you’re taking a huge leap of faith.  Lets focus on the <a href="http://en.wikipedia.org/wiki/Domain_Name_System">Domain Name System (DNS)</a>, this seemingly simple concept is the key to simple human interaction with the web.  Without DNS the web would work quite a bit like the telephone, dial a number to get to the site you want.  <a href="http://en.wikipedia.org/">http://en.wikipedia.org/</a> might become http://208.80.152.2:80/ where IP addresses work like phone numbers and ports work more like extensions connecting you to a specific website on the server.<br />
<span id="more-155"></span><br />
I once described DNS, in a rather condescending manner, in terms of a squirrel trying to find a specific nut; keep in mind I was really trying to dumb the concept down for someone who really should have already understood it.  The idea was that each part of this magical tree called the internet had a road map on it that acted like a DNS server.  As the squirrel navigated his way up the tree he stopped at each part first the trunk and asked where to look to find this nut.  The trunk may not have known anything about nuts because it spent all its time dealing with branches but he was able to ask a trusted branch who asked another trusted branch who eventually found a branch with the nut the squirrel was looking for and all in under a second returned directions for the long journey up the tree.</p>
<p>When you think about it though DNS is an amazing system, one of the worlds largest if not the worlds largest distributed fault tolerant databases.  When a domain is registered the registrar takes the name servers information and informs the top-level domain name servers, specifically <a href="http://www.icann.org/">ICANN</a>, that it is now responsible for that domain.  When another user, with a different set of name servers queries that domain name the query is passed up the tree until it reaches a server within it’s tree that has the answer cached or it get’s to ICANN who passes the query back down to the responsible registrar and then to the domain’s own name servers.  Once the data has been passed through this string of servers it is cached and used without having to make another query to the originating servers until a specified amount of time has elapsed.</p>
<p>The best part about it is that anyone can set up their own domain’s name servers, they simply set up their records, tell their server where to look if it doesn’t know the answer, and tell their registrar the IP address of their server.  They can set their client machines up to query their own name server and it will function, passing queries that it doesn’t own or hasn’t cached an answer for up to the next level and responding to queries about it’s own domain from above.</p>
<p>This process is where the issue of trust comes in, what if one of those servers along the way returned an answer without passing the query up the tree?  Your system would trust that that name server was functioning correctly and returned the correct results.   You could type in johnschultz.net which should return an A record pointing to 72.47.228.212 but instead be sent to some other server with a fake version of this site.  What if it was something more important like a bank’s website or an ecommerce site?</p>
<p>Companies like <a href="http://www.google.com/">Google</a> have opened up publically accessible name servers, 8.8.8.8 and 8.8.4.4 that can be trusted about as much as the company that’s hosting them can be.  Be sure that you not only trust the company that’s handling the query but the company that they are passing the query off to when they don’t have the answer.  In the end though it’s all just a leap of faith and so far it&#8217;s worked out just fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=155</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simply Secure</title>
		<link>http://johnschultz.net/?p=149</link>
		<comments>http://johnschultz.net/?p=149#comments</comments>
		<pubDate>Sat, 13 Nov 2010 20:18:56 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=149</guid>
		<description><![CDATA[This is by no means a complete set of my thoughts on the issues of server security rather it is intended as a means to get people thinking about what can be changed in order to improve the quality of service they provide.]]></description>
			<content:encoded><![CDATA[<p>This is by no means a complete set of my thoughts on the issues of server security rather it is intended as a means to get people thinking about what can be changed in order to improve the quality of service they provide.  With the wires cut and the world becoming more and more dependent upon constant connection there are of course people out there who would take advantage of all that valuable information floating out there on the air waves.  But are average users the only ones taking unnecessary risks?<br />
<span id="more-149"></span><br />
A few years back after a Cyber Defense competition at <a href="http://www.iastate.edu/" target="_blank">Iowa State University</a> I found myself in a discussion about the reality of a given scenario.  The question I kept asking was, &#8220;would any web developer in there right mind leave a site with such gaping security?&#8221;  The answer was simply yes, they have been doing it for years.  When you get right down to it web developers are just not security minded individuals, they are focused on the site, how can they get it to do what they want.  When confronted these developers would hide behind the typical <a href="http://apple.com" target="_blank">Apple</a> excuse and would spout off something like &#8220;it&#8217;s all about the user experience.&#8221; When you get right down to it though how is the user experience going to be after their email address have been compromised or worse.</p>
<p>So what are some seemingly simple things that are constantly overlooked?  For starters <a href="http://en.wikipedia.org/wiki/File_Transfer_Protocol" target="_blank">FTP</a>, it&#8217;s a protocol that has been around for almost as long as computer networking, at best it transmits in clear text all data between client and server.  The worst part is most people don&#8217;t even have FTP properly configured leaving large port ranges open on their servers and allowing executable scripts to be placed in and run from anonymous directories.  The alternative sadly is incredibly complex and difficult to implement.  In fact it&#8217;s about as difficult as pressing the &#8216;s&#8217; key on your keyboard.  That&#8217;s right folks, the answer is <a href="http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol" target="_blank">SFTP</a>, and I was kidding, it&#8217;s an easy to implement service that even the most novice user (n00b) can figure out.  Utilizing SSH protocols the SFTP protocol allows for two way encrypted traffic.  To properly implement it still needs to be properly configured so as to avoid anonymous script execution and elevated user privileges; but these are configurations that any system admin worth his/her weight in <a href="http://www.monsterenergy.com" target="_blank">Monster</a> can make.  Of course I&#8217;ll admit that yes there is a down side.  Because of the additional overhead involved in encryption the SFTP protocol is slightly slower and more susceptible to interruption.  But the difference for most users shouldn&#8217;t be noticeable until they start transferring GB&#8217;s of data over less than reliable connections and even the a properly designed client such as <a href="http://filezilla-project.org/" target="_blank">FileZilla</a> or <a href="http://www.fetchsoftworks.com" target="_blank">Fetch</a> should be able to handle these issues.</p>
<p>Since we&#8217;re discussing things with the letter &#8216;s&#8217; lets take a moment to discuss HTTPS.  Yes I&#8217;m sure most of you have noticed the &#8216;http://&#8217; text before your Facebook account but how many people actually know what it&#8217;s doing there?  The answer not many, even fewer would notice if it changed to https://.  Part of this ignorance was created by the developers who allowed users to skip that part and let the browser guess that it&#8217;s what you meant.  Most web developers who rely on secure HTTP connections will simply redirect their users from their HTTP page to their HTTPS page.  While HTTPS is better for the users because it provides a measure of proof that server is who it claims to be; it is an expensive protocol to implement because it relies on a third-party known as a Secure Certificate Authority such as <a href="http://www.verisign.com/" target="_blank">VeriSign</a> to prove the servers identity.  In the end it&#8217;s not very advantageous for a host to provide HTTPS service because most users won&#8217;t notice the change and in most cases who cares what you&#8217;re reading on the web.  Just keep in mind that insecure sites used over insecure connections like wi-fi hot-spots may allow for unwanted eavesdroppers.</p>
<p>The most important part of keeping servers secure is the most often overlooked, that is keeping them up to date.  Updating server software packages often allows newly discovered flaws to be patched and bugs to be fixed.  No programmer is perfect and when you put a bunch of them on a single project with millions of lines of code over several years mistakes are made and security flaws are created.  <a href="http://www.microsoft.com" target="_blank">Microsoft</a> being one of the largest and longest running producers of operating system software has actually created <a href="http://en.wikipedia.org/wiki/Patch_Tuesday" target="_blank">Patch Tuesday</a> when once per month the most recent Microsoft patches are released.  Keeping a system properly patched and up to date is as important as any security measure any system admin can take and probably one of the easiest.</p>
<p>Some of the more complex actions that system admins can take include ensuring correct mime type handling, avoiding upload directories with execute permissions.  Ill intentioned folks might try to upload configuration files such as .htaccess which overwrite your servers configurations and allow .jpg&#8217;s to be executed as .php scripts.  Attacks like this can be avoided by ensuring proper precautions whenever users have access to uploading data.  Form validation is equally as important but really the test of a good system admin is allowing any web content no matter how insecure while still maintaining the overall server integrity.</p>
<p>I&#8217;m not going to spend a whole lot of time talking about it but another important note in keeping your system secure is security auditing.  Using simple software packages such as <a href="http://www.nessus.org/" target="_blank">Nessus</a> may allow you to identify known vulnerabilities that you&#8217;ve previously missed.  There are of course outside contractors such as <a href="http://accenture.com" target="_blank">Accenture</a> that will cost you an arm and a leg for penetration testing but for the most part you should be able to survive by hiring a good college student who knows how to read your server log files.</p>
<p>Lastly thinking conservatively is paramount.  If there&#8217;s one thing that my years of competing in the Cyber Defense Competition at Iowa State University has taught me its that complicated systems often lead to complicated security flaws.  Keeping the system as simple as possible is often key to designing and implementing a secure system.  By reducing your exposure to open ports and third party software you reduce your over all exposure to programmer error and outsider enticement.  My last little bit of advice to any system admin is research, research, research; know what you&#8217;re installing, the default configurations may work but are often riddled with holes.  If you know what you&#8217;re getting into before you start you have a better chance of staying ahead of those that would see you fail.</p>
<p>Oh, while I&#8217;m thinking about it; while search providers like <a href="http://google.com" target="_blank">Google</a> are likely to honor requests made by robots.txt it&#8217;s not an excuse to simple leave private content in a directory that robots.txt excludes.  Search providers don&#8217;t have to follow robots.txt and hackers love it when you tell them where to look.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=149</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analytics, Is it really a word?</title>
		<link>http://johnschultz.net/?p=134</link>
		<comments>http://johnschultz.net/?p=134#comments</comments>
		<pubDate>Tue, 02 Nov 2010 19:25:29 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=134</guid>
		<description><![CDATA[The key to most analytics is following fluctuations in comparison to changes that are made.  If you have done nothing to change your site’s situation on the web such as a design change or online advertising then you are going to have a hard time identifying what the changes in your analytics mean.]]></description>
			<content:encoded><![CDATA[<p>Website analytics tracking has become all the rage of the online community; it may be our natural desire to compete or just a way of boosting our ego that sparks the process but in the end making use of that data can be a bit tricky.  With means of tracking analytics ranging from programs that passively analyze server logs such as <a href="http://awstats.sourceforge.net/" target="_blank">AWStats</a> to complex systems that take a more active approach such as <a href="http://analytics.google.com/" target="_blank">Google Analytics</a>.  While most of these suites provide similar information, knowing what information you need and how you’re getting it is the first step in figuring out what works best for you.<br />
<span id="more-134"></span><br />
Obviously each of the solutions you use comes with a cost and I’m not just talking monetarily.  Google Analytics may be free but the JavaScript that runs on every page load requires a connection from the client to the Google Analytics servers which on even the most optimized sites can slow the amount of time required for a page load.  Using software such as <a href="http://www.google.com/urchin/index.html" target="_blank">Urchin</a>, the more powerful analytics suite provided by Google, on your local servers can reduce this latency by reducing the number of outside calls each page makes.  !Luckily (a bit of dev humor) Urchin comes at the low low price of $9995; I’m not really sure the slightly faster processing time, custom reporting and other information that can be acquired using <a href="http://www.google.com/webmasters/tools" target="_blank">Google Webmasters’ Tools</a> is really worth the coin.  Simply moving the analytics Java Script to the bottom of the page can help because it forces the client browser to load the script last.  But that’s neither here nor there; server log analysis has its upsides because it doesn’t actually affect the client at all.  The site users won’t know they are being tracked and the page load times won’t be affected.  Sounds great right&#8230; Wrong, server logs don’t give you any information about the users visiting your site other than where they were when they visited.  This significantly limits the ways in which you can use the information provided.</p>
<p>For the purposes of this article I’m going to focus primarily on the Google Analytics suite but the data collected by similar applications can be used in much the same way.  So lets start with goals.  Unless you’re looking at your page views just to boost your ego, your site has a goal in mind and knowing what that goal is will help you figure out how to use the information collected.  When I started using Google Analytics the goal I had in mind was simply redesigning a website that I was running.  We had a few ideas in mind but knowing what our current users requirements were helped us make quite a few very important choices.</p>
<p>Focusing on your visitors you can collect system information such as monitor resolution, browser capabilities, screen colors, and operating systems.  with this information in mind you can make decisions on weather or not to use Flash or Java applications within your site.  The factors I focused on were screen resolution and browser.  Because the site I was redesigning had the goal of information decimation I had to know how much information I could fit on a single screen without forcing the user to scroll.  It also helps to know what browsers/operating system combination your users are most likely to use because each combination uses different font sets which can affect size; they also interpret cascading style sheets differently which can greatly affect appearance.</p>
<p>Now all of this is great but really it hasn’t helped me improve the value of my site.  So how do you measure value? eCommerce sites are usually easy to measure in that they can define a conversion as the number of visitors to their site in comparison to the amount of revenue that site produces.  Informational sites are slightly more difficult to quantify because your goal cannot be measured in dollars.</p>
<p>With eCommerce sites tracking flow patterns using analytics software is incredibly important.  As demonstrated by Expedia in <a href="http://www.silicon.com/management/sales-and-marketing/2010/11/01/expedia-on-how-one-extra-data-field-can-cost-12m-39746554/" target="_blank">this example</a>, if you can identify at what step along the way users decide to purchase or more importantly not to purchase you can identify what needs to change in order to increase sales.  Content specific metrics such as traffic sources, exit pages, and flow patterns become extremely important in discerning this information.  Map overlay features can help eCommerce sites identify areas of high interest where advertising may be more effective.</p>
<p>With informational sites, visitor trending information such as bounce rate, visitor loyalty, page views, and time on site become important.  Based on your bounce rate you can identify what information you should be putting on your most visited entrance pages such as your homepage.  Monitoring visitor loyalty can help you identify content and design changes that have a positive or negative effect on your site’s performance.  Time on site information and page views helps determine how well organized your content is and how useful users consider it to be.  These totals can also be used as part of your consideration for advertising pricing on specific types of pages.</p>
<p>The key to most analytics is following fluctuations in comparison to changes that are made.  If you have done nothing to change your site’s situation on the web such as a design change or online advertising then you are going to have a hard time identifying what the changes in your analytics mean.  Keep in mind, the following few things: changes should be made slowly, several changes at once might make it difficult to identify what change caused the associated trends and people don’t always like change at first, major changes may initially drive people away making small changes is often better, don’t always expect an initial increase in your metrics, they may drop slightly before a positive trend.</p>
<p>The last great thing about analytics is obviously the ego boost.  It’s a great feeling to see that your hard work is getting noticed; in the end have fun and try not to obsess.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=134</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding Balance</title>
		<link>http://johnschultz.net/?p=127</link>
		<comments>http://johnschultz.net/?p=127#comments</comments>
		<pubDate>Tue, 12 Oct 2010 15:25:37 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[balance]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=127</guid>
		<description><![CDATA[No matter what your solution things to think about when hosting your own services are bandwidth, address space, environment, equipment, and software.  Whatever your decision and design keep in mind balance between quality of service and cost because in the end they are directly proportional.]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m setting up a low-budget production use web based application.  This means web servers, database servers, file servers with the smallest possible footprint, the lowest possible cost, and the greatest level of reliability.  These can be tricky things to manage and while there are plenty of solutions available finding one that fits your needs may prove to be difficult.<br />
<span id="more-127"></span><br />
My first philosophy in this process is &#8220;passing the buck;&#8221; I will explain how this can be done throughout this posting.  No matter what your solution things to think about when hosting your own services are bandwidth, address space, environment, equipment, and software.  I have the option of maintaining my own servers, for a significantly lower monetary cost in the long run, but I personally cannot afford the time required to maintain those servers and ensure uptime.  A more feasible solution might be to go with one or more VPS hosting solutions such as <a href="http://slicehost.com">SliceHost</a> or <a href="http://linode.com">LiNode</a>.  These options often allow quick scaling of hardware for increased load capacity and the hosting provider becomes responsible for the maintenance and availability of the hardware.  At a minimum this solution passes environment and hardware maintenance responsibility to the hosting company (note that you are still responsible for monitoring and maintaining hardware requirements).</p>
<p>The easiest barrier to overcome in hosting is software; most people can access open sourced LAMP stacks and set them up to provide a generally reliable web host with little hassle.  For my purposes I will be using <a href="http://www.ubuntu.com/">Ubuntu</a>, a mid-grade Linux project based on the Debian distribution as the OS.  For more reliable and better supported application stacks you might consider a paid subscription such as <a href="http://redhat.com/">RedHat Linux</a>.  Many VPS hosting solutions will provide access to these common distributions specifically configured for their hardware as part of your hosting fees.</p>
<p>In LAMP (Linux, Apache, MySQL, PHP) stacks servers are configured with an Apache web server and the PHP scripting language is used in site development.  These are not the only potential software packages available for use; many sites will use the <a href="http://www.ruby-lang.org/en/">Ruby</a> (commonly used as part of the <a href="http://rubyonrails.org/">Ruby On Rails</a> application framework) scripting language and the WEBrick web server for example.  Finding a scripting language that you are comfortable with and can find documentation for is important and often the first step in selecting your software stack.  For my purposes I will use Apache 2.0 with PHP 5.  While setting up Apache I must consider the different configurations such as mpm_prefork (usually requires more memory but provides a stable environment, supports PHP5 without CGI) and mpm_worker (more efficient use of memory and multiple CPU&#8217;s, requires CGI to support PHP5).  Read more about mpm_prefork vs mpm_worker at <a href="http://httpd.apache.org/docs/2.0/mpm.html">http://httpd.apache.org/docs/2.0/mpm.html</a>.  No matter what installation and configuration you use be sure to properly research the installation process and operating limitations before beginning your install; it can sometimes be difficult or impossible to make changes down the road.</p>
<p>Depending upon your comfort level with configuring the software stack you may chose to go with a full hosting service provider such as <a href="http://dreamhost.com">DreamHost</a> or <a href="http://mediatemple.com">MediaTemple</a>.  When selecting a hosting provider you must carefully consider availability requirements, cost, and services.  Many sites that promise low cost with unlimited bandwidth limits and unlimited disk usage experience low uptime because they cannot support the product that they are advertising.  Some larger hosts experience downtime due to DDoS attacks provoked by their size and image on the web.  When looking at potential hosts use third party sites such as <a href="http://besthostratings.com">besthostratings.com</a>, search for user reviews, and check out their support sites for recurring problems.  Keep in mind that many of these hosting providers offer little flexibility in their software stack and for the purposes of maintaining server integrity will often not allow users to run custom environments to include helper packages such as <a href="http://www.imagemagick.org/">ImageMagick</a>.  For this reason I will often sacrifice my &#8220;passing the buck&#8221; philosophy.</p>
<p>When hosting your own servers or when using a hosting provider you will often be faced with hardware decisions that will affect your overall performance.   Two factors which are most likely to affect performance are memory and CPU usage.  You should take into consideration the amount of memory that your web service application is using and how much system memory is available.  A web server should never run using swap space because system memory is exhausted.  Ensure that the total memory available exceeds the amount of memory required by the sum of the average number of processes used by your web server times the number of processes used during peak usage.  Tweaking your web server to work within the physical limitations of your machine is important to provide quality of user experience, tweaking your machine to allow for the maximum number of users is important for the quality of your site or web service.  Commands such as &#8216;free&#8217; and &#8216;top&#8217; can be used to determine memory usage on most Linux hosts.  CPU cycles are often only affected when large amounts of processing are required for a large number of users such as image and video processing and streaming.  Your memory requirements will often be exhausted before you reach your CPU limit.</p>
<p>Bandwidth and disk usage requirements are also hardware issues to be considered.  Sites that support large images and large numbers of users often experience issues with bandwidth and disk space.  These issues can often be reduced by using software solutions to compress traffic on the web server and by converting images to compressed formats no larger than the largest display size on site.  Compression may help reduce bandwidth requirements but it is important to remember that this will also tax your CPU and memory usage during compression and decompression.</p>
<p>In my situation I found that not one but a combination of all solutions may provide the best answer.  By using multiple VPS solutions with mirrored configurations I can set up failover DNS that will switch between the two services in the event that a service goes offline due to system failure or exceeded limitations providing me with the time needed to recover from the situation and make necessary adjustments.  One such failover service is <a href="http://dnsmadeeasy.com">DNS Made Easy</a>.  Because these VPS hosts are reliable I can use them to support the bulk of my application stack however they are limited by bandwidth and disk space.  For this using multiple accounts on a full hosting provider with lower anticipated availability but much higher limits for bandwidth and disk usage provides file storage for non-application files such as images, videos, and other media uploaded by site users.  By using multiple accounts and failover configurations you can provide some measure of safeguard against reduced availability; by mounting the remote service directly to the web server or by using sub-domains you can provide secure distribution of those files.  In the event that the hosting service does fail your application will continue to run on the VPS hosting providers.  Be sure that your hosting provider allows for this sort of use as they may shut you down for improper service usage, also note that you are doubling your bandwidth usage on your web server if you decide to mount the hosting provider directly to the web server because the file must travel from the file host to the web server before reaching the client.  Finally using personal servers for non-mission critical, low usage services such as development and system monitoring provides you with an inexpensive way to maintain these services.</p>
<p>Whatever your decision and design keep in mind balance between quality of service and cost because in the end they are directly proportional.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=127</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On-communicado</title>
		<link>http://johnschultz.net/?p=120</link>
		<comments>http://johnschultz.net/?p=120#comments</comments>
		<pubDate>Sat, 18 Sep 2010 23:05:22 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=120</guid>
		<description><![CDATA[It&#8217;s amazing today the speed at which data travels around the world and yet it seems so common place. The part I can&#8217;t figure out is why we&#8217;re still paying such outrageous prices for some data transfer; specifically I don&#8217;t understand the phone industry. Since the invention of the telephone by Alexander Graham Bell in [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s amazing today the speed at which data travels around the world and yet it seems so common place.  The part I can&#8217;t figure out is why we&#8217;re still paying such outrageous prices for some data transfer; specifically I don&#8217;t understand the phone industry.</p>
<p>Since the invention of the telephone by Alexander Graham Bell in 1876 people have been communicating instantly over great distances.  Martin Cooper invented the first mobile phone in 1973 cutting the lines that tied people to one location.  Today almost anyone can be reached almost anywhere.  But this convenience comes at a price, at first it made sense, the mobile phone industry was providing a luxury service that was expensive to maintain.  With over 4.6 billion cellular subscriptions world wide as of last year its become a necessity of life; again, a good reason for cellular companies to gouge the consumer.</p>
<p>Fortunately the internet has been fighting back.<span id="more-120"></span>  Today with projects such as Google Voice, Skype, and any number of other Voice/Video chat providers all operating via the web users are able to connect with one-another without using their precious minutes.  Sadly, the phone companies have been putting up their best road blocks even going as far as to teaming up with the developers of certain applications to avoid the destruction of their highly lucrative market.</p>
<p>Verizon Wireless teamed up with Skype in 2009 offering unlimited Skype-to-Skype calling using Skype Mobile on Verizon smart phones.  What Verizon failed to mention was that their deal also precluded anyone with a paid Skype subscription from making Skype-to-phone calls through the Skype network.  They also forgot to mention that anyone with an &#8220;Unlimited&#8221; data plan actually has a 2GB per month cap and faces insane overage charges for going above and beyond.  So what does Verizon get, advertising, hype, and a new feature to add to their list of things they can charge for.  What does the consumer get; just one more way they can accidentally become victim of wishing they had roll over.  But hey it&#8217;s America&#8217;s Most Reliable Network right.</p>
<p>Verizon isn&#8217;t the only corporation fighting the data wars.  Google acquired Grand Central in 2007 and turned it into Google Voice a free service connecting users over a last mile VoIP infrastructure.  Google Voice allows users to place a call from Google owned and operated servers to their phone and phone of the person they are trying to reach.  Because the Google servers place both calls then connect them the users never actually makes an outgoing call.  For AT&#038;T users this was great considering there were plans that allowed for all incoming calls or calls from specific numbers to be free.  For iPhone users this was even better considering the iPhone App GVMobile allowed the user to place a Google Voice call using a clean interface and the phone&#8217;s data connection.  It wasn&#8217;t long before AT&#038;T and Apple took the application off the market and changed the way the data connection operated so users could no longer use this free method of placing calls.</p>
<p>For now the wireless companies have the upper hand, online communication still has a long way to go, but with the amount of active bandwidth increasing and people becoming more and more connected it&#8217;s only a matter of time before we go off the air and online.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=120</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Information Overload</title>
		<link>http://johnschultz.net/?p=82</link>
		<comments>http://johnschultz.net/?p=82#comments</comments>
		<pubDate>Wed, 04 Aug 2010 16:40:52 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[distractions]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[meetings]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=82</guid>
		<description><![CDATA[I have recently been involved in several discussions regarding the use of technology in the classroom. This conversation first started with a discussion of Google Wave, a product that is still in its very early stages of development but has great potential, then moved to the iPad, and eventually found its way to all technology. [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently been involved in several discussions regarding the use of technology in the classroom. This conversation first started with a discussion of Google Wave, a product that is still in its very early stages of development but has great potential, then moved to the iPad, and eventually found its way to all technology. We discussed everything including the obvious technology such as student laptops and response clickers to web applications and LiveScribe Pulse pens. So the question is what is useful and what is just to much?<br />
<span id="more-82"></span><br />
Lets start with the old school, obviously pen and paper are a good start; this bit of technology is a bit better than the old stone tablets but how have we improved on this in the last century. The Pulse pen by LiveScribe is a good start. It brings the freedom of pen and paper, not restricting users to the confines of a program&#8217;s interface. The Pulse pen is a high tech recording device that captures the pen strokes and audio from the room as the user writes in a dot matrix printed notebook. The user can then download the notes they wrote and playback their handwriting with the audio recording on their computer; furthermore they can share these recordings with anyone across an easy to use website. Useful? I think so the person taking notes is still engaged in the conversation and there isn&#8217;t a lot to distract them, it&#8217;s just pen and paper right.</p>
<p>So then we take the next leap forward to tablet computers, laptops, notebooks, netbooks, and the newest craze a tablet hybrid such as the iPad or HP Slate. These impressive devices are great and can do just about anything we can imagine but do they really improve productivity in a meeting or classroom setting? The note taking software on these devices is often limited in its ability to take accurate notes and often lacks the accuracy and freedom of pen on paper. Most users who are taking notes can write significantly faster than they can type and unless they are intimately familiar with the software they are using to take notes they will often spend time fidgeting with the formatting to get the notes to appear the way they want them. So why are so many students and professionals taking this approach? First and foremost these devices often offer a multitude of resources which if used properly can improve an individuals ability to intelligently participate in a conversation. Say for example a conversation in a board meeting shifted to last years projected financials; you may not have that information on hand in printed form but with a networked computer and a bit of know how most users can access it in seconds. The only problem with this defense is that most users abuse their ability to access the outside world; they use the web for social media and games that disconnect them from the conversation rather than relevant information that involves them in the conversation. Some users believe they have an incredible ability to multitask allowing them to get more done than just attending a meeting; unfortunately as shown in this study (<a href="http://www.physorg.com/news170349575.html">Multitasking Article</a>) by Stanford most of these people are wrong. Another argument is that electronic copies of their notes reduces the amount of materials they have to carry around and improves the ability to organize data. In my opinion this is the only reason any of these devices may be useful in a meeting situation.</p>
<p>Lastly there&#8217;s the fun concept of forced participation. By handing out response clickers and requiring online surveys regarding the information relayed during a meeting, instructors and presenters are in essence requiring people to listen to what they are saying out of fear. Most people put in this situation don&#8217;t listen for anything other than key information and even fewer people retain the knowledge after they have overcome the challenge of responding correctly to a question or survey. So are these items useful, only under one situation, users must be involved in the conversation. The bottom line is lecture style presentations don&#8217;t work anymore, if technology has done one thing to our society it has encouraged people to be connected. Someone sitting in a lecture who never says a word may never feel connected to that information and may never actually absorb it.</p>
<p>In the end the lower the amount of technology and the higher the amount of direct interaction the better off we are when it comes to learning; but then again these are just my random thoughts.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=82</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conceptual Sourcing</title>
		<link>http://johnschultz.net/?p=71</link>
		<comments>http://johnschultz.net/?p=71#comments</comments>
		<pubDate>Wed, 11 Nov 2009 05:21:55 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=71</guid>
		<description><![CDATA[When starting any project it comes down to you reflecting on your comfort level, how much time you have, what your budget is, and the quality of site that you want to produce.  The conclusions you draw from this reflection will determine how you approach the development.]]></description>
			<content:encoded><![CDATA[<p>The art of web design is a process that changes from company to company and person to person but no matter how the final product is produced there are always three factors that come into play: cost, time and quality.  As a project manager of a major design firm or an individual creating a web presence you must carefully weigh these three elements; in the end you only get to pick two of them, the third is going to suffer.  If you, for instance, want a high quality website developed at a low cost it is going to take longer, and if you want a low cost website produced quickly it is going to be a lower quality.  As web development becomes a larger market developers are finding ways to mitigate these factors.  One of the most popular ways to accomplish this goal within the development community has been web application framework development.<br />
<span id="more-71"></span><br />
Application packages such as <a href="http://drupal.org/" target="_blank">Drupal</a> and <a href="http://codeigniter.com/" target="_blank">Code Igniter</a> and even <a href="http://wordpress.org/" target="_blank">WordPress</a> have become powerful tools that allow for rapid application development by providing a base framework to use as the foundation of the website.  Each of these environments offer large amounts of tested and community moderated code that performs many of the basic tasks required by dynamically generated sites.  While the actual benefits offered by an open source framework or content management system vary from product to product the majority of them offer some sort of database interface, session management, and html helper templates.  Other web application frameworks such as <a href="http://mootools.net/" target="_blank">MooTools</a> are designed to aid in manipulation of CSS, DOM elements, native JavaScript objects, and Ajax requests.  All web development frameworks despite the area of development they were designed for are designed to increase speed and reduce cost of overall site development.</p>
<p>The quality of an open source system often lies in the community of developers working to support it.  Developer communities generate countless plug-ins and mods to popular open source systems often for the fun or the credit that goes along with putting their signature within the code.  These plug-ins can range from one click installs to lengthy source code modifications but chances are if you&#8217;re looking to for your website to do something there is a plug-in for it out there somewhere.  Many sites such as the <a href="http://wordpress.org/extend/plugins/" target="_blank">WordPress Plugin Directory</a> act as user hubs that make searching for quality plug-ins easy.</p>
<p>While plug-ins are an important part of finding an open source platform they are not the only thing to be considered.  There are many platforms out there and choosing the right one can be an arduous task.  While some platforms such as <a href="http://phpbb.com" target="_blank">phpBB3</a>, an open source forum application and <a href="http://mediawiki.org/" target="_blank">MediaWiki</a>, the wiki software that drives Wikipedia are specific to the task they are going to perform.  Others such as <a href="http://cakephp.org" target="_blank">CakePHP</a> and <a href="http://djangoproject.com" target="_blank">Django</a> are generic and can be used to develop almost anything.  Two things to be conscious of when selecting a framework are your comfort level with the framework and the footprint that the open source project brings with it.  Having an application framework that can perform the functions you need and that you are comfortable working with must be carefully balanced with the impact that framework will have on your servers based on the volume and type of traffic.  Almost all applications are going to require custom tailoring and if you don&#8217;t understand what you&#8217;re working with this can quickly become an impossible task to perform.  Think of the application framework as a roll of fabric, by having it you&#8217;re saved the time of having to weave the fabric yourself but, if you don&#8217;t know how to use a needle and thread you&#8217;re going to have a hard time making a suit.  The footprint of the application becomes important because a framework that comes with a large number of built in features, while requiring less coding on your part, will have more code that needs to be processed and stored on your server.  The leaner a framework is the more code you have to write to customize it but a bloated framework can be potentially harmful.  Finding the balance between performance and power often comes back to those three elements I started with: cost, time, and quality.  The more bloated your development framework is the less code you are going to have to write saving you time and money, and yet you risk the possibility of a lower quality.</p>
<p>A good application framework can be a powerful tool if properly used and yet there are times when a custom solution is the route to go.  Sites that require very specific functionality and high performance are going to require custom development.  Unfortunately customization is directly related to risk; without proper documentation and a solid knowledge of the programming a custom site can become very expensive to maintain and troubleshoot.  To avoid this problem when creating a custom solution all code should be commented, standards should be followed, and if at all possible follow a model that is widely used and documented.</p>
<p>When starting any project it comes down to you reflecting on your comfort level, how much time you have, what your budget is, and the quality of site that you want to produce.  The conclusions you draw from this reflection will determine how you approach the development.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=71</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social Media Marketing</title>
		<link>http://johnschultz.net/?p=42</link>
		<comments>http://johnschultz.net/?p=42#comments</comments>
		<pubDate>Tue, 11 Aug 2009 02:54:24 +0000</pubDate>
		<dc:creator>John Schultz</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://johnschultz.net/?p=42</guid>
		<description><![CDATA[With a pool of potential customers that’s itching to find these online businesses only a few clicks away, it’s a wonder that every company isn’t already jumping onto the social media bandwagon.]]></description>
			<content:encoded><![CDATA[<p>According to a press release by Facebook.com (<a title="Facebook Press Statistics" href="http://www.facebook.com/press/info.php?statistics" target="_blank">http://www.facebook.com/press/info.php?statistics</a>), their site has over 250 million users and more than half of those users visit the site at least once every 24 hours. Similar sites such as <a title="Myspace.com" href="http://myspace.com/" target="_blank">Myspace.com</a> and <a title="Linkedin.com" href="http://linkedin.com/" target="_blank">Linkedin.com</a> are experiencing similar numbers of users. These sites offer businesses the unique opportunity to reach a very targeted group of users beyond the conventional methods of advertising.<br />
<span id="more-42"></span><br />
Traditionally online advertising offers retailers the ability to push their message to users as they browse the web for anything and everything. Unlike traditional print advertising, web advertisements allowed more targeted content, giving the viewer an ad that is specific to them, or at lease specific to information collected about them as they crawl the web. While this offers a unique advantage online advertising still has the same weakness as print advertising in that it isn’t the content that the view is looking for, it’s simply in addition to the content the reader is looking for. The advertisements load around the content and can usually be ignored by the users. Because of this most search engines are designed to ignore advertising and many users have software designed to remove advertising before they ever see it. So the question becomes how do you get the user to want to see your ad, how do you get them to look for your content? The answer is simple, and social networking sites are making it easier than ever.</p>
<p>Facebook.com says it best in their product guide where they discuss Facebook Pages (<a title="Facebook Products" href="http://www.facebook.com/advertising/?pages" target="_blank">http://www.facebook.com/advertising/?pages</a>); any business can “create a presence that looks and behaves like user profiles to connect and engage with your customers and amplify your voice to their friends.” The best part about it is this product is it’s free. Sites such as Linkedin.com and Myspace.com allow companies to create informational profiles that allow similar interaction with users. Myspace.com currently limits their profiles to individual users and artistic groups such as filmmakers and bands. Linkedin.com offers company profiles to any company however they do not allow that company to act as an individuals and it creates more of a meeting and informational point for users. Facebook.com thus far allows the most functionality, allowing companies to post photos, multimedia, and post information in the form of ‘wall’ posts as well as allowing the company to post information about itself such as a brief description and subsidiaries. These social networking sites allow businesses to get their name out to large groups of users, and provide constant updates of services and offers being provided to those users.</p>
<p>Blogging sites such as <a title="Blogger.com" href="http://blogger.com/" target="_blank">Blogger.com</a> (a Google subsidiary), and <a title="Wordpress.org" href="http://wordpress.org/" target="_blank">WordPress.org</a> provide companies to give their employees direct interaction with the public and one another. Companies like Cisco (<a title="Cisco Employee Blogs" href="http://blogs.cisco.com/" target="_blank">http://blogs.cisco.com/</a>) and Zappos (<a title="Zappos.com Employee Blogs" href="http://blogs.zappos.com/" target="_blank">http://blogs.zappos.com</a>) are on the forefront of this new and somewhat revolutionary idea. The concept, like corporate social networking, is simple, draw the public in, become their friend, by conversing with them at their level, and they will be more likely to do business with you in the future. As of right now the Cisco Blogs are still very centered around the company with all levels of users, from Interns to Vice Presidents blogging about projects that they are currently working on in the company. This has led to tech enthusiasts to flock to their site to see the newest and most cutting edge ideas before they hit the market. Zappos.com takes a different approach by allowing their employees, again on every level of the corperate ladder, to blog about anything and everything, such as this blog (<a title="Zappos.com Blog Post" href="http://tinyurl.com/nbjgny" target="_blank">http://tinyurl.com/nbjgny</a>) that talks about playing Low Limit Hold’em with Lee Jones.</p>
<p>While blogging is yet again another great way to draw in users, it is often time consuming and if not done correctly can lead to a public relations nightmare. This is where the newest and most popular idea of micro-blogging hits the ground running. One of the most popular micro-blogging sites on the web, <a title="Twitter.com" href="http://twitter.com/" target="_blank">Twitter.com</a>, has recently seen issues in keeping up with its exponential growth. An interesting post on the Twitter Development Group (<a title="Twitter Development Group" href="http://tinyurl.com/knzdul" target="_self">http://tinyurl.com/knzdul</a>) talks about the great Social Media DDOS attack of 2009, also discussed in the CNet article <a title="CNet - Twitter Crippled by Denial of Service Attack" href="http://news.cnet.com/8301-13577_3-10304633-36.html?tag=mncol;mlt_related" target="_blank">Twitter Crippled by Denial of Service Attack</a>, and states it best when the author says Twitter is in panic mode “scaling to meet demand became more of a priority than scaling to manage their demand.” Nonetheless, Twitter.com offers a unique opportunity for businesses to reach their users. Many companies such as Discovery Communications, LLC (owner and operator of the <a title="The Discover Channel" href="http://dsc.discovery.com/" target="_blank">Discovery Channel</a>) are already using Twitter to track users that are interested in their products, essentially free mass market research. Companies such as <a title="BestBuy.com" href="http://www.bestbuy.com/" target="_blank">Best Buy</a> are allowing their employees to post to a single twitter account in an attempt to help answer customers questions via the micro-blogging giant. The Best Buy ‘<a title="Best Buy Twelp Force" href="http://bbyconnect.appspot.com/" target="_blank">Twelp Force</a>’ (tweeting help force) has thus far been hit or miss as discussed by this blog (<a title="Zatz Not Funny" href="http://tinyurl.com/lg5m8t" target="_blank">http://tinyurl.com/lg5m8t</a>) however smaller companies and organizations have been using Twitter with great success, interacting with their customers on a personal level.</p>
<p>Each of these different types of social media offers a unique way to interact with users but the fundamental concept is the same, providing content the visitor will want to see while creating a unique and personal conversation with the masses. The key to remember is that social media can’t be forced; businesses need to provide content that will drive their target audience to their social media outlet, such as exclusive deals or insider insight. With a pool of potential customers that’s itching to find these online businesses only a few clicks away, it’s a wonder that every company isn’t already jumping onto the social media bandwagon.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnschultz.net/?feed=rss2&#038;p=42</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
