<?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>visual77 &#187; javascript</title>
	<atom:link href="http://visual77.com/blog/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://visual77.com</link>
	<description>Ramblings from Steve Phillips</description>
	<lastBuildDate>Sat, 10 Sep 2011 21:19:51 +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>Drupal Statepicker Module</title>
		<link>http://visual77.com/blog/2011/08/drupal-statepicker-module/</link>
		<comments>http://visual77.com/blog/2011/08/drupal-statepicker-module/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 21:57:49 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[statepicker]]></category>

		<guid isPermaLink="false">http://visual77.com/?p=701</guid>
		<description><![CDATA[I&#8217;ve spent the past few months working heavily with Drupal, rebuilding my company&#8217;s primary site on it. While doing this, I came to an interesting issue that involved creating a module that I think the Drupal community at large could use &#8211; a new form item type for choose a state, with a full country [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>I&#8217;ve spent the past few months working heavily with Drupal, rebuilding my company&#8217;s primary site on it. While doing this, I came to an interesting issue that involved creating a module that I think the Drupal community at large could use &#8211; a new form item type for choose a state, with a full country list as well. To solve this issue, I created the statepicker module, which is currently hosted on Drupal.org as a sandbox project, but I hope to have it upgraded to full project status shortly.</p>
<p>Statepicker creates a new field type, called &#8216;statepicker&#8217;, that creates a pair of dropdown menus in the form &#8211; a state dropdown and a country dropdown. When the country dropdown is changed, an AJAX call refreshes the state list to show the states from the current country. I&#8217;ve also created an administration panel that lets an admin edit the state list.</p>
<p>You can download the module from the Drupal.org site, currently only through the repository viewer.</p>
<p>http://drupal.org/sandbox/visual77/1258930</p>
<div class="shr-publisher-701"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2011/08/drupal-statepicker-module/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Liquid Browser Extension</title>
		<link>http://visual77.com/blog/2011/04/team-liquid-browser-extension/</link>
		<comments>http://visual77.com/blog/2011/04/team-liquid-browser-extension/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 23:37:28 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[starcraft]]></category>
		<category><![CDATA[teamliquid]]></category>

		<guid isPermaLink="false">http://visual77.com/blog/?p=674</guid>
		<description><![CDATA[Lately I&#8217;ve been thinking about writing a browser extension for my beloved teamliquid.net, which is my main source for all things StarCraft. I&#8217;ve already created a set of Greasemonkey scripts specifically for Team Liquid,  but that was before I learned how to write a proper browser extension. After writing Zearch for Firefox and Chrome, I [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>Lately I&#8217;ve been thinking about writing a browser extension for my beloved <a title="Team Liquid" href="http://teamliquid.net" target="_blank">teamliquid.net</a>, which is my main source for all things StarCraft. I&#8217;ve already created a <a title="Team Liquid Greasemonkey Scripts" href="http://www.teamliquid.net/forum/viewmessage.php?topic_id=197313" target="_blank">set of Greasemonkey scripts</a> specifically for Team Liquid,  but that was before I learned how to write a proper browser extension. After writing Zearch for Firefox and Chrome, I feel a lot more confident in cutting Greasemonkey out of the equation and going straight for a proper Team Liquid extension.</p>
<p>As far as desired functionality goes, it&#8217;s a given that the two existing scripts will be integrated. Although, I really should fix the banned user script first&#8230; that only seems to work for me about half of the time. In addition to the sidebar updater and banned user linking, I will add some functionality for the stream list, at the recommendation of my dear friend Will. I will allow customizing of the featured streams list, and sorting by race.</p>
<p>In order to do this, however, I need to figure out how to set and retrieve configuration options in both Chrome and Firefox. Unlike Zearch, this tool will need some long term data storage. Not only will I need to save user preferences for featured streams, but I&#8217;d also like to allow for some configuration, like which features to enable / disable and other miscellaneous settings.</p>
<div class="shr-publisher-674"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2011/04/team-liquid-browser-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What have I been up to?</title>
		<link>http://visual77.com/blog/2011/04/what-have-i-been-up-to/</link>
		<comments>http://visual77.com/blog/2011/04/what-have-i-been-up-to/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 16:48:16 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[zearch]]></category>

		<guid isPermaLink="false">http://visual77.com/blog/?p=661</guid>
		<description><![CDATA[I posted a few days ago on my entry to the Zappos API Developer Challenge, and that was my first post in 6 months. I haven&#8217;t been as consistent with my updates as I once was, but it&#8217;s certainly not for lack of things to ramble on about. I&#8217;ve actually been very busy. I&#8217;ve spent [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>I posted a few days ago on my entry to the <a href="http://developer.zappos.com/blog/first-zappos-developer-contest" target="_blank">Zappos API Developer Challenge</a>, and that was my first post in 6 months. I haven&#8217;t been as consistent with my updates as I once was, but it&#8217;s certainly not for lack of things to ramble on about. I&#8217;ve actually been very busy. I&#8217;ve spent a lot of time reading books about some cool concepts that are doing wonders for advancing myself. In particular, I&#8217;ve been reading <em>Design Patterns: Elements of Reusable Object-Oriented Software</em>, <em>JavaScript Patterns</em> and <em>Refactoring: Improving the Design of Existing Code</em>. So I guess I haven&#8217;t been writing much because everything I&#8217;ve been thinking about has already been documented by someone else who explained it far better than I could at the moment.</p>
<p>I&#8217;ve also been spending a lot of building my new robot, Lil&#8217; Lady Murderpants, and working on my <a href="http://visual77.com/zappos/zearch/" target="_blank">Zearch</a> browser extension. Even though the Zappos API Developer Challenge is complete and my entry has already been submitted, I still want to keep working on it and making it even more amazing. There are some features to be implemented, some refactoring to be done and some styling to pretty it up. I&#8217;ll end up doing a more thorough article on the direction that Zearch will be taking in comings months, so I won&#8217;t go into too much details here.</p>
<p>As far as Lil&#8217; Lady Murderpants, that will also be elaborated upon further down the road. For starters, though, she&#8217;s an adorable little ball of joy that I made with my girlfriend over the weekend. We began by following the great tutorial over on <a href="http://letsmakerobots.com/start" target="_blank">Let&#8217;s Make Robots</a>. Right now, there are issues with her eyes. The range finding sensors are not reporting data back properly. Once we get that resolved, we can have her run some meaningful software. It&#8217;s all programmed in BASIC, so i&#8217;m having to learn a new language as part of this project, but learning new things is one of my favorite things to do.</p>
<div class="shr-publisher-661"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2011/04/what-have-i-been-up-to/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zearch! My entry to the Zappos API Developer Challenge</title>
		<link>http://visual77.com/blog/2011/03/zearch-my-entry-to-the-zappos-api-developer-challenge/</link>
		<comments>http://visual77.com/blog/2011/03/zearch-my-entry-to-the-zappos-api-developer-challenge/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 16:52:59 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[zearch]]></category>

		<guid isPermaLink="false">http://visual77.com/blog/?p=655</guid>
		<description><![CDATA[I just finished work on Zearch, a browser extension that currently works for Firefox and Chrome. This project is my entry to the first Zappos API Developer Challenge. To say it&#8217;s been a learning experience is an understatement. This is my first time writing an extension for either Firefox or Chrome, so I went into [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>I just finished work on <a href="http://visual77.com/zappos/zearch/">Zearch</a>, a browser extension that currently works for Firefox and Chrome. This project is my entry to the first <a href="http://developer.zappos.com/blog/first-zappos-developer-contest" target="_blank">Zappos API Developer Challenge</a>. To say it&#8217;s been a learning experience is an understatement. This is my first time writing an extension for either Firefox or Chrome, so I went into this possibly too careful in some ways, maybe not careful enough in ways I have yet to realize.</p>
<p>I started on the Firefox extension, but from the very beginning I knew I wanted to have this work on multiple browsers. In retrospect, I don&#8217;t really know why I went for Firefox first. I prefer Chrome as both a web browser and a development platform. Regardless, I paid careful attention to making sure my code was split up properly.</p>
<p>My strategy ended up with splitting the files into a few key areas. I really had no previous experience to base these splits on, it was more just a feeling that this would allow me the greatest flexibility for porting to another browser.</p>
<p><strong>zearch.js is the core JavaScript file</strong>. This file would ideally remain the same on every browser. It contains the guts of the operation and is in control of the majority of the functionality.</p>
<p><strong>utils.js is browser specific actions. </strong>This file can change from browser to browser, although some commands may not. This is a set of utilities that zearch.js will use to turn on and off elements, create menus and other functions that are likely to differ significantly in their implementation.</p>
<p><strong>bindings.js binds page elements to Zearch functions. </strong>This also will change from browser to browser. I could have integrated it in with utils for that reason, but while writing the code, there seemed to be such a sharp disconnect between utils.js and bindings.js that I felt it necessary to clearly separate the two.</p>
<p><strong>zearch.html / zearch.xul define the page elements. </strong>Each browser had a very different way to define what shows up on the page, but that&#8217;s okay. I expected some things to vary wildly, and the structure of bindings.js and zearch.js made this very easy to adapt to.</p>
<p>When it came time to porting from Firefox to Chrome, this structure seemed to work out quite well. I&#8217;d like to end up porting it over to another browser (Opera is probably next on the list), and hopefully I can still use the same structure.</p>
<p>This is my first extension, but won&#8217;t be my last. I had a lot of fun writing it. I&#8217;m curious as to how long this structure will hold up before issues are brought to my attention regarding either flaws with this or better ways to do it.</p>
<div class="shr-publisher-655"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2011/03/zearch-my-entry-to-the-zappos-api-developer-challenge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build 20100609</title>
		<link>http://visual77.com/blog/2010/06/build-20100609/</link>
		<comments>http://visual77.com/blog/2010/06/build-20100609/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 04:40:13 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[gaming]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sc2build]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[starcraft]]></category>

		<guid isPermaLink="false">http://visual77.com/blog/?p=622</guid>
		<description><![CDATA[The newest iteration in my StarCraft II Build Order Calculator is a minimalistic approach, in comparison to the previous builds. Unlike the last few ambitious builds that attempted time and resource calculation, this is an attempt at the absolute basics. It is also my first build calculator that is somewhat usable right at the moment, [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>The <a href="http://sc2build.com/id/20100609/">newest iteration</a> in my <a href="http://visual77.com/blog/category/sc2build">StarCraft II Build Order Calculator</a> is a minimalistic approach, in comparison to the previous builds. Unlike the last few ambitious builds that attempted time and resource calculation, this is an attempt at the absolute basics. It is also my first build calculator that is somewhat usable right at the moment, as opposed to merely offering a glimpse at where I want to go with this system.</p>
<p>This calculator contains all units for all 3 races and allows for race changing and resetting the build. It also begins to toy with styles and the UI, although I didn&#8217;t spend much time other than getting elements in the rough position that I would like them to be.</p>
<p>I dropped back to a more minimal approach because I felt like the more advanced approaches I was working on were going in the wrong direction. I&#8217;d ultimately like a more advanced system, but I want to rewind a bit and go back to basics and consider alternative approaches to the other systems, that relied heavily on large data structures to store data, at times storing it repeatedly for different purposes.</p>
<div class="shr-publisher-622"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2010/06/build-20100609/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Build 20100524</title>
		<link>http://visual77.com/blog/2010/05/build-20100524/</link>
		<comments>http://visual77.com/blog/2010/05/build-20100524/#comments</comments>
		<pubDate>Sun, 30 May 2010 21:27:56 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[gaming]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sc2build]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[starcraft]]></category>

		<guid isPermaLink="false">http://visual77.com/blog/?p=617</guid>
		<description><![CDATA[I completed the third JavaScript iteration of the StarCraft II Build Order Calculator this morning and put it online. It took a few days longer than I expected, but I also drastically changed how the data is being stored for the build order. In my previous builds, I stored the data with the time as [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>I completed the <a href="http://sc2build.com/id/20100524/">third JavaScript iteration</a> of the <a href="http://sc2build.com">StarCraft II Build Order Calculator</a> this morning and put it online. It took a few days longer than I expected, but I also drastically changed how the data is being stored for the build order. In my <a href="http://visual77.com/blog/category/sc2build">previous builds</a>, I stored the data with the time as the lowest level element, whereas this build stores the unit as the lowest level element. This makes it easier to see what the unit is doing (and thus, what it is allowed to do), but makes it harder to display the timeline.</p>
<p>I also stored unit actions (such as build Probe, warp in Pylon, etc.) as functions within each unit. As I wrote the functions, it quickly became apparent that a huge number of functions are identical and should only be written in one place.</p>
<p>This build shows me the viability of storing unit actions within the function and keeping track of unit timelines within the unit, but also shows the weaknesses of displaying the timeline when I have to scan every unit for every second to see what has been done. It still does not take into account that you need a Gateway before you can make a Zealot, but I chose to not pursue that in this build when all of the flaws of this build became apparent. It does, however, take into account queuing and will not let you build more than 1 Probe from a Nexus at any one time.</p>
<p>I will begin my next iteration very soon and hope to have that online within the next few days. Each iteration definitely teaches me a lot about what will and will not work. I am still very far from a final build, but I still think it is possible to get the final build online before the game launches on Jul 27, 2010.</p>
<div class="shr-publisher-617"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2010/05/build-20100524/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The next iteration of the S2BOC is online</title>
		<link>http://visual77.com/blog/2010/05/the-next-iteration-of-the-s2boc-is-online/</link>
		<comments>http://visual77.com/blog/2010/05/the-next-iteration-of-the-s2boc-is-online/#comments</comments>
		<pubDate>Tue, 25 May 2010 03:27:40 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[sc2build]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[starcraft]]></category>

		<guid isPermaLink="false">http://visual77.com/blog/?p=612</guid>
		<description><![CDATA[In my last update on the StarCraft II Build Order Calculator, I said that I was going to have this next version work on building queues, but I decided to work on the URL sharing instead. The newest version of the S2BOC still doesn&#8217;t account for queues, but you can now send someone the URL [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>In my<a href="http://visual77.com/blog/2010/05/first-interactive-prototype-of-sc2build-is-online/"> last update</a> on the StarCraft II Build Order Calculator, I said that I was going to have this next version work on building queues, but I decided to work on the URL sharing instead. The newest version of the S2BOC still doesn&#8217;t account for queues, but you can now send someone the URL to share build orders.</p>
<p>This URL sharing is one of the most critical requirements of this system. This calculator is designed to aid strategy discussions and a key part of that is showing a friend your strategy. As you update your build order, the URL will be modified, so you can send the build order at any time and anyone going to that URL will see what you see.</p>
<p>This calculator also allows you to switch between <a href="http://sc2build.com/id/20100521-1/#T">Terran</a>, <a href="http://sc2build.com/id/20100521-1/#P">Protoss</a> and <a href="http://sc2build.com/id/20100521-1/#Z">Zerg</a>, albeit in a clunky way that will be addressed before the final build. In order to change race, change the URL to start the build order string (from # to the end of the URL) with T, P or Z. In both FireFox and Chrome, I had to refresh the page after changing the URL before the new race properly appeared.</p>
<p><a href="http://sc2build.com/id/20100521-1/#P">StarCraft II Build Order Calculator</a></p>
<p><a href="http://sc2build.com/id/20100521-1/#PAAAbAAAc">Sample Build</a> (9 Pylon / 12 Gateway Protoss build)</p>
<div class="shr-publisher-612"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2010/05/the-next-iteration-of-the-s2boc-is-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First interactive prototype of sc2build is online</title>
		<link>http://visual77.com/blog/2010/05/first-interactive-prototype-of-sc2build-is-online/</link>
		<comments>http://visual77.com/blog/2010/05/first-interactive-prototype-of-sc2build-is-online/#comments</comments>
		<pubDate>Fri, 21 May 2010 21:51:08 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[sc2build]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[starcraft]]></category>

		<guid isPermaLink="false">http://visual77.com/blog/?p=609</guid>
		<description><![CDATA[I have finished the first interactive prototype of the StarCraft 2 Build Order Calculator and placed it online with the rest of my iterative development tests. This JavaScript prototype is just a proof of concept and is missing many required features, but it does show the possibilities of the system. This build is the first [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>I have finished the <a href="http://sc2build.com/id/process/20100519-3/">first interactive prototype</a> of the StarCraft 2 Build Order Calculator and placed it online with the rest of my iterative development tests. This JavaScript prototype is just a proof of concept and is missing many required features, but it does show the possibilities of the system.</p>
<p>This build is the first JavaScript prototype of the S2BOC. I decided at the very start that I would be building this in a client side language to reduce server strain, and so doing tests in PHP is very impractical. It uses the jQuery library and contains a custom extension to generate the build order. It shows off the abilities of the system to add units and calculate the amount of minerals available at any given time, as well as calculate the earliest moment that a unit can be built.</p>
<p>My next iteration should be online and viewable this weekend. This iteration will contain features not shown in this version, like taking queues into account and building requirements. I estimate there will be another 10-12 iterations before I consider writing the final version.</p>
<div class="shr-publisher-609"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2010/05/first-interactive-prototype-of-sc2build-is-online/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>StarCraft II Build Order Calculator</title>
		<link>http://visual77.com/blog/2010/05/starcraft-ii-build-order-calculator/</link>
		<comments>http://visual77.com/blog/2010/05/starcraft-ii-build-order-calculator/#comments</comments>
		<pubDate>Wed, 19 May 2010 04:27:08 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[gaming]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sc2build]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[starcraft]]></category>

		<guid isPermaLink="false">http://visual77.com/blog/?p=602</guid>
		<description><![CDATA[I&#8217;ve recently begun work on a new project that should see the light of day in time for StarCraft II to launch on July 27. The project, being hosted over at http://sc2build.com, is the StarCraft II Build Order Calculator. The project aims to take the ease of use and share-friendly nature of World of Warcraft [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>I&#8217;ve recently begun work on a new project that should see the light of day in time for StarCraft II to launch on July 27. The project, being hosted over at http://sc2build.com, is the StarCraft II Build Order Calculator. The project aims to take the ease of use and share-friendly nature of World of Warcraft talent calculators and apply it to StarCraft II build orders.</p>
<p>The project is just beginning the iterative development phase, with some small scale tests of single aspects of the system. I began writing my notes on the site in plain text, but it quickly became apparent that I will have enough notes to require a full fledged blog.</p>
<p>Expect to see a flood of posts in the coming days as I think aloud on how to build this system and test various methods of implementation. I will be building it through iterative development, and as such there will be many micro tests in the coming weeks of single aspects of the system.</p>
<p>The first test that has already been pondered upon and attempted once is how to store the build order data in a URI without that URI becoming ungainly in length. You can see my <a href="http://sc2build.com/id/parse/20100518-1.php">notes on that test</a> and see a <a href="http://sc2build.com/id/parse/20100518-1a.php?build=PZZZZ1ZZZ3">sample of this one attempt</a> in the iterative development section of that site.</p>
<div class="shr-publisher-602"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2010/05/starcraft-ii-build-order-calculator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Greased PMA &#8211; Stripping the suck out of phpmyadmin&#8217;s SQL query window</title>
		<link>http://visual77.com/blog/2010/02/greased-pma-stripping-the-suck-out-of-phpmyadmins-sql-query-window/</link>
		<comments>http://visual77.com/blog/2010/02/greased-pma-stripping-the-suck-out-of-phpmyadmins-sql-query-window/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 20:51:42 +0000</pubDate>
		<dc:creator>visual77</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[greased pma]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpmyadmin]]></category>

		<guid isPermaLink="false">http://www.visual77.com/blog/?p=549</guid>
		<description><![CDATA[Anyone who has used phpmyadmin&#8216;s query window knows how frustratingly small the textarea is, and how difficult editing SQL query blocks can be. I wrote a Greasemonkey script to de-suck this query window. As of now, Greased PMA is version 0.1 and has the following features: Automatic resizing of the textarea to make best use [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>Anyone who has used <a href="http://visual77.com/blog/tag/phpmyadmin">phpmyadmin</a>&#8216;s query window knows how frustratingly small the textarea is, and how difficult editing <a href="http://visual77.com/blog/tag/mysql">SQL</a> query blocks can be. I wrote a <a title="Greasemonkey Firefox Plugin" href="https://addons.mozilla.org/en-US/firefox/addon/748">Greasemonkey</a> script to de-suck this query window. As of now, Greased PMA is version 0.1 and has the following features:</p>
<ul>
<li>Automatic resizing of the textarea to make best use of the window size</li>
<li>Ctrl+Enter submits the query</li>
<li>Tab inserts 4 spaces into the query</li>
</ul>
<p><a title="Greased PMA 0.1" href="http://visual77.com/blog/wp-content/uploads/2010/02/greasedpma.user.js" target="_blank">Click here to download Greased PMA version 0.1.</a></p>
<p><strong>Update: </strong>While messing around at home on Vista / Chrome, I noticed that Greased PMA partially works on Chrome. I wasn&#8217;t expecting this to work outside of Firefox / Greasemonkey, but Chrome has a similar extension feature, it seems. The textarea resizing works, but the Ctrl+Enter submitting query and tab modification do not work. Perhaps this weekend I will debug those two functions on Chrome.</p>
<div class="shr-publisher-549"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom -->]]></content:encoded>
			<wfw:commentRss>http://visual77.com/blog/2010/02/greased-pma-stripping-the-suck-out-of-phpmyadmins-sql-query-window/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
