<?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>Riverscape Web Studios &#187; Blog</title>
	<atom:link href="http://www.riverscapewebstudios.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.riverscapewebstudios.com</link>
	<description>Another Designer Blog</description>
	<lastBuildDate>Sun, 04 Mar 2012 20:12:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Using Registry to Disable Synaptics TouchPad When Mouse is Connected to Your Lenovo IdeaPad</title>
		<link>http://www.riverscapewebstudios.com/2012/03/using-registry-to-disable-synaptics-touchpad-when-mouse-is-connected-to-your-lenovo-ideapad/</link>
		<comments>http://www.riverscapewebstudios.com/2012/03/using-registry-to-disable-synaptics-touchpad-when-mouse-is-connected-to-your-lenovo-ideapad/#comments</comments>
		<pubDate>Sun, 04 Mar 2012 20:09:15 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=344</guid>
		<description><![CDATA[As an engineer and programmer, when I run into something with my computer that I want to do, I normally like to do it as cleanly as possible. Recently (within the last 2 weeks) I acquired a Lenovo IdeaPad. It&#8217;s immediately become at least one of my new best friends. However, I usually have a [...]]]></description>
			<content:encoded><![CDATA[<p>As an engineer and programmer, when I run into something with my computer that I want to do, I normally like to do it as cleanly as possible.</p>
<p>Recently (within the last 2 weeks) I acquired a Lenovo IdeaPad.  It&#8217;s immediately become at least one of my new best friends.  However, I usually have a mouse associated with it, so I find the touchpad almost useless.  Nevertheless, it would be rather obnoxious to not be able to use the touchpad if I did not have a mouse connected.</p>
<p>I obviously did a little bit of searching online, and found that it had been disabled on a registry-level by Synaptics.  A few restore points and regedits later, I figured out what needed to be done.  <strong>Note that I am doing this on Windows 7.  Most likely, your manufacturer has drivers to do something similar to this in Vista or XP &#8211; try googling for them before you go as far as to edit your registry.</strong> <span id="more-344"></span></p>
<h3>Why would I want to do this?</h3>
<p>Learning how to edit your registry is fun.  Besides, it&#8217;s pretty annoying when my touchpad activates while I&#8217;m typing, or clicks on something, when I have a mouse nearby.  However, I do not want it to be activated all of the time, otherwise when I am on-the-go and forgot my mouse I will not be able to use my laptop.  And that would be bad!</p>
<h3>What do I need? What skill level is this?</h3>
<ul>
<li>Skill level: Beginner to intermediate.  I tried to mix in as many images as possible.</li>
<li>Gather the following:
<ul>
<li>A mouse</li>
<li>A text editor</li>
<li>A laptop running Windows 7 (this is done on a Lenovo IdeaPad Y570)</li>
<li>An Administrator account. A Standard account WILL NOT be able to do this.</li>
</ul>
</li>
</ul>
<h2>Step 1: Open NotePad and do some code.</h2>
<p>The first thing you are going to want to do is, as stated, open notepad and throw in the following code.</p>
<p><code>Windows Registry Editor Version 5.00</p>
<p>[HKEY_CURRENT_USER\Software\Synaptics\SynTPEnh]<br />
"DisableIntPDFeature"=dword:00000033<br />
</code></p>
<p>First line identifies that this is going to edit your registry, third line identifies where the file needs to go, and the fourth line tells it to disable itself when a mouse is connected.  (dword:000000033 is derived because, as a hex, 33H identifies DOS&#8217;s mouse driver &#8211; the default driver that allows you to move your mouse around when you plug it in if your manufacturer did not provide a driver for it. Cool fun fact I learned from playing with x86)  Go ahead and save this as a .txt file.</p>
<h2>Step 2: Enable extension viewing</h2>
<p>You can ignore this step if you already have extensions enabled.</p>
<p>By default, Windows doesn&#8217;t let you view extensions.  Go to your <strong>Start menu</strong>, and type in <strong>Folder Options</strong>.  Hit enter, and that will open a dialog box that contains folder options.  Along the top, you will see three tabs: General, View, and Search.  Click on <strong>View</strong>.</p>
<p>This will display a list of options.  You shouldn&#8217;t need to scroll to see an option that says <strong>Hide extensions for known file types.</strong>  This will most likely be checkmarked by default; uncheck it, click on <strong>Apply</strong> and then <strong>OK</strong>.</p>
<p><img src="http://riverscapewebstudios.com/images/hideextensions.PNG" alt="Show extensions for known file types" /></p>
<h2>Step 3: Change your file extension</h2>
<p>Now that you can view file extensions, you will need to change that file from a .txt to a .reg.  Simply right-click on it and choose &#8220;Rename&#8221;.  Delete the .txt extension, and add .reg.  When Windows prompts you that this may make it unusable, tell it to change it anyway!</p>
<p>If this was done properly, it should no longer have an icon that looks like something from notepad or your default text editor, but should instead appear to have a teal Rubiks cube as its icon.</p>
<h2> Step 4: Double click.</h2>
<p>Double click on the file.  Windows will warn you that this will edit your registry, and you might need to give it administrative privileges.  Hit &#8220;Yes&#8221; again when it informs you that it is going to edit your registry, and then you should see a final pop-up to let you know that your registry has been edited.</p>
<h2>Step 5: Profit.</h2>
<p>You may need to navigate to your mouse properties in order to encourage it to work.  To do this, simply open your <strong>Star menu</strong>, type in <strong>main.cpl</strong>, and hit enter.  I ended up navigating to the last tab, <strong>Device Settings</strong>, before I saw any change.</p>
<p>When the change is acknowledged by your computer, you will normally see a brief popup from your taskbar informing you that <strong>Synaptics has been disabled because another pointing device is connected</strong>.  If you don&#8217;t see that, you may not have inserted the code properly.  Open regedit (<strong>Start Menu > Regedit</strong>) and navigate to <Strong>HKEY_CURRENT_USER > Software > Synaptics > SynTPEnh</strong>.  You should see a list of registry entries to the right, and one of these should read DisableIntPDFeature.  Right-click, select <strong>Modify</strong> and ensure that <strong>Value Data</strong> says 33 in it (with <strong>Hexdecimal</strong> selected under <strong>Base</strong>).</p>
<p><img src="http://riverscapewebstudios.com/images/regeditmouse.PNG" alt="Edit registry to disable touchpad when mouse is connected." /></p>
<p>Also, another fun tidbit: if you close and reopen main.cpl, and navigate to the last tab after your computer informs you that it has disabled touchpad, you will now be able to enable and disable this feature at your leisure.  Check the screen:</p>
<p><img src="http://riverscapewebstudios.com/images/maincpl.PNG" alt="Disable Synaptics touchpad when external mouse is connected." /></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.riverscapewebstudios.com%2F2012%2F03%2Fusing-registry-to-disable-synaptics-touchpad-when-mouse-is-connected-to-your-lenovo-ideapad%2F&amp;title=Using%20Registry%20to%20Disable%20Synaptics%20TouchPad%20When%20Mouse%20is%20Connected%20to%20Your%20Lenovo%20IdeaPad"><img src="http://www.riverscapewebstudios.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2012/03/using-registry-to-disable-synaptics-touchpad-when-mouse-is-connected-to-your-lenovo-ideapad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Our Hands Dirty with MySQL</title>
		<link>http://www.riverscapewebstudios.com/2011/01/getting-our-hands-dirty-with-mysql/</link>
		<comments>http://www.riverscapewebstudios.com/2011/01/getting-our-hands-dirty-with-mysql/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 03:58:22 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=304</guid>
		<description><![CDATA[MySQL is a relational database management system that you probably hear tons upon tons about but if you're reading this, you probably aren't sure how to even begin picking at it.  After all, there aren't even any vowels in that word - that's overwhelming enough!  Well, because I'm only barely a step ahead of you (or in some cases, probably a step behind), I can promise you that it's really not as scary as it looks.  With the foundation laid out by my previous posts, we should be able to tame this beast pretty smoothly.  Today we will introduce ourselves and familiarize ourselves with some MySQL controls - not necessarily database controls like we discussed in my initial post, but we're just going to see if we can get our database to give us some information using a few key phrases. ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.riverscapewebstudios.com/wp-content/uploads/2011/01/ihopsql.jpg" alt="IHOP even has the same port as MySQL!" title="IHOP likes MySQL" style="float:left;" />MySQL is a relational database management system that you probably hear tons upon tons about but if you&#8217;re reading this, you probably aren&#8217;t sure how to even begin picking at it.  After all, there aren&#8217;t even any vowels in that word &#8211; that&#8217;s overwhelming enough!  Well, because I&#8217;m only barely a step ahead of you (or in some cases, probably a step behind), I can promise you that it&#8217;s really not as scary as it looks.  With the foundation laid out by my previous posts, we should be able to tame this beast pretty smoothly.  Today we will introduce ourselves and familiarize ourselves with some MySQL controls &#8211; not necessarily database controls like we discussed in my initial post, but we&#8217;re just going to see if we can get our database to give us some information using a few key phrases. </p>
<p>Just note that this WILL be a bit of a longer post &#8211; so feel free to read it in simple segments and take breaks in-between.  We&#8217;ve got a lot to cover!<span id="more-304"></span></p>
<h3>Getting MySQL</h3>
<p>MySQL is managed under the GNU &#8211; that is to say, it&#8217;s an open source system, thus making it very, very popular.  And that&#8217;s the story behind why you&#8217;ve heard so much about it these days.  You probably want to start setting up your own MySQL server right now on your localhost (your computer) or on some other server, or maybe you&#8217;ve already got it all set up.  Either way, <a href="http://dev.mysql.com/usingmysql/get_started.html" title="Installing MySQL">this page details how you can install MySQL into most popular configurations</a>.  You&#8217;ll want to bookmark this page &#8211; it has quite a few nice little tutorials and discussion boards just for developers like you and I.</p>
<h3>Playing with MySQL</h3>
<p>To be frank with you, the best experience I&#8217;ve had working with MySQL to date is to simply use command line.  Now, for people not used to a UNIX based system, <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" title="PuTTY">PuTTY</a> is great for connecting.  For those on Linux and OS X, you can use your Terminal to access it.</p>
<p>If your server allows anonymous connections, you can log in simply by typing <code>mysql</code>.  Otherwise, you might have to do a little more playing around with it.  But don&#8217;t be afraid!  Let&#8217;s just explore how to get on with a username and password.  Here&#8217;s what we&#8217;re going to type in, with an explanation afterward:</p>
<p><code> mysql -h host.yourdomain.com -u username -p</code></p>
<p>What&#8217;s all this gibberish mean?  Well, we already discussed what <code>mysql</code> means &#8211; we&#8217;re connecting to a MySQL database.  After that, <code>-h</code> denotes that &#8220;after this is our host&#8221;, so it&#8217;s just meaning that we aren&#8217;t connecting to localhost (that is, your computer), and tells our shell that we want to go to <code>host.yourdomain.com</code>.  <code>-u</code> means we are using a username; we would then put said username afterward as in the example.  <code>-p</code> then means that said username has a password.</p>
<p>After you hit enter using said command, you should then be prompted for your password.  Note that you should not be able to see said password as you type &#8211; this is simply for security&#8217;s sake.</p>
<p>And woot &#8211; we should be in now, provided we typed things in properly.  If the above prompt is incorrect, you don&#8217;t need to retype it.  Actually, just hit the &#8220;Up&#8221; arrow on your keyboard and it&#8217;ll allow you to tab through previous commands and edit them if need be.</p>
<h4>But what if my server uses a different port?</h4>
<p><strong>Ports</strong> are communication channels between machines.  The default port for MySQL is 3306.  If you&#8217;re trying to connect to a different port because of your server configuration, you will need to get the port number from whomever manages your server.  In the command line, you can then specify it using either <code>-port</code> or <code>-P</code>.</p>
<h3>Exploring Our Databases</h3>
<p>Now that we have a firm understanding of how databases work and are connected, it&#8217;s time to get our feet wet looking at what we&#8217;ve got.</p>
<h4>Watching the SHOW</h4>
<p>In order to work with a database, we&#8217;ve gotta know what&#8217;s already available.  This is easy simply by typing in the following command:</p>
<p><code>SHOW DATABASES;</code></p>
<p>This will prompt MySQL to show the available databases on the host that you&#8217;ve connected to.  It&#8217;ll even lay it out for you in a nice little table format.<br />
<code><br />
+-----------+<br />
| Databases |<br />
+-----------+<br />
| mysql &nbsp;&nbsp;&nbsp; |<br />
| test &nbsp;&nbsp;&nbsp;&nbsp; |<br />
| yourDB &nbsp;&nbsp; |<br />
+-----------+<br />
3 rows in set (0.00 sec)<br />
</code></p>
<h4>SELECT What You Wanna Watch</h4>
<p>Now that we see a nice little print-out similar to what&#8217;s in the example, we can now select the database we want to work with.  For now we will navigate using some internal commands &#8211; that is, commands which are built into SQL itself.  So go ahead and type this into your command line:</p>
<p><code>\u yourDB</code></p>
<p>The weird little backslash tells MySQL that that&#8217;s a built-in command, and it tells it to USE the database <code>yourDB</code> (or a different database if you specified something else as its title).  If the database does not exist or you mistype the name (or both!), it will return an error that looks something like this:</p>
<p><code>ERROR 1049 (42000): Unknown Database 'yourDB'</code></p>
<div class="hint"><strong>Helpful hint:</strong> If you already know the name of the database you want to use before connecting, you can specify it right in the command prompt! Just specify it at the very end of the prompt.  You&#8217;d type something like this:</p>
<p><code>mysql -h host.yourdomain.com -u yourusername -p yourDB</code></p>
<p>Voila!  Instant connection to that database.</p></div>
<h4>Showing Your Status</h4>
<p>Sometimes you might be working with tons and tons of data, and aren&#8217;t sure if you&#8217;re still connected to your database because you&#8217;re tabbing through 15 different windows, or want to know exactly which database you&#8217;re connected to.  Enter <code>\s</code>.</p>
<p>This built-in command returns the status of your current database connection (or lack there-of), including what the name of the database is that you are on and the parameters of the connection.  This is especially handy if you are playing with more than one database at a time.  It even tells you the MySQL version you are currently connected to.</p>
<p>If you find you&#8217;ve been disconnected from your database, a single <code>\r</code> will allow you to force a reconnect.  Pretty cool, huh?</p>
<h4>But What About the SQL?</h4>
<p>So we dove head-first into a list of SQL commands you&#8217;ve probably forgotten by now, and gone over how to organize your information into a few spreadsheets that&#8217;ll allow you to have all the information at your fingertips to start building your database.  But let&#8217;s take a moment and really look at how we&#8217;re going to get all that information from Document A into Database B.</p>
<p><strong>SQL can be considered a high-level scripting language.</strong>  This basically means that it&#8217;s very similar to human language and it tells a computer what to do, and as a scripting language it does not need to be compiled to be read by your computer the way that Java or C would need to be (or even, to some extent, PHP on a server).  If you don&#8217;t know exactly what this means, that&#8217;s okay.  Just keep reading, and keep researching it.</p>
<p>The way you input SQL, thus, is by doing what is known as <strong>scripting</strong>.  That is, inputting it into your shell one line at a time, and ending each line with a semi-colon, <code>;</code>.  You might see some of your uber cool developer friends doing cool things like this with Perl or Python, and now you&#8217;ll be able to do super cool things with SQL in a very similar fashion (we&#8217;ll explore Perl and Python a bit more in another series).</p>
<p>You probably noticed when we had our databases show themselves that the <code>SHOW</code> command ended in a semi-colon.  If you accidentally forgot to copy-paste that semi-colon, you were probably prompted for another line of MySQL and are probably still banging your head wondering what you are doing wrong and preparing to send me a very angry email.  Well, save the email to drafts, because that semi-colon is important.  That semi-colon tells MySQL that <strong>we&#8217;re done with our command and to <em>please execute them.</em></strong></p>
<p>This is great in that if you have a ton of commands you need to input all at once, MySQL will keep asking for more until it reads a semi-colon, allowing you to be very specific in what you&#8217;re telling it to do.  So, you can curse it now, but you&#8217;ll learn to love it later!</p>
<p>A cool thing, too, is that MySQL will let you also edit your SQL commands with a built-in editor.  To do this, just type in <code>\e</code> and it&#8217;ll open an editor that&#8217;s specific to whatever environment you&#8217;re developing in.</p>
<h4>Handling Output</h4>
<p>Given that we&#8217;re working with data, at times we will need to download or otherwise view what we&#8217;ve already got in our database.  Let&#8217;s look at how to view that in our shell, and then move on how to download the information.</p>
<p>MySQL is nice in that it allows us to view our output a few different ways when it comes to viewing it in our shell.  This is where we see how important case sensitivity is in what we want.</p>
<p>The first of our commands is <code>\g</code>.  This very basic command executes the SQL <code>SELECT</code> command we normally would have put in, and then formats it in a nice little table for us.</p>
<p>The big brother of this command is <code>\G</code>.  This makes a vertical table rather than the horizontal table from <code>\g</code>.  This is useful in allowing us to view just the specifics for one line of information if our table is longer than the window we are viewing it in.</p>
<p>We can also view our table as an XML or HTML output.  This is done using -xml or -html switches.</p>
<h3>Now That We&#8217;ve Been Overloaded</h3>
<p>MySQL is something that one will have to slowly ease into if one is not already familiar with command-line based web development, or really any shape or form of web development.  However, having at least a general understanding of its components would allow one to be able to quickly and efficiently keep track of information &#8211; regardless of what line of work they are in &#8211; <a href="http://www.riverscapewebstudios.com/2009/06/all-designers-should-program/" title="All Designers Should Program">and I think for web designers (seeing how the market is) gives an edge against other designers in that it allows more legroom in becoming a one-stop shop &#8211; basically, the jack of all trades that managers like to look for</a>.</p>
<p>While I feel some pride in how far I have come in my research on databases and such, and I myself (and a few of my colleagues) feel that my tutorials are effective in helping others learn more as well, it doesn&#8217;t hurt to do research.  In a previous post in this series, I did recommend two books.  The list is still growing in the resources which I am using to educate myself.</p>
<h3>Homework Readings:</h3>
<ul>
<li>
<a href="http://nostarch.com/mg_databases.htm" title="The Manga Guide to Databases">The Manga Guide to Databases</a>
</li>
<li>
<a href="http://www.amazon.com/Sams-Teach-Yourself-MySQL-Minutes/dp/0672328631" title="Sam's Teach Yourself MySQL in 10 Minutes">Sam&#8217;s Teach Yourself MySQL in 10 Minutes</a>
</li>
<li>
<a href="http://www.amazon.com/PHP-MySQL-Web-Development-4th/dp/0672329166" title="PHP and MySQL Web Development">PHP and MySQL Web Development</a>
</li>
</ul>
<p>I am also working on an addition to my Delicious bookmarks which will feature several articles and sites dedicated to MySQL.  The list is currently small, but growing.  <a href="http://www.delicious.com/silentdelerium08/mysql" title="MySQL Delicious Tags">You can view it by clicking on this sentence.</a></p>
<h3>Read the Rest of the MySQL Adventure Series!</h3>
<ul>
<li>
<a href="http://www.riverscapewebstudios.com/2011/01/designing-a-database/" title="Designing a Database">Designing a Database</a>
</li>
<li><a href="http://www.riverscapewebstudios.com/2011/01/data-extraction-operations/" title="Database Basics">Data Extraction Operations</a>
</li>
<li><a href="http://www.riverscapewebstudios.com/2011/01/database-basics/" title="Database Basics">Database Basics</a>
</li>
<li><a href="http://www.riverscapewebstudios.com/2011/01/a-brief-touch-on-sql/" title="A Brief Touch on SQL">A Brief Touch on SQL</a>
</li>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2011/01/getting-our-hands-dirty-with-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designing a Database</title>
		<link>http://www.riverscapewebstudios.com/2011/01/designing-a-database/</link>
		<comments>http://www.riverscapewebstudios.com/2011/01/designing-a-database/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 06:48:47 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=302</guid>
		<description><![CDATA[Just like with any design &#8211; whether graphical or in programming &#8211; you&#8217;ve really got to make yourself a roadmap to be successful. Databases aren&#8217;t that different. After all, just like with graphics design, they fall into information architecture. That is, the most successful databases are the ones which effectively organize your information. In this [...]]]></description>
			<content:encoded><![CDATA[<p>Just like with any design &#8211; whether graphical or in programming &#8211; you&#8217;ve really got to make yourself a roadmap to be successful.  Databases aren&#8217;t that different.  After all, just like with graphics design, they fall into information architecture.  That is, the most successful databases are the ones which effectively organize your information.</p>
<p>In this post, I will discuss relationships between information, as well as how to effectively normalize your database so that each table avoids redundancy between each datum. Before we begun, let&#8217;s define a few key terms! <span id="more-302"></span></p>
<h3>Vocabulary for the day! </h3>
<p><strong>E-R Model:</strong> That is, the entity-relationship model which shows the relationship between entities.  For example, M cats have relationship with N cities in which they live.  Let&#8217;s explore some terminology <em>specific</em> to the E-R model:</p>
<p><strong>One-to-One Relationship:</strong> This means that one datum is related to one datum, such as if Spunky were the only cat to live on First Street.</p>
<p><strong>One-to-Many Relationship:</strong> This relationship would mean that one entity is related to many other entities.  An example of this might be that Tom has 5 cats.  So, Tom > Owns > 5 Cats</p>
<p><strong>Many-to-Many Relationships:</strong> This means that the relationship involves more than one object relating to a group of other objects.  That is, Spunky and Boots both attend 5 different stores in his home town, so we can visualize this as Spunk + Spot > Visit > Petsland, Pets More, Pets Mall, Catland, KittenKorner.</p>
<h3>Normalization</h3>
<p><strong>Normalization</strong> is the process of tabulating data from our real-world problem into several simple tables for our relational database.  This is important because it allows the database to be managed much easier.  <a href="http://www.riverscapewebstudios.com/2011/01/data-extraction-operations/">In my previous post, I touched on labeling a <strong>primary key</strong> for our database.</a>  The primary key is our identifier that allows us to find specific data because it is unique to each field &#8211; no two fields will have the same primary key.</p>
<p>The unnormalized form of our table will be one in which items appear more than once, thus we would see quite a bit of redundancy.  Obviously, this makes it very difficult to manage the information.  I mean, if we wanted to change how many Domestic Shorthair cats were in our database, we would have to scan each line and row for any that have Domestic Shorthairs rather than go to one specific line and edit the field there.  This is why we have to organize the data! <img src='http://www.riverscapewebstudios.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>From our unnormailzed form, we generally move into what is referred to as the first normal form.  This is usually a simple, two-dimensional table resulting from a division of the original data into one or two tables (or more!)  But we aren&#8217;t done &#8211; this table will have to also be divided so that no items will appear more than once.</p>
<p>From the first normal form, we then would generally move into the second normal form.  This refers to a table in which we can now use our primary key to identify data.  That is, our unique key can determine the values in the other columns.  This is referred to being functionally dependent &#8211; meaning that the primary key value determines the values in other columns.  Part of a functionally dependent operation would the state of our data being transitively dependent &#8211; that is, if a value indirectly determines the values in other columns.  If we have any transitively dependent values, we will have to do another division of our data.</p>
<p>If our second form still has unrelated data still being determined by data which is not a primary key, we would then do a third division &#8211; which would be our third normal form.  Basically, we are wanting our values to be determined by one very unique value so that it is easy for us to find and edit information &#8211; the entire point of having a database in the first place.</p>
<p>So, by this point you should be able to understand that databases need to be simplified.  Even if you have many different tables, the major point is to have your data simplified so that only a few values are actually on it but that interlink into the <em>big picture</em>.</p>
<ul>
<li><a href="http://www.riverscapewebstudios.com/2011/01/data-extraction-operations/" title="Database Basics">Data Extraction Operations</a>
</li>
<li><a href="http://www.riverscapewebstudios.com/2011/01/database-basics/" title="Database Basics">Database Basics</a>
</li>
<li><a href="http://www.riverscapewebstudios.com/2011/01/a-brief-touch-on-sql/" title="A Brief Touch on SQL">A Brief Touch on SQL</a>
</li>
</li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.riverscapewebstudios.com%2F2011%2F01%2Fdesigning-a-database%2F&amp;title=Designing%20a%20Database"><img src="http://www.riverscapewebstudios.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2011/01/designing-a-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data Extraction Operations</title>
		<link>http://www.riverscapewebstudios.com/2011/01/data-extraction-operations/</link>
		<comments>http://www.riverscapewebstudios.com/2011/01/data-extraction-operations/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 20:00:54 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=294</guid>
		<description><![CDATA[So, what's the point of having a database if we can't play with the information on it?  That would be where our data extraction operations come from.  There are two categories of data extraction operators - <em>set</em> and <em>relational</em> operations.  Let's find out what these mean.]]></description>
			<content:encoded><![CDATA[<p>So, what&#8217;s the point of having a relational database if we can&#8217;t play with the information on it?  That would be where our data extraction operations come from.  There are two categories of data extraction operators &#8211; <em>set</em> and <em>relational</em> operations.  Let&#8217;s find out what these mean. <span id="more-294"></span></p>
<h3>Set Operations</h3>
<p>Set operations work on one or more rows (or records) to make a new row of records.  So, in a nutshell, what rows from the input appear in the output.  I think this will be clarified as we explore these different types of operations.</p>
<h4>Union</h4>
<p>A union is just what it sounds like.  It is a unification between two tables of information, merging rows from Table 1 to Table 2.  It extracts all of the rows in two tables and mixes them together &#8211; kind of like taking a bag of peanut M&#038;Ms and a bag of regular M&#038;Ms and throwing them into a bowl together (best snack to program with, really!)</p>
<h4>Difference</h4>
<p>Difference extracts rows from just one of the two tables.  Say that we only have orange M&#038;Ms of both plain and peanut varieties in one bag, while the other has all of the other colors but are only plain M&#038;Ms.  When we do a difference between these two bags, we would only be left with our plain orange M&#038;Ms.</p>
<h4>Intersection</h4>
<p>Intersection is very much like difference, except instead of keeping the plain, orange M&#038;Ms, we are throwing them out.  That is, any information which intersects between the two tables (is the same), will be thrown out.  As a result, we have the plain M&#038;Ms of all colors except orange, and all of the orange peanut M&#038;Ms in our bowl.</p>
<h4>Cartesian Product</h4>
<p>This method combines all of the rows in two tables.  That is, if you have 3 rows in one table that you want to combine with 3 rows in another table, it will make 9 rows total.  That&#8217;s a bit confusing, so let&#8217;s kind of look at that a bit.</p>
<p>Say we are organizing our M&#038;Ms by their count between bags in one table, and in another table we are organizing them by how much we like the specific colors.  You would thus see something like this (in table form):</p>
<p>001<br />
*Orange<br />
*32<br />
002<br />
*Blue<br />
*12<br />
003<br />
*Green<br />
*26</p>
<p>Our second table:<br />
Love<br />
*Peanut only<br />
Like<br />
*Plain only<br />
Sort-of like<br />
*Peanut only</p>
<p>This would make a super table that would look something like this:<br />
001<br />
*Orange<br />
*32<br />
*Love<br />
*Peanut Only<br />
001<br />
*Orange<br />
*32<br />
*Like<br />
*Plain only<br />
001<br />
*Orange<br />
*32<br />
*Sort-of like<br />
*Peanut only</p>
<p>That&#8217;s only one example (applying it only to the principle of the Orange M&#038;Ms), but you see that the ID gets repeated three times &#8211; the only information not repeated between the different rows is what is unique to Table 2.  I&#8217;d try making a spreadsheet to really look at the two tables and the end result to explore this operation.</p>
<h3>Relational Operations</h3>
<p>Relational operations are labeled as they are &#8211; they&#8217;re there to explore relational databases and extract their information.</p>
<h4>Projections</h4>
<p>Projections work vertically; that is, they extract the columns from the table &#8211; such as if we were trying to determine what colors of M&#038;Ms were in our bag of plain M&#038;Ms.</p>
<h4>Selection</h4>
<p>This is more on an individual level &#8211; it extracts a row or record from our table.  That is, it analyzes a specific color rather than <em>all</em> of the colors.</p>
<h4>Join</h4>
<p>This marries two tables together.  That is, if we have a table of our plain M&#038;Ms and a table of peanut M&#038;Ms, and we want to combine them according to the color of M&#038;M rather than its type in one bigger table, we would then use a join operation to make a new table containing all of our M&#038;Ms.  This utilizes our unique (that is, our identifier, or our <strong>primary key</strong>).  A <strong>foreign key</strong> will also be defined so that both tables have one unique identifier that is the same between both tables.</p>
<h4>Division</h4>
<p>This is very similar to intersection in that what it does is extract rows whose column values match those in the second table.  That is, if we had 13 reds and 13 blues in one bag, and 13 of the same colors in the other bag, then provided the other colors do not coincide as per their amounts, then we would receive a table of <em>just</em> our red and blue M&#038;Ms.</p>
<h4>Curious about learning with me?</h4>
<p>Follow my SQL series!  Here&#8217;s what you&#8217;ve missed so far:</p>
<ul>
<li><a href="http://www.riverscapewebstudios.com/2011/01/database-basics/" title="Database Basics">Database Basics</a>
</li>
<li><a href="http://www.riverscapewebstudios.com/2011/01/a-brief-touch-on-sql/" title="A Brief Touch on SQL">A Brief Touch on SQL</a>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2011/01/data-extraction-operations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Database Basics</title>
		<link>http://www.riverscapewebstudios.com/2011/01/database-basics/</link>
		<comments>http://www.riverscapewebstudios.com/2011/01/database-basics/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 08:16:05 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=292</guid>
		<description><![CDATA[So, in my previous post I went a little bit into SQL code.  Well, today I backtracked myself a little bit, and just looked into the basics databases.  I stopped by the bookstore, actually, and picked up a few books, including these two:]]></description>
			<content:encoded><![CDATA[<p>So, <a href="http://www.riverscapewebstudios.com/2011/01/a-brief-touch-on-sql/">in my previous post I went a little bit into SQL code</a>.  Well, today I backtracked myself a little bit, and just looked into the basics databases.  I stopped by the bookstore, actually, and picked up a few books, including these two:</p>
<p><a href="http://nostarch.com/mg_databases.htm">The Manga Guide to Databases</a><br />
<a href="http://www.amazon.com/Sams-Teach-Yourself-MySQL-Minutes/dp/0672328631">Sam&#8217;s Teach Yourself MySQL in 10 Minutes</a></p>
<p>The first one I&#8217;ve already begun to delve into, while the second has become more of a reference for some of the fun scripts that I&#8217;m already working with &#8211; that is, a basic Perl script that simply turns my CSV file into INSERT commands that I can simply feed into UNIX to add things to my table.</p>
<p>But anyways, let&#8217;s begin recording my findings, shall we? <img src='http://www.riverscapewebstudios.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   <span id="more-292"></span></p>
<h3>Some Vocabulary to Chew On</h3>
<p>Let&#8217;s first start with some vocabulary words.</p>
<p><strong>Record:</strong>  Think of records as the instances of an object that you&#8217;re working with; that is, if we&#8217;re recording specific cats in a database about cats, this would be one of our cats &#8211; let&#8217;s call him Spunky.  So, Spunky&#8217;s information would then be saved in one of these records.</p>
<p><strong>Field:</strong> Fields are the information saved in your records &#8211; information that each record has.  That is, for Spunky and our other cats, we might decide to store information about their breed, color, gender, age, ID, etc.</p>
<p><strong>Unique:</strong>  In order to properly manage the database, we need to be able to tell two records (cats) from one another, so we would assign them some kind of ID (kind of like how the government in the some countries might assign a social security number).  We can&#8217;t always identify our cats by their color, name, or age &#8211; we might at one point have another cat named Spunky, or have two cats that are the same age, etc.  That&#8217;s why we give them an ID &#8211; a unique, usually integer value which is different for each and every cat.</p>
<p><strong>NULL:</strong>  Null is exactly what any programmer type might guess what it is &#8211; it means it&#8217;s an empty value.  This is acceptable for most forms of data, other than the identifier or the unique.</p>
<h3>Database Types</h3>
<p>There are about three different database types which exist.  Here&#8217;s a brief rundown of each.</p>
<p><strong>Hierarchal:</strong> Ever see a family tree?  You can think of this type of database this way.  Parent A has children B and C, which <em>only</em> have parent A.  That is, the child data only has one parent, much like in a family tree.</p>
<p><strong>Network Data Model:</strong> In this, the child data can have multiple parents.  That is, child B has parents A and D, and child C has parents A and E, and parents A and F are also linked.  As you can see, this one is quite convoluted!</p>
<p>The downfall between these two archaic database types is that they aren&#8217;t especially flexible, and they can be very difficult to search and find information quickly.  This is because when the data is being manipulated or managed, the user has to keep in mind the exact location of where they are &#8211; that&#8217;s not especially fun.  That leads to our third model:</p>
<p><strong>Relational Data Model:</strong> Think of how you might normally organize information &#8211; a table.  Most data that we&#8217;d be working with will be information that is tabular, so why not make an information table?  It&#8217;s the easiest way for us to scan over information, and for us to organize it in an efficient manner and have it <em>relate.</em></p>
<h4>Curious about learning with me?</h4>
<p>Follow my SQL series!  Here&#8217;s what you&#8217;ve missed so far:</p>
<ul>
<li><a href="http://www.riverscapewebstudios.com/2011/01/a-brief-touch-on-sql/" title="A Brief Touch on SQL">A Brief Touch on SQL</a>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2011/01/database-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Brief Touch on SQL</title>
		<link>http://www.riverscapewebstudios.com/2011/01/a-brief-touch-on-sql/</link>
		<comments>http://www.riverscapewebstudios.com/2011/01/a-brief-touch-on-sql/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 08:58:39 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=287</guid>
		<description><![CDATA[So, recently I've been learning a little bit at a time about SQL, and I felt that it'd be best to record my findings and really chew on them by writing about them.  After all, I'm the kind of person who learns best by regurgitation.  Thus, in this post I will explore (and regurgitate) some basic ideas and commands behind SQL and database language, but don't expect to be programming a database at the end - that'll come in time.]]></description>
			<content:encoded><![CDATA[<p>So, recently I&#8217;ve been learning a little bit at a time about SQL, and I felt that it&#8217;d be best to record my findings and really chew on them by writing about them.  After all, I&#8217;m the kind of person who learns best by regurgitation.  Thus, in this post I will explore (and regurgitate) some basic ideas and commands behind SQL and database language, but don&#8217;t expect to be programming a database at the end &#8211; that&#8217;ll come in time.</p>
<p>Understand that this is after a few hours of inquiry &#8211; so this post is going to be very, very basic and in a very dried-out format.  I realize that my understanding of SQL is not especially in-depth just yet, but here I have compiled some readings I did, and general information that I found through various means.  Feel free to correct me, and I will edit the post accordingly (and my notes!) <span id="more-287"></span></p>
<h3>What is SQL?</h3>
<p>SQL is just that &#8211; the Structural Query Language.  In a nutshell, it&#8217;s what we use to manipulate data in a database.  This has two major sublanguages.</p>
<h4>Data Definition Language</h4>
<p>The first sublanguage would be the Data Definition Language, or DDL.  DDL is used to create or destroy databases and their objects.  You&#8217;ll be primarily using this when you&#8217;re setting up the database, or completely demolishing it.  Let&#8217;s explore some of it&#8217;s commands.</p>
<h5>CREATE</h5>
<p>This is the command you&#8217;re going to use to make your objects (or database).  More specifically, your syntax will look like this:</p>
<p><code>CREATE DATABASE pets</code></p>
<p>This creates a database named &#8220;pets.&#8221;  Very basic and straight-forward: the beauty of SQL.</p>
<p><code>CREATE TABLE pet_info</code></p>
<p>This is exactly what it looks like &#8211; it makes a table called &#8220;pet_info&#8221;.</p>
<h5>USE</h5>
<p>Use specifies where in the database you plan on working.  So, if you want to edit the database in your registry that affects, say, concerns your cats, you&#8217;d write</p>
<p><code>USE cats</code></p>
<p>Just make sure that you know where you&#8217;re at before you start coding &#8211; don&#8217;t be too timid to USE your commands, or you might remove something you didn&#8217;t want taken out!</p>
<h5>ALTER</h5>
<p>Imagine having to completely remove and recreate an entire table of information because you want to remove (or add) one specific field.  That sounds pretty daunting and time-consuming &#8211; that&#8217;s where the ALTER command comes in.  This allows you to remove or add certain values.  For example:</p>
<p><code>ALTER TABLE cats<br />
ADD breed text null</code></p>
<p>This adds the attribute of &#8220;breed&#8221; to your cats table, where &#8220;text&#8221; indicates that this field will contain &#8211; you guessed it &#8211; text.  Null tells the database that it&#8217;s okay for this field to be empty &#8211; which is fine for our current means.</p>
<h5>DROP</h5>
<p>Drop removes stuff from our database.  Just note that this takes out the entire object &#8211; it doesn&#8217;t allow us to remove certain information.  That is, say our theoretical database of pets decided we are no longer going to record the different species of goldfish.  Then we&#8217;d have to do this:</p>
<p><code>DROP TABLE goldfish</code></p>
<p>And then all our goldfish will be gone as a result.  Similar to that, we would remove our pets database completely this way:</p>
<p><code>DROP DATABASE pets</code></p>
<p>So, remember that this one is a pretty big drop &#8211; it gets rid of a LOT of stuff, rather than on a personal, individual level.  We want to use our other secondary language to edit things on an individual language!</p>
<h4>Data Manipulation Language</h4>
<p>This is our other secondary language in manipulating the information on our database.  You can kind of think of it on what we&#8217;re going to do to get stuff, and then make that stuff do what we want.  Let&#8217;s glance at some of these commands:</p>
<h5>INSERT</h5>
<p>This adds your records to an existing table.  For example:</p>
<p><code>INSERT INTO cat values('Spunky', 1234, 12, 'Siamese')</code></p>
<p>What does this tell us?  Let&#8217;s start a word at a time.  INSERT of course tells us that we&#8217;re adding this new record to the database.  INTO indicates that this is going to go into our table of cats.  The values indicated by <code>value()</code> corresponds to the attributes in the table we&#8217;re adding the record to, respectively to the order which they are defined.  That is, that the cat_name is Spunky, that his ID is 1234, that cat_age is 12, and that breed is Siamese.</p>
<h5>SELECT</h5>
<p>This command allows users to fetch certain information from a working database.  It has some variations.</p>
<p><code>SELECT *<br />
FROM cat</code></p>
<p>The asterisk means &#8220;give me everything&#8221; &#8211; it&#8217;s your wildcard.  So, this literally is telling it to grab everything from our cat database.</p>
<p><code>SELECT breed<br />
FROM cat</code></p>
<p>This specifies that the only attribute we want to grab is the breed attribute.</p>
<p><code>SELECT *<br />
FROM cat<br />
WHERE age > 12</code></p>
<p>This can be considered to be even more selective.  That is, it grabs all of our cat records &#8211; but only the ones where the value in age is greater than 12.</p>
<h5>UPDATE</h5>
<p>UPDATE is used to modify the information in a table in bulk, or on an individual level.  Let&#8217;s take a look.</p>
<p><code>UPDATE cat<br />
SET age = age + 1</code></p>
<p>So let&#8217;s say it&#8217;s been a year since we updated the ages of our cats; this updates that specific age attribute to be another year older.  But let&#8217;s say we&#8217;re going by birthdays:</p>
<p><code>UPDATE cat<br />
SET age = age + 1<br />
WHERE cat_id = 1234</code></p>
<p>It looks like Spunky had his birthday &#8211; so we just took his specific record, and bumped his age up a year.</p>
<h5>DELETE</h5>
<p>This is exactly what it looks like &#8211; this removes specific information on an individual level rather than removing the entire database or table.</p>
<p><code>DELETE FROM cat<br />
WHERE cat_id = 1234</code></p>
<p>I still have much to learn about databases, but for now I&#8217;m just getting my feet wet with SQL syntax.  From what I can see, it&#8217;s definitely very straight-forward.  Looking forward to updating tomorrow with more findings.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2011/01/a-brief-touch-on-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beware! The Clients</title>
		<link>http://www.riverscapewebstudios.com/2010/03/beware-the-clients/</link>
		<comments>http://www.riverscapewebstudios.com/2010/03/beware-the-clients/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 20:01:32 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[design firm]]></category>
		<category><![CDATA[freelance designer]]></category>
		<category><![CDATA[globalization]]></category>
		<category><![CDATA[web designer]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=275</guid>
		<description><![CDATA[As salespeople as well as designers, we often feel like we should be bowing to our client&#8217;s every need. We might especially do that in this economy, where it feels like a person has to scramble for every penny and pittance they can get. However, at times this can lead to wasting good time that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.riverscapewebstudios.com/wp-content/uploads/2010/03/beware.jpg"><img src="http://www.riverscapewebstudios.com/wp-content/uploads/2010/03/beware.jpg" alt="Slippery Slope clients can put a web designer on" title="beware" width="225" height="285" style="float:left;" /></a>  As salespeople as well as designers, we often feel like we should be bowing to our client&#8217;s every need.  We might especially do that in this economy, where it feels like a person has to scramble for every penny and pittance they can get.  However, at times this can lead to <strong>wasting good time that can be put towards development work</strong>.</p>
<p>But what are the warning signs of a bad client that&#8217;s going to put us in a slippery position?  Or maybe you&#8217;re really asking should I really go with this client, despite their demands? Let&#8217;s explore the types of problem clients, and how to explore them!  <span id="more-275"></span></p>
<h3>#1 Can I have my page for 1% of the market value, and have all the same cool things as everyone else?</h3>
<p>I HOPE you&#8217;re saying no to this ad <em>immediately.</em>  This client obviously has no respect for your work as a designer, to the point that they will not even budget enough for the project.  <em>And don&#8217;t expect them to.</em> <strong>Web design is a newer field</strong>; many people do not realize, respect, or take into consideration that most decent designers which can deliver what they want attended several years of college, are trying to make a living off of what they do as well, and aren&#8217;t just eccentric artists or twelve year old kids trying to make a quick buck.  We&#8217;re professionals.  We&#8217;re adults.  And the client who wants to undermine this isn&#8217;t going to respect that.</p>
<p>As an entrepreneur, you can, by all means, bid on this project, but I would suggest gauging the client&#8217;s reaction to your normal rate.  If they still feel that&#8217;s too high, then I would strongly suggest looking elsewhere.  Chances are, if they see the real market value of what you can offer, they&#8217;ll probably end up outsourcing the work &#8211; as unfortunate as that is.</p>
<h3>#2 I want you to send me a prototype&#8230; For nothing.</h3>
<p>I am of the belief that it is okay to provide the client with mockups before signing a contract provided they pay a decent portion of the projected cost of the project &#8211; of course, rough copies, not necessarily something that would be the final design, but enough to give them an idea of what you can deliver (or the alternative I usually pick, I provide them with links to sample designs I&#8217;ve done which fit their needs/desires).</p>
<p>If the client still wishes for you to provide them with a mockup, chances are they really just want a free design.  It&#8217;s <em>so <strong>easy</strong></em> to take that mockup you&#8217;ve presented them with, and then have a cheaper coder or designer come up with the final product, <em>while you get nothing in return</em>.  The rule of thumb is that if they aren&#8217;t willing to pay you at least 10-50% of the final cost of the product, then don&#8217;t expect them to stick around to pay the rest.</p>
<h3>#3 Why can&#8217;t you make me a full five-page site in a day?</h3>
<p>Yup, I&#8217;ve actually <em>had</em> a client like this, and I dropped them like they were hot.  If the client can&#8217;t respect that you have family and personal life obligations in addition to your freelance designer obligations, then they aren&#8217;t going to respect your opinion either in the rest of your interactions with them.  I equate this to web designer slavery; they expect you to work on a design over the weekend, rather than respecting the fact that you may prefer to work weekdays.</p>
<p>Furthermore, a tight deadline like this doesn&#8217;t even give enough respect for the design process.  <em><strong>Design is a process of critical thinking which takes time; great invention cannot happen in twenty-four hours.</strong></em>  As most great designers know, the best designs begin <em>off</em> of the computer, not in Illustrator or Photoshop.  I will also point out that this client probably procrastinated getting the work done &#8211; what else are they going to procrastinate?  Paying you for your hours of blood and sweat?</p>
<h3>#4 I don&#8217;t want you to take credit for this design.</h3>
<p>I&#8217;m wary of any client or business which tells me that I&#8217;m not allowed to take credit for a design, even if I have to put a disclaimer of &#8220;I did this design while working for Joe&#8217;s Company.&#8221;  I&#8217;m fine with putting a disclaimer, but if I&#8217;m not even allowed to show the design in my portfolio (providing free links), I grow suspicious of the intent of the client.  While I don&#8217;t mind the extra check, I still don&#8217;t appreciate plagiarism.  I generally put all of my time and effort into a design, and I appreciate it when that is respected.</p>
<p>Additionally, this gives the client a suspicious shadow when it comes to my interactions with them.  I believe that the basis of business interactions is trust; if I can&#8217;t trust my client because I&#8217;m worried they&#8217;re going to steal my work, then how can I trust them to pay me, or to not get me in trouble legally?</p>
<p>Now, please note, if there are other legitimate concerns with the client not wanting me to display the design and they can show me that these are legitimate concerns, then I&#8217;m fine with it.  But with no reason to support why they don&#8217;t want me to help promote their site or cause &#8211; that&#8217;s just fishy.</p>
<h3>#5 Hi, sorry it&#8217;s been a month since I responded to your email&#8230;</h3>
<p>While I&#8217;m understanding of clients which take a long time to respond to my initial quote for a project on the grounds that I&#8217;m sure they&#8217;re shopping around for the perfect designer for their project (that&#8217;s what I&#8217;d be doing!), I feel that all emails after that should be responded in a timely manner.  A week is fine, two weeks is pushing it a bit, three weeks is completely ridiculous. At least <em>tell</em> me what needs to happen next &#8211; tell me if you need time to discuss it with the other people at your company, or tell me if you need some time to think or will be going out of town.  This design is taking up <em>my</em> time, too.</p>
<p>Besides, what about other delays in the process &#8211; you know, like payment?  Considering that I don&#8217;t like to design for free, a delay in payment is well&#8230; bad.  Especially if I&#8217;m really counting on the check for my livelihood.</p>
<p>What&#8217;re your experiences with bad clients?  I&#8217;m sure I haven&#8217;t covered everything that slippery clients do &#8211; share your experiences! <img src='http://www.riverscapewebstudios.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.riverscapewebstudios.com%2F2010%2F03%2Fbeware-the-clients%2F&amp;title=Beware%21%20The%20Clients"><img src="http://www.riverscapewebstudios.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2010/03/beware-the-clients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why You Should Get a Droid</title>
		<link>http://www.riverscapewebstudios.com/2010/02/why-you-should-get-a-droid/</link>
		<comments>http://www.riverscapewebstudios.com/2010/02/why-you-should-get-a-droid/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 05:57:33 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Personal Development]]></category>
		<category><![CDATA[freelance designer]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=270</guid>
		<description><![CDATA[Today, I got my New Every 2 phone from Verizon. For the last two years after deciding to get a plan with Verizon, I have used the free Samsung phone that came for free at the time in which I purchased my plan. My little phone was okay aside from horrible sound and its inability [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.riverscapewebstudios.com/wp-content/uploads/2010/02/motodroid.jpg"><img src="http://www.riverscapewebstudios.com/wp-content/uploads/2010/02/motodroid.jpg" alt="Motorola Droid is perhaps the best phone I have found for web designers" title="motodroid" width="159" height="250" style="float:left;" /></a>Today, I got my New Every 2 phone from Verizon.  For the last two years after deciding to get a plan with Verizon, I have used the free Samsung phone that came for free at the time in which I purchased my plan.  My little phone was okay aside from horrible sound and its inability to properly recognize its voice, not to mention the occasional lost message and the occasional lost text.  All in all, though I tried to remain positive about its prospects, my old phone did not treat me properly.</p>
<p>I discovered this today whenever my fiance and I decided to purchase a twin set of Motorola Droids with the New Every 2 and Verizon&#8217;s current &#8220;Buy One get One Free&#8221; marketing campaign; the guy even threw in some accessories for 20% off.</p>
<p>At first I was very critical about smart phones and could not imagine that they actually had the impact on small business as they would, until I began to discover the worth of my Droid.<span id="more-270"></span></p>
<h3>Is this post Droid-specific?</h3>
<p>In a sense, yes, but in a sense no.  <strong>The only point I wish to stress is that freelance designers will find life much easier once they have acquired a smart phone of some sort for themselves.</strong> I chose a Droid phone because I prefer Verizon&#8217;s coverage, but one could always go designer and get an iPhone, or perhaps purchase one of many Blackberries or Palm Pres.  Any intelligent design will do, provided it offers simple tasks for email and web browsing.  However, this post is going to be written from the point of view from a person using a Droid.</p>
<h3>Point One: Email, email, email.</h3>
<p>I cannot stress how important it is to stay on top of emails, especially work-related emails (yes, personal emails are great, too, but this is a <em>work-centric</em> post.)  Sometimes, I might find myself being emailed by a client needing something urgent &#8211; someone somehow managed to bypass security and hack their server, or they wish to move their site to another server and need me to configure the site again.  Whatever the reason, the Droid (depending upon the model you get) allows you to manage around five email addresses, and you can customize your main email address to have a different ringtone from your others.  I chose to customize my personal email address to have a one ringtone while my business account has another one &#8211; it&#8217;s all a matter of preference.  And because you can have more than two accounts, this is great for freelancers who work more than one job or manage more than one site&#8217;s address; you can either have them all forwarded to one address, or set up one account for your day job and another for your freelance job, and then a third for personal.  <em>Cool!</em></p>
<h3>Point Two: Social Networking</h3>
<p>Networking is very, <em>very</em> important for freelancers, though I&#8217;m sure they know that.  Clients tend to be drawn to your business through networking, so why wouldn&#8217;t you want to be able to keep in touch with your network while on the go?  I&#8217;m personally using Facebook&#8217;s app as well as Twidroid (free version currently) in order to keep in contact with mine.</p>
<h3>Point Three: Web Browsing</h3>
<p>Yes, in many cases this can be better for wasting time while waiting for some appointment or for wasting time when one should be working, but I think that web browsing has its own place as well in productivity.  When I need to look something up on the go I can just grab my phone and look it up &#8211; this can be great for looking at my latest feeds on Reader (my way of keeping up with the design industry) or for my last point with social networking.</p>
<h3>Point Four: Contact</h3>
<p>A phone is supposed to be your way of keeping in contact with people, and I have found that your average phone may or may not have issues with it.  Note in my anecdote earlier how I stated that my original phone would &#8220;loose&#8221; voice mails or other messages.  This is usually because the technology for this phone is nowhere near as decent as the technology for some of the current smart phones, plus it has far fewer options &#8211; oh, not to mention the nasty hardware issues that can come with these phones.  In addition, many smartphones allow for IM &#8211; while this can be bad if one were to abuse it for personal uses, I have found IM to be a great tool in speaking with clients when it comes to current projects and quickly relaying ideas.  Perhaps its not as great as a phone call, but it has its place somewhere between your average call and an email.</p>
<h3>Point Five: WordPress</h3>
<p>I <em>say</em> WordPress, but what I really mean is your blog and site in general.  You may have it called to your attention that something is going on in your site and needs attention immediately, in which moment you can whip out your phone, pull up your site, and immediately see what needs to be done and speak to the appropriate people &#8211; all while finishing up in the grocery line at the local store.</p>
<p>Or, in my case, I found it to be worth it through WordPress&#8217;s blog application.  It allows you to update your blog as well as moderate comments, as well as a wealth of other things &#8211; definitely worth checking it out for either Droid or iPhone.</p>
<h3>However, danger! danger! danger!</h3>
<p>The only issue I can see with your average smart phone would lie in the use of the phone as a distraction tool through the use of personal accounts.  While the personal accounts can really be taken advantage of through the phone&#8217;s bells and whistles, I think that with a little bit of discipline, a smart phone can make your freelancing experience that much more efficient.</p>
<p>I held back from getting my own phone due to the restraints of the cost; most smart phones go for upwards of five hundred USD, a hefty price.  However, by taking advantage of special offers such as New Every Two or discounts offered through the signing of new contracts, you will find the price of the phone reduced dramatically &#8211; in addition, yes, the data plans can be expensive (I am paying $90 for Verizon&#8217;s personal use plan with 450 anytime minutes, unlimited texts, and unlimited email and web use), but they are very much worth.</p>
<p>So, if you are the type of freelancer who is constantly on the go with a busy small business, then I strongly advise the purchase of one of these phones, especially the Droid.  You will find that not only are these phones absolutely COOL!, they will definitely help you find that great value of keeping in touch with your network and freedom to go where you choose!</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.riverscapewebstudios.com%2F2010%2F02%2Fwhy-you-should-get-a-droid%2F&amp;title=Why%20You%20Should%20Get%20a%20Droid"><img src="http://www.riverscapewebstudios.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2010/02/why-you-should-get-a-droid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photoshop vs. Illustrator: Which Should I Use?</title>
		<link>http://www.riverscapewebstudios.com/2010/02/photoshop-vs-illustrator-which-should-i-use/</link>
		<comments>http://www.riverscapewebstudios.com/2010/02/photoshop-vs-illustrator-which-should-i-use/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 01:07:35 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[design education]]></category>
		<category><![CDATA[illustration]]></category>
		<category><![CDATA[web designer]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=268</guid>
		<description><![CDATA[Tools commonly referenced in &#8220;Designer Wanted&#8221; articles often include inDesign, Illustrator, and Photoshop. I&#8217;m going to take for granted that the reader already realizes the purpose of inDesign as a print media platform, and more narrowly focus on the use of Illustrator and Photoshop in design. By definition, Illustrator&#8217;s output files are vectors, meaning that [...]]]></description>
			<content:encoded><![CDATA[<p>Tools commonly referenced in &#8220;Designer Wanted&#8221; articles often include inDesign, Illustrator, and Photoshop.  I&#8217;m going to take for granted that the reader already realizes the purpose of inDesign as a print media platform, and more narrowly focus on the use of Illustrator and Photoshop in design.</p>
<p>By definition, Illustrator&#8217;s output files are vectors, meaning that they are saved differently than Photoshop&#8217;s.  When resized, they lose less of their value because they are saved as points and curves, whereas a Photoshop file would lose much of its value as its resolution became bigger as it would become more and more pixellated or &#8220;fuzzy&#8221;.  <a href="http://en.wikipedia.org/wiki/Vector_graphics" title="Vector graphics by Wikipedia">For more information (and probably a better definition of what vector artwork is), please view this page.</a></p>
<p>Of course, you can use any range of image editing software that you wish, whether GIMP or your choice of vector program, but as a designer I have found Adobe&#8217;s programs more intuitive and thus have continued to use them for years.  As such, I will focus on these two programs by name.<span id="more-268"></span></p>
<h3>I want to edit this great image of my family, and&#8230;</h3>
<p>Photoshop!  Images which involve photographs or other bitmap-type images are best edited in Photoshop.  Note the &#8220;photo&#8221; in Photoshop &#8211; originally, Photoshop was not created in order to do digital painting or create web graphics; it was originally for photographers to edit their work digitally.</p>
<h3>I want to create web graphics such as a logo.</h3>
<p>Logos are often resized several times &#8211; bigger for that banner, or made to be itty-bitty for that business card.  As such, they are a project for <strong>Illustrator.</strong>  Illustrator allows a large variety of tools for working with fonts and especially shapes &#8211; which certainly comes in handy for logo design or making shiny buttons for your contact form!</p>
<h3>I want to design the wireframe and mockup for a site before coding it.</h3>
<p>Admittedly, there was one point in time in which I used Photoshop in order to create web design mockups.  However, as time went by, I began to migrate to <strong>Illustrator.</strong>  I found that I could vector out the graphics for the main site on the side, and then add them to the design as I went.  Additionally, I found that Illustrator&#8217;s various tools made the process intuitive whereas Photoshop&#8217;s added more and more time to the wireframe process.  So, I am definitely going to recommend Illustrator for this.</p>
<h3>I want to do digital illustration.</h3>
<p>Depending upon the type of illustration you do, this question can be for either program.  If you wish for it to have a more &#8220;web 2.0&#8243; look or a cartoony look, I would recommend Illustrator, whereas if you wish to go for a realistic and painted look, I&#8217;m going to suggest either Photoshop or another digital painting program.</p>
<p>This post is a brief overview of the features of both programs, and I purposely chose to not go into great detail.  Instead, the point is to clarify where each program should be used by newer designers.  For more information on the importance of Illustrator in design, <a href="http://buildingwithpixels.blogspot.com/2008/07/why-photoshop-can-be-bad-thing-for.html" title="Photoshop can be a bad thing">please view this post</a>.</p>
<p>Many newer designers are constantly complaining to me that they don&#8217;t understand Illustrator or find it difficult to adapt to.  I understand this complaint; there is certainly a learning curve to each of Adobe&#8217;s programs, but I think that the quality of a designer&#8217;s work will definitely skyrocket once they begin to learn which program works for which project.</p>
<p>Raster-based graphics are not meant to go in the Web, unless of course they are of photograph quality.  Likewise, having an inflexible canvas is helpful when designing beyond the &#8220;fold&#8221; &#8211; that is, designing more than just the initial screen of a design.  Additionally, I&#8217;ve found the flexible canvas of Illustrator to be helpful in designing entire sites.  With multiple artboards (CS4 only), I&#8217;m able to select one artboard or another and design on them in order to keep every single page of a design in one single file or document.</p>
<p>Meaning, Photoshop certainly has its place in the digital world, but Illustrator, I think, has a much stronger place in website media <img src='http://www.riverscapewebstudios.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.riverscapewebstudios.com%2F2010%2F02%2Fphotoshop-vs-illustrator-which-should-i-use%2F&amp;title=Photoshop%20vs.%20Illustrator%3A%20Which%20Should%20I%20Use%3F"><img src="http://www.riverscapewebstudios.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2010/02/photoshop-vs-illustrator-which-should-i-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Become Great at Almost Anything</title>
		<link>http://www.riverscapewebstudios.com/2010/02/how-to-become-great-at-almost-anything/</link>
		<comments>http://www.riverscapewebstudios.com/2010/02/how-to-become-great-at-almost-anything/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 21:59:58 +0000</pubDate>
		<dc:creator>Kim H</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Personal Development]]></category>
		<category><![CDATA[be interesting]]></category>
		<category><![CDATA[design education]]></category>
		<category><![CDATA[freelance designer]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://www.riverscapewebstudios.com/?p=263</guid>
		<description><![CDATA[Most of what you&#8217;re about to read may or may not come off as &#8220;common sense.&#8221; If you feel this way, then look at your life. Are you applying these steps to your life? Do you feel you need a set path for becoming a great designer? Then keep reading. The rule of thumb has [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.riverscapewebstudios.com/wp-content/uploads/2010/02/practice.jpg"><img src="http://www.riverscapewebstudios.com/wp-content/uploads/2010/02/practice.jpg" alt="practicing design makes a great web designer" title="practice" width="300" height="200" style="float:left;" /></a> Most of what you&#8217;re about to read may or may not come off as &#8220;common sense.&#8221; If you feel this way, then look at your life.  <em>Are you applying these steps to your life?  Do you feel you need a set path for becoming a <strong>great designer</strong>?</em>  Then keep reading.</p>
<p>The rule of thumb has always been &#8220;practice makes perfect.&#8221;  Then we&#8217;re told that we will never be &#8220;perfect,&#8221; but our imperfections are our true perfections &#8211; we just need to find a way to bring out our best.  <span id="more-263"></span></p>
<h3>Stage One: Unconscious Incompetence</h3>
<p>Before a person begins to learn a new skill, whether it is design or mathematics, or really anything, they don&#8217;t realize that they really aren&#8217;t that great at it.  I&#8217;m not going to elaborate too much on this step, mostly because the only way to get past this stage into the next is to realize one&#8217;s incompetence.</p>
<h3>Stage Two: Conscious Incompetence</h3>
<p>This is where the person at Stage One was hit by a jolt and realized that they really aren&#8217;t that great at this skill, and need to improve.  So what can they do to improve?</p>
<ul>
<li><strong>Practice!</strong> This seems like a no-brainer, but the more a person performs a skill or a set series of tasks, the better they get at them.  For a designer, I would say practice making sites for mock clients, and for a developer I&#8217;d recommend creating applications for various things you might use during your daily life.  In other disciplines, practicing for a while every day is always the best way.</p>
<li><strong>Look at what everyone else is doing.</strong> This is especially important for designers and developers.  Young designers are often told to &#8220;copy&#8221; other designs; this isn&#8217;t necessarily a &#8220;bad&#8221; thing to do, as it takes on a form of practice. <em><strong>The more you make great designs, whether or not they are yours, the more natural great design will come to you.</strong></em>  Developers would see this as taking other programs written by other people, and dissecting them; looking at how example code is written, and writing and rewriting it themselves.  In other disciplines, taking lessons or looking at other examples is the way to go.</li>
<li><strong>Read books</strong> Books are great things.  Not ebooks, and not online tutorials &#8211; actual <em>books</em>.  Being able to highlight certain ideas helps the brain remember them (especially if you use more than one color of highlighter).  If you don&#8217;t have the money to buy a full library of new books for every skill you wish to pick up, then definitely buy a spiral notebook and take notes.  Read over your notes before each sitting, highlighting in different colors different terms and concepts and rules.  <em>Taking notes and making annotations and highlighting are proven methods for learning and remembering new things.</em></li>
</ul>
<h3>Stage Three: Conscious Competence</h3>
<p>At this step, you aren&#8217;t quite there, but you&#8217;re beginning to really get the hang of your new skill.  You have worked to improve this skill, and are consciously working on your performance.  It&#8217;s not quite natural to you yet, but you still do a great job.</p>
<p>At this point, definitely keep working on the parts outlined in the list on Stage Two, but go beyond copying other people&#8217;s examples.  In order to really get past this step into really knowing your new skill, you need to push the boundaries.  How can you make this technique better?  How can you improve this code or illustration here?  Take more time on your practice examples or work, and push it to see how you can make it better.  <strong><em>Remember that you can&#8217;t improve if you don&#8217;t challenge yourself!</em></strong></p>
<h3>Stage Four: Unconscious Competence</h3>
<p>Your skill comes naturally at this point.  Every time you do it, it seems almost effortless.  You&#8217;re also able to integrate the skill you learned into other things; you apply the principals of good development or great design in what you do with your life (this really isn&#8217;t as crazy as it sounds).</p>
<p>This is the final stage, though remember that there are always ways in which to improve.  Always keep looking for other points of view on any problem.  <em><strong>There are always three or more sides to every coin!</strong></em></p>
<h3>Some Other Tips</h3>
<ul>
<li><strong>Get plenty of sleep.</strong> This is very important.  <strong>Your memory retention decreases for every hour of sleep you lack.</strong> I always shoot for 8-10 hours of sleep at night; daytime sleep only counts for half!  (That is, keep in mind that going to bed at three in the morning and waking up at noon is not restful sleep, and therefore does not count as nine hours of rest.)</li>
<li><strong>Read blogs.</strong> Often times, a blog will have recommendations to other texts or books for you to read.  If they don&#8217;t, you can always get in touch with the blog&#8217;s writer through comments or email (if that is provided) requesting recommendations for further reading.  Not only that, but they may offer new insights or perspectives, or may simplify an idea you are having a hard time &#8211; not to mention networking!</li>
<li><strong>Network with other people interested in  your new skill.</strong> This kind of goes hand-in-hand with the blog; through reading blogs and forums, you can network with people interested in the same thing, and also grow off of their advice.  Also, many people recommend that you partner with another person as interested as you are in a new skill.  For example, <strong>people trying to exercise more are often urged to have an exercise partner; this allows them to make a new friend which keeps them motivated in their exercise program, and gives a person another person they can turn to while working on a difficult problem.</strong></li>
</ul>
<p>So, go forth, and learn new skills!  This list is very generalized to match most disciplines, but I have found these steps to be an excellent program for learning new things.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.riverscapewebstudios.com%2F2010%2F02%2Fhow-to-become-great-at-almost-anything%2F&amp;title=How%20To%20Become%20Great%20at%20Almost%20Anything"><img src="http://www.riverscapewebstudios.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.riverscapewebstudios.com/2010/02/how-to-become-great-at-almost-anything/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
