<?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>Negative Margins</title>
	<atom:link href="http://www.negativemargins.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.negativemargins.com</link>
	<description>Adventures in css, javascript, and all things web</description>
	<lastBuildDate>Wed, 09 Feb 2011 20:41:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>View any pdf in the Google pdf viewer</title>
		<link>http://www.negativemargins.com/2011/02/09/view-any-pdf-in-the-google-pdf-viewer/</link>
		<comments>http://www.negativemargins.com/2011/02/09/view-any-pdf-in-the-google-pdf-viewer/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 20:41:47 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/?p=31</guid>
		<description><![CDATA[Do you miss Chrome opening your PDFs in Google's PDF Viewer? Now that Chrome renders PDFs locally, you miss out on some of the features previously available, like Save to Google Docs. I've created this handy little bookmarklet to allow you to open any PDF in the Google PDF Viewer. Just drag the link below [...]]]></description>
			<content:encoded><![CDATA[<p>Do you miss Chrome opening your PDFs in <a href="http://docs.google.com/viewer">Google's PDF Viewer</a>? Now that Chrome renders PDFs locally, you miss out on some of the features previously available, like Save to Google Docs. I've created this handy little bookmarklet to allow you to open any PDF in the Google PDF Viewer. Just drag the link below into your bookmark bar.</p>
<blockquote><p><a href="javascript:location='http://docs.google.com/viewer?url='+encodeURIComponent(location.href)">View in Google Viewer</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2011/02/09/view-any-pdf-in-the-google-pdf-viewer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What have you hacked today?</title>
		<link>http://www.negativemargins.com/2010/09/01/what-have-you-hacked-today/</link>
		<comments>http://www.negativemargins.com/2010/09/01/what-have-you-hacked-today/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 05:33:25 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/?p=27</guid>
		<description><![CDATA[Paul Graham recently wrote an essay about his experience at yahoo, and why he believed they didn't come out ahead at the end. A big factor was a hacker-centric culture. Contrary to popular belief a hacker is neither a criminal nor a programmer, well not all the time. Hackers ask why. Why can't you communicate [...]]]></description>
			<content:encoded><![CDATA[<p>Paul Graham recently <a href="http://www.paulgraham.com/yahoo.html">wrote an essay</a> about his experience at yahoo, and why he believed they didn't come out ahead at the end. A big factor was a hacker-centric culture.</p>
<p>Contrary to popular belief a hacker is neither a criminal nor a programmer, well not all the time. Hackers ask why. Why can't you communicate in 140 characters at time, why can't we have horseless carriages, why can't we fly, and yes even, why can't I log in to every account on that ultra secure website. Hackers don't settle for no. Tell a hacker something cannot be done. They'll ask why and then they'll do it. You can't fly across Europe for 5 euros, RyanAir thought otherwise.</p>
<p>How do you hack your job everyday? What out of the box ideas have you tried? What have you encouraged your team to try? Hack your meetings, hack your rolodex, hack the office. A hacker is never complacent.</p>
<p>Looking forward to hearing what you've hacked today.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2010/09/01/what-have-you-hacked-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatically run phpunit tests with Kicker on OS X</title>
		<link>http://www.negativemargins.com/2010/05/02/automaticlly-run-phpunit-tests/</link>
		<comments>http://www.negativemargins.com/2010/05/02/automaticlly-run-phpunit-tests/#comments</comments>
		<pubDate>Mon, 03 May 2010 00:34:43 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[phpunit kicker osx ruby]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/?p=22</guid>
		<description><![CDATA[Here's a quick tutorial on how to use Kicker to automatically run PHPUnit tests on OS X. Kicker uses OS X's filesystem events to automatically run a command after a target directory or file is changed. Better yet, after the command is run it will Growl the results for you! First, install Kicker: sudo gem [...]]]></description>
			<content:encoded><![CDATA[<p>Here's a quick tutorial on how to use <a title="Kicker" href="http://github.com/alloy/kicker">Kicker</a> to automatically run <a title="PHPUnit" href="http://www.phpunit.de/">PHPUnit</a> tests on OS X. Kicker uses OS X's filesystem events to automatically run a command after a target directory or file is changed. Better yet, after the command is run it will Growl the results for you!</p>
<ol>
<li>First, install Kicker: <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">sudo gem install kicker</span></li>
<li>Next, switch to your tests directory</li>
<li><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">kicker -e "phpunit Bundle/SomeBundle" Bundle/SomeBundle/ ../src/Bundle/SomeBundle/</span></li>
</ol>
<p>The Kicker command structure is the command to be executed, followed by the directories or files to be watched. In my example, the tests in the SomeBundle directory are run and if any file in the test directory or the src directory are changed the tests are run. When phpunit finishes running a growl notification will be made. Using the Growl control panel, you can change the types of growls that are produced on either successful or failed tests. I like the Music Video display style.</p>
<p>Special thanks to my coworker <a href="http://justinhileman.info">Justin</a> for pointing this out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2010/05/02/automaticlly-run-phpunit-tests/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Have a javascript or css question?</title>
		<link>http://www.negativemargins.com/2007/12/03/have-a-javascript-or-css-question/</link>
		<comments>http://www.negativemargins.com/2007/12/03/have-a-javascript-or-css-question/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 22:33:38 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/2007/12/03/have-a-javascript-or-css-question/</guid>
		<description><![CDATA[I spend 40+ hours a week knee deep in javascript, css and php, but lately mostly javascript and css. I'm responsible for making everything over at www.lijit.com not only provide a great user interface, but work in Firefox, Internet Explorer 6/7 and Safari 2/3, I never seem to have the time to get to Opera [...]]]></description>
			<content:encoded><![CDATA[<p>I spend 40+ hours a week knee deep in javascript, css and php, but lately mostly javascript and css. I'm responsible for making everything over at <a href="http://www.lijit.com">www.lijit.com</a> not only provide a great user interface, but work in Firefox, Internet Explorer 6/7 and Safari 2/3, I never seem to have the time to get to Opera =-\</p>
<p>That being said, I've dealt with all manners of javascript and css trickery. Granted, I use prototype and scriptaculous to do most of the heavy lifting. None the less,  I feel qualified to answer all manners of questions in this space. So, ask away: @ me on twitter: <a href="http://twitter.com/cranberyxl">http://twitter.com/cranberyxl</a>, This way we can keep the answers out in the open, and if I don't know the answer, may be someone else does. I fI cant' answer in 140 characters, I'll link to a blog post back here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2007/12/03/have-a-javascript-or-css-question/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Mixing SimpleXML and json_encode</title>
		<link>http://www.negativemargins.com/2007/10/02/php-mixing-simplexml-and-json_encode/</link>
		<comments>http://www.negativemargins.com/2007/10/02/php-mixing-simplexml-and-json_encode/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 18:15:37 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/2007/10/02/php-mixing-simplexml-and-json_encode/</guid>
		<description><![CDATA[Recently, I've been doing a lot of work with XML and json. One small problem I ran into was assigning SimpleXML variables to a class variable and then running it through json_encode: "pageLength":{"0":"10"} The simple solution I came up with, but which were not readily apparent in the documentation is that you need to simply [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I've been doing a lot of work with XML and json. One small problem I ran into was assigning SimpleXML variables to a class variable and then running it through json_encode:</p>
<p><em>"pageLength":{"0":"10"}</em></p>
<p>The simple solution I came up with, but which were not readily apparent in the documentation is that you need to simply cast the SimpleXML variable to a string or int.</p>
<p><em>$object-&gt;pageLength = (int)$xml-&gt;element;</em></p>
<p>which produces this json:</p>
<p><em>"pageLength":0</em></p>
<p>Hope this helps someone else save some time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2007/10/02/php-mixing-simplexml-and-json_encode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Post Gnomedex Post</title>
		<link>http://www.negativemargins.com/2007/08/14/post-gnomedex-post/</link>
		<comments>http://www.negativemargins.com/2007/08/14/post-gnomedex-post/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 17:46:00 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/2007/08/14/post-gnomedex-post/</guid>
		<description><![CDATA[After a week on the road, culminating with Gnomedex 07, I'm back in the office. Molly and I spent a week in the northwest where we were able to visit her family. We then took a train up to Seattle for a weekend of conference fun. The trip home was a convoluted collection of planes, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gnomedex.com/2007/files/logo.png" align="right" height="38" width="192" />After a week on the road, culminating with <a href="http://gnomedex.com">Gnomedex 07</a>, I'm back in the office. <a href="http://womenofwarcraftpodcast.com">Molly</a> and I spent a week in the northwest where we were able to visit her family. We then took a train up to Seattle for a weekend of conference fun. The trip home was a convoluted collection of planes, trains and automobiles spanning three states and taking over twelve hours.</p>
<p>Once in Seattle we met up with <a href="http://wanderingstan.com">Stan</a>, went to the mixer and Gnomedex was on. After spending the past few months hanging out in <a href="http://chris.pirillo.com">Chris Pirillo's</a> <a href="http://live.pirillo.com">live chatroom</a>, it was a pleasure to finally meet him and his wife <a href="http://ponzarelli.com/">Ponzi</a> in person. They put on a wonderful weekend where the field is very level and you are equally likely to get into a conversation with a new blogger or a seasoned blogger like <a href="scobleizer">Robert Scoble</a>. The presenters provided a wide variety of topics covering everything from <a href="http://www.openmoney.org">open money</a> to <a href="http://timegoesby.net">elder blogging</a>.</p>
<p>It was really cool to meet some of out users who are doing cool things with <a href="http://www.lijit.com">Lijit</a>. <a href="http://mndoci.com">Deepak Singh</a> has found some really cool academic uses that he writes about <a href="http://www.techbizmedia.com/industry-analysis/2007/08/13/better-search-with-lijit/">here</a>. Of course, there were people that knew our fabulous evangelist <a href="http://iquitforlijit.typepad.com/">Tara</a>, like <a href="http://amino-tajee.com/">Tajee</a>, a Japanese video blogger. Perhaps I can use her videos to learn a little Japanese. It was wonderful to be surrounded by people that understood what we do, where the odd Web 2.0 lexicon that we've developed was okay to use. I think <a href="http://chrisbrogan.com">Chris Brogan</a> really understood and <a href="http://grasshopperfactory.com/cbc/lijit-tidies-up-your-presence/">did a nice write up</a> that has turned a few heads our direction. I'm very excited to see where things go.</p>
<p>I definitely look forward to going to Gnomedex 08, seeing old faces, and meeting new people. Stepping outside of Boulder and our developing tech scene and into a room full of people from the Valley was very energizing, but now I've got a lot of coding to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2007/08/14/post-gnomedex-post/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Make mp3s remember their position like podcasts</title>
		<link>http://www.negativemargins.com/2007/04/26/make-other-mp3s-remember-position-like-podcasts/</link>
		<comments>http://www.negativemargins.com/2007/04/26/make-other-mp3s-remember-position-like-podcasts/#comments</comments>
		<pubDate>Thu, 26 Apr 2007 22:55:34 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/?p=16</guid>
		<description><![CDATA[I'm sure many of you noticed that when Apple rolled out the Podcasts section in iTunes, that podcasts remembered the position they were last stopped (unless they played through completely). I've often foudn myself wishing that other mp3s did this. For example, a podcaster might release an optional audio file, not in their normal genre, [...]]]></description>
			<content:encoded><![CDATA[<p>I'm sure many of you noticed that when Apple rolled out the Podcasts section in iTunes, that podcasts remembered the position they were last stopped (unless they played through completely). I've often foudn myself wishing that other mp3s did this. For example, a podcaster might release an optional audio file, not in their normal genre, which they offer for download on their website. I'll find myself listening to said mp3 and without thinking, I might jump to another file or close iTunes. I'm trained, when listening to spoken word, to be able to pick up where I left off. Well, low and behold, apple does offer this feature for all files.</p>
<h2>Single File</h2>
<ol>
<li>Select the file you want to edit</li>
<li>Right click on the selected file (ctrl-click Mac) and Choose <strong>Get Info</strong></li>
<li>Choose the <strong>Options</strong> tab</li>
<li>Select remember playback position</li>
<li>Click <strong>OK</strong></li>
</ol>
<h2>Multiple File</h2>
<ol>
<li>Select the files you want to edit</li>
<li>Right click on the selected files (ctrl-click Mac) and Choose <strong>Get Info</strong></li>
<li>If prompted about editing multiple files, select <strong>Yes</strong></li>
<li>At the bottom of the dialog box change <strong>Remember Position</strong> to <strong>Yes</strong>, and check the box next to it</li>
<li>Click <strong>OK</strong></li>
</ol>
<p>Now, the tracks the you selected will remember their playback position, just like podcasts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2007/04/26/make-other-mp3s-remember-position-like-podcasts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Javascript IDE and Firefox</title>
		<link>http://www.negativemargins.com/2007/02/02/javascript-ide-and-firefox/</link>
		<comments>http://www.negativemargins.com/2007/02/02/javascript-ide-and-firefox/#comments</comments>
		<pubDate>Fri, 02 Feb 2007 17:47:03 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/?p=13</guid>
		<description><![CDATA[Where is the javascript IDE? I know that you can use Eclipse, TextMate, Notepad and other such programs to edit javascript, and that more often then not said javascript is generated in the context of another language (php, ruby, java, or even .NET). I think that there could be huge potential for a Firefox addon [...]]]></description>
			<content:encoded><![CDATA[<p>Where is <strong>the</strong> javascript IDE? I know that you can use <a href="http://eclipse.org">Eclipse</a>, <a href="http://macromates.com/">TextMate</a>, Notepad and other such programs to edit javascript, and that more often then not said javascript is generated in the context of another language (php, ruby, java, or even .NET). I think that there could be huge potential for a Firefox addon that acted as an editor. <a href="https://addons.mozilla.org/firefox/1843/">Firebug</a> is already most of the way there at 1.0. Could we join the missing link between Firebug and Notepad? /drool</p>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2007/02/02/javascript-ide-and-firefox/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Prototype Website and Documentation</title>
		<link>http://www.negativemargins.com/2007/02/02/prototype-website-and-documentation/</link>
		<comments>http://www.negativemargins.com/2007/02/02/prototype-website-and-documentation/#comments</comments>
		<pubDate>Fri, 02 Feb 2007 17:25:25 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/?p=12</guid>
		<description><![CDATA[At the risk of repeating news, and reporting it late at that, in internet time at least, and using too many appositives in a sentence, prototype has finally gotten documentation! According to their website: Prototype is a JavaScript Framework that aims to ease development of dynamic web applications. Basically, it aims to take a lot [...]]]></description>
			<content:encoded><![CDATA[<p style="padding: 1em; background: #0066ff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; float: right"><a href="http://prototypejs.org"><img src="http://www.prototypejs.org/images/logo-home.gif" border="0" /></a></p>
<p>At the risk of repeating news, and reporting it late at that, in internet time at least, and using too many appositives in a sentence, prototype has finally gotten documentation!</p>
<p>According to their website:</p>
<blockquote><p>Prototype is a JavaScript Framework that aims to ease development of dynamic web applications.</p></blockquote>
<p>Basically, it aims to take a lot of the common functions that web developers use, finding elements on a page, making ajax calls, writing classes, etc and wrap them into a library that worries about the various browser implementations of javascript so that you don't have to.</p>
<p>Prototype has recently been officially released as version 1.5, up to now there had been a few release clients. As part of the release they have released a website at <a href="http://prototypejs.org">prototypejs.org</a> that finally includes a central place to view API documentation and discuss how you use prototype with other developers! Additionally, the people at <a href="http://beta.bigmedium.com/index.shtml">Global Moxie</a> have made the documentation available as a <a href="http://beta.bigmedium.com/projects/prototype-pdf/index.shtml">pdf</a> for easy printing and offline reference. Great work!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2007/02/02/prototype-website-and-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Widgets vs RSS and Feed Readers</title>
		<link>http://www.negativemargins.com/2006/11/29/widgets-vs-rss-and-feed-readers/</link>
		<comments>http://www.negativemargins.com/2006/11/29/widgets-vs-rss-and-feed-readers/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 20:28:58 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.negativemargins.com/?p=10</guid>
		<description><![CDATA[As we work on the next phase of development at Lijit, we have been thinking a lot about widgets, or wijits as we call them. Steve Rubel writes about widgets transforming blogs into start pages. I think this is a great idea, but then I started to think about how many people read blogs. Most [...]]]></description>
			<content:encoded><![CDATA[<p>As we work on the next phase of development at <a href="http://lijit.com">Lijit</a>, we have been thinking a lot about widgets, or wijits as we call them. Steve Rubel writes about <a href="http://www.micropersuasion.com/2006/11/widgets_will_tr.html">widgets transforming blogs into start pages</a>. I think this is a great idea, but then I started to think about how many people read blogs. Most serious blog readers use a news aggregator of some sort, either a desktop client or a web based reader. These feeders consume RSS and therefore don't benefit from widgets or advertising mostly for that matter, but <a href="http://www.feedburner.com/fb/a/adnetwork">FeedBurner</a> is working out ways around this. </p>
<p>This brings me to wonder what will win in this space. Will users find enough value from the widgets on a blog page to venture outside of their newsreaders? Will content producers continue to syndicate their entire posts? Will a happy medium be found where  newsreaders and home page destinations equalize? Will someone discover how to integrate widgets into RSS? It will be interesting to find out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.negativemargins.com/2006/11/29/widgets-vs-rss-and-feed-readers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

