<?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>Cobwebs Consulting</title>
	<atom:link href="http://www.cobwebsconsulting.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cobwebsconsulting.com</link>
	<description>The website of Cobwebs Consulting LLC</description>
	<lastBuildDate>Mon, 28 Nov 2011 16:00:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Things to learn in Javascript</title>
		<link>http://www.cobwebsconsulting.com/blog/2011/11/28/things-to-learn-in-javascript/</link>
		<comments>http://www.cobwebsconsulting.com/blog/2011/11/28/things-to-learn-in-javascript/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 16:00:54 +0000</pubDate>
		<dc:creator>Eryan Cobham</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.cobwebsconsulting.com/?p=75</guid>
		<description><![CDATA[I came across this post that has some suggestions about how to judge your proficiency in Javascript. I&#8217;m always looking for ways to find out what I don&#8217;t even know that I don&#8217;t know, so I found it helpful as a checklist to start working my way through. It seems like I know several things [...]]]></description>
			<content:encoded><![CDATA[<p>I came across this post that has some <a href="http://www.w2lessons.com/2011/04/you-dont-know-javascript.html">suggestions about how to judge your proficiency in Javascript</a>.  I&#8217;m always looking for ways to find out what I don&#8217;t even know that I don&#8217;t know, so I found it helpful as a checklist to start working my way through. It seems like I know several things at each level, and I figure that&#8217;s probably how most people are. </p>
<blockquote>
<h3>A basic level of understanding for JavaScript includes:</h3>
<ul>
<li>Knowing the syntax of basic programming tools such as loops, if statements, try/catch, etc.</li>
<li>Understanding function definitions including the various ways they can be defined and assigned, as well as anonymous functions</li>
<li>Understanding basic scope principles, global (window) scope versus object scope (closures excluded)</li>
<li>Understanding the role of context and the use of the &#8216;this&#8217; variable</li>
<li>Understanding the different ways to instantiate and declare an object as well as functions as objects</li>
<li>Understanding JavaScript comparison operators like &#8216;<', '>&#8216;, &#8216;==&#8217;, &#8216;===&#8217;,  what is falsy, and how object and string comparison works, as well as casting</li>
<li>Array indexing for object attributes and functions and how this differs from actual arrays (object literals vs. array literals)</li>
</ul>
<h3>An intermediate level of understanding includes:</h3>
<ul>
<li>Understanding timers, how they work, and when/how they can be useful as well as asynchronous method execution</li>
<li>In depth knowledge on callbacks and function application such as the &#8216;call&#8217; and &#8216;apply&#8217; methods for controlling context and function argument passing</li>
<li>Understanding JSON notation and the &#8216;eval&#8217; function</li>
<li>Understanding closures, how they affect the performance of your code, and how they can be used to create private variables, along with the lovely (function(){})() call</li>
<li>AJAX and object serialization</li>
</ul>
<h3>An advanced level of understanding includes:</h3>
<ul>
<li>Understanding a methods &#8216;arguments&#8217; variable and how it can be used to overload functions through arguments.length and make recursive calls through arguments.callee. It should be noted that use of arguments.callee can be dangerous as ECMAScript 5 Strict Mode doesn&#8217;t support it, although both jQuery (up to 1.4) and Dojo take advantage of it. </li>
<li>Advanced closures such as self-memoizing functions, currying, and partially applied functions</li>
<li>Function and html prototyping, the prototype chain, and how to use base JavaScript objects and functions (e.g. Array) to minimize coding</li>
<li>Object type and the use of instanceof and typeof</li>
<li>Regular expressions and expression compiling</li>
<li>With statements and why you shouldn&#8217;t use them</li>
<li>The most difficult part of all, knowing how to tie all these tools together into clean, robust, fast, maintainable, and cross browser compatible code. </li>
</ul>
<p>-<a href="http://www.w2lessons.com/2011/04/you-dont-know-javascript.html">Michael Woloszynowicz</a></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.cobwebsconsulting.com/blog/2011/11/28/things-to-learn-in-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The LESS Textmate Bundle</title>
		<link>http://www.cobwebsconsulting.com/blog/2011/10/10/the-less-textmate-bundle/</link>
		<comments>http://www.cobwebsconsulting.com/blog/2011/10/10/the-less-textmate-bundle/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 15:31:03 +0000</pubDate>
		<dc:creator>Eryan Cobham</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[shell scripts]]></category>
		<category><![CDATA[stylesheets]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://www.cobwebsconsulting.com/?p=72</guid>
		<description><![CDATA[I&#8217;ve been using LESS on a project the past month or so as a better way to organize my stylesheets (I&#8217;ve since switch to Sass, for reasons I don&#8217;t need to get into here, but LESS is good and accomplishes the same purpose). There&#8217;s a LESS package for node.js that installs a command line tool [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://lesscss.org/" title="LESS – The Dynamic Stylesheet Language">LESS</a> on a project the past month or so as a better way to organize my stylesheets (I&#8217;ve since switch to <a href="http://sass-lang.com/" title="Sass – Syntactically Awesome Stylesheets">Sass</a>, for reasons I don&#8217;t need to get into here, but LESS is good and accomplishes the same purpose). There&#8217;s a <a href="http://lesscss.org/#-server-side-usage">LESS package for node.js</a> that installs a command line tool you can use to convert the files, and also a <a href="http://incident57.com/less/" title="LESS.app for Mac OS X">LESS Mac App</a> that will watch a directory and convert any .less files in there to CSS any time they get saved. Very handy.</p>
<p>I also recently started using <a href="http://macromates.com/" title="TextMate – The Missing Editor for Mac OS X">TextMate</a> for a lot of my development work, and I needed it to do the syntax highlighting for LESS, so I found this <a href="https://github.com/appden/less.tmbundle" title="LESS TextMate Bundle on Github">LESS TextMate Bundle on Github</a> that does the highlighting, but also has a nice built-in command that automatically converts the .less file you&#8217;re working on every time you save it. Unfortunately the bundle is really out of date (I think the last commit was from mid-2010 or so), so that save command didn&#8217;t work anymore. Since the command is just a script that gets run when you hit Command-S, and I thought it would come in handy, I decided to just open up the bundle and fix it myself. </p>
<p>You can download and use <a href="https://github.com/littlelazer/less.tmbundle" title="littlelazer's fork of the LESS TextMate bundle on Github">my modified TextMate LESS Bundle on Github</a>. It requires you to have the LESS node package installed, and it just converts the .less file into an identically named .css file in the same folder. I like it means I don&#8217;t need to have Less.app running, and more free memory is always a good thing. Hopefully, you&#8217;ll find it useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cobwebsconsulting.com/blog/2011/10/10/the-less-textmate-bundle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Console.log weirdness</title>
		<link>http://www.cobwebsconsulting.com/blog/2011/09/14/console-log-weirdness/</link>
		<comments>http://www.cobwebsconsulting.com/blog/2011/09/14/console-log-weirdness/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 14:45:51 +0000</pubDate>
		<dc:creator>Eryan Cobham</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.cobwebsconsulting.com/?p=65</guid>
		<description><![CDATA[I generally use the latest version of Safari or Webkit for my debugging, falling back to Firefox/Firebug for certain tasks that Safari doesn&#8217;t handle well. I was working on doing a custom sort function for some javascript objects that I&#8217;ll be creating in a project that I&#8217;m working on and I couldn&#8217;t figure out why [...]]]></description>
			<content:encoded><![CDATA[<p>I generally use the latest version of Safari or Webkit for my debugging, falling back to Firefox/Firebug for certain tasks that Safari doesn&#8217;t handle well. I was working on doing a custom sort function for some javascript objects that I&#8217;ll be creating in a project that I&#8217;m working on and I couldn&#8217;t figure out why it wasn&#8217;t working the way I expected. <a href="https://github.com/littlelazer/console-test" title="Github repo for the console teest">I created a test page</a> so that I could see exactly what was going on.</p>
<p>As you can see, I have the three sorting functions there. Then an array literal that contains a few object literals with some common keys that I&#8217;ll be sorting by. The output to the console is where the action is though. When I was looking it in Safari, the output was exactly the same in for all of the console.log statements. No matter what the sort function, the array of objects was always output in the same order. But when I looked at it in Firebug, the sorting functions were doing exactly as expected. Has anyone ever come across this behavior before? Is there something I&#8217;m missing? <a href="https://twitter.com/littlelazer">Let me know on twitter</a></p>
<p><strongUpdate:</strong> <a href="http://techblog.appnexus.com/2011/webkit-chrome-safari-console-log-bug/">It looks like I&#8217;m definitely not the first one to notice this.</a> Guess I should look for the bug someone may have filed about this issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cobwebsconsulting.com/blog/2011/09/14/console-log-weirdness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My first foray into Github</title>
		<link>http://www.cobwebsconsulting.com/blog/2011/06/19/my-first-foray-into-github/</link>
		<comments>http://www.cobwebsconsulting.com/blog/2011/06/19/my-first-foray-into-github/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 01:56:30 +0000</pubDate>
		<dc:creator>Eryan Cobham</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[MAMP]]></category>
		<category><![CDATA[shell scripts]]></category>
		<category><![CDATA[virtual hosts]]></category>

		<guid isPermaLink="false">http://www.cobwebsconsulting.com/?p=51</guid>
		<description><![CDATA[I just posted my first project on Github yesterday. Calling it a “project” is a bit of a stretch, actually. A few weeks ago I was getting a little bit annoyed about the way all my development projects were organized. I use MAMP for local development, so I had a folder at ~/Sites (my root [...]]]></description>
			<content:encoded><![CDATA[<p>I just posted <a href="https://github.com/littlelazer/addHostname" title="addHostname project on Github">my first project on Github</a> yesterday. Calling it a “project” is a bit of a stretch, actually. A few weeks ago I was getting a little bit annoyed about the way all my development projects were organized. I use <a href="http://www.mamp.info" title="MAMP: Mac, Apache, MySQL, PHP">MAMP</a> for local development, so I had a folder at ~/Sites (my root Directory for MAMP) with a bunch of subfolders in it for all the sites in various stages. Obviously this isn’t ideal, since it then requires adjusting quite a few settings once the sites go live. </p>
<p>So while I was trying to figure out a way that would allow me to organize my projects independently of what MAMP requires, I came across an <a href="http://www.amtmstudios.com/2011/01/mamp-apache-and-multiple-virtual-hosts/" title="MAMP: Apache and Multiple Virtual Hosts">article about using Virtual Hosts in MAMP</a>. That essentially solved my problem, so that now I can put the root folder for each project wherever I want and just use *.local in my browser.</p>
<p>Of course at that point I start thinking that, since this is something I’ll likely be using pretty often, I should probably find a way to automate it. You know what that means? That’s right, <strong>Shell Scripting!</strong> I probably haven’t even tried to touch a shell script in at least 10 years, so this one took me a few hours. It could definitely use some more love, but since it’s already working for me, I may not touch it much, for fear that it will blow up. Right now it takes the domain name (without the .local part) and the file path to the root directory of the site, it’ll back up the /etc/hosts and the MAMP httpd.conf files first before writing to them, and make the necessary additions.</p>
<p>I figured I’d put it up on Github just in case someone else may find it useful. Of course YMMV, since you’ll need to modify a few parts to run on your own system. You’ll also need to use sudo, since root access is required to make changes to /etc/hosts/. I saved it into /usr/local/bin because that just seemed the simplest way to go. Enjoy, suggest improvements, and please let me know if it works for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cobwebsconsulting.com/blog/2011/06/19/my-first-foray-into-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

