<?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>James Stuckey Weber</title>
	<atom:link href="http://jamessw.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jamessw.com</link>
	<description>All Things Post</description>
	<lastBuildDate>Thu, 29 Dec 2016 04:08:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0</generator>
<site xmlns="com-wordpress:feed-additions:1">48526754</site>	<item>
		<title>Happy birthday!</title>
		<link>http://jamessw.com/blog/2016/12/happy-birthday/</link>
					<comments>http://jamessw.com/blog/2016/12/happy-birthday/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Thu, 29 Dec 2016 04:02:52 +0000</pubDate>
				<category><![CDATA[Data Analysis]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1672</guid>

					<description><![CDATA[If you&#8217;re on Facebook, you can expect your phone to buzz a lot on your birthday, as people wish you a happy birthday. This year, I decided that the data coming in was the best gift of all, so I<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2016/12/happy-birthday/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p>If you&#8217;re on Facebook, you can expect your phone to buzz a lot on your birthday, as people wish you a happy birthday. This year, I decided that the data coming in was the best gift of all, so I threw it into a Google Spreadsheet and started analyzing it.</p>
<p><iframe loading="lazy" src="https://docs.google.com/spreadsheets/d/1WmOQqXfvqb5DVeTD3hy0iekDsvWX7IR8xEfktvzTDxI/pubchart?oid=1313438784&amp;format=interactive" width="600" height="371" frameborder="0" scrolling="no" seamless=""></iframe></p>
<h3>Locations of wishers<br />
<iframe loading="lazy" src="https://docs.google.com/spreadsheets/d/1WmOQqXfvqb5DVeTD3hy0iekDsvWX7IR8xEfktvzTDxI/pubchart?oid=1824832843&amp;format=interactive" width="600" height="371" frameborder="0" scrolling="no" seamless=""></iframe></h3>
<p><iframe loading="lazy" src="https://docs.google.com/spreadsheets/d/1WmOQqXfvqb5DVeTD3hy0iekDsvWX7IR8xEfktvzTDxI/pubchart?oid=1052319261&amp;format=interactive" width="600" height="371" frameborder="0" scrolling="no" seamless=""></iframe></p>
<p><iframe loading="lazy" src="https://docs.google.com/spreadsheets/d/1WmOQqXfvqb5DVeTD3hy0iekDsvWX7IR8xEfktvzTDxI/pubchart?oid=2085735575&amp;format=interactive" width="600" height="371" frameborder="0" scrolling="no" seamless=""></iframe></p>
<p><iframe loading="lazy" src="https://docs.google.com/spreadsheets/d/1WmOQqXfvqb5DVeTD3hy0iekDsvWX7IR8xEfktvzTDxI/pubchart?oid=1507108259&amp;format=interactive" width="600" height="371" frameborder="0" scrolling="no" seamless=""></iframe></p>
<p><iframe loading="lazy" src="https://docs.google.com/spreadsheets/d/1WmOQqXfvqb5DVeTD3hy0iekDsvWX7IR8xEfktvzTDxI/pubchart?oid=1529277782&amp;format=interactive" width="600" height="371" frameborder="0" scrolling="no" seamless=""></iframe></p>
<p><iframe loading="lazy" src="https://docs.google.com/spreadsheets/d/1WmOQqXfvqb5DVeTD3hy0iekDsvWX7IR8xEfktvzTDxI/pubchart?oid=915347302&amp;format=interactive" width="600" height="371" frameborder="0" scrolling="no" seamless=""></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2016/12/happy-birthday/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1672</post-id>	</item>
		<item>
		<title>World Series of Birding App and Dashboard</title>
		<link>http://jamessw.com/blog/2016/05/world-series-of-birding-app-and-dashboard/</link>
					<comments>http://jamessw.com/blog/2016/05/world-series-of-birding-app-and-dashboard/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Mon, 30 May 2016 12:13:48 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1637</guid>

					<description><![CDATA[Each May, birders from across the country gather in Cape May for the World Series of Birding, a competition to identify the most number of birds in 24 hours. Besides bragging rights, the competition is also a major fundraiser for<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2016/05/world-series-of-birding-app-and-dashboard/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p>Each May, birders from across the country gather in Cape May for the World Series of Birding, a competition to identify the most number of birds in 24 hours. Besides bragging rights, the competition is also a major fundraiser for bird conservation.</p>
<p>Through 2015, all record keeping and reporting was done on paper, and the competition culminated at midnight with a mad dash to get the reports in, at which point the organizers would verify records, tally up scores, and figure out the winners.</p>
<h2>The solution</h2>
<p>I quickly identified 3 major users-</p>
<ul>
<li>Competitors, who needed to quickly find and report a sighting, with proof as needed</li>
<li>Organizers, who needed to monitor progress throughout the day, verify questionable sightings, and tally scores quickly</li>
<li>General public, who needed live updating stats throughout the day</li>
</ul>
<p>For competitors, I wanted to provide a way to submit sightings through their smart phones. Due to the quick turnaround, and wanting to make sure it was accessible to all competitors, I opted for an HTML 5 web app. I used the <a href="http://framework7.io">Framework 7</a> framework, which provided theming as well as some methods that allowed me to quickly build navigation and views.</p>
<p><a href="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png" rel="lightbox[1637]"><img loading="lazy" class="alignnone wp-image-1640 size-medium" src="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?resize=169%2C300" alt="IMG_4463" srcset="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?resize=169%2C300 169w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?resize=576%2C1024 576w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?resize=100%2C178 100w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?resize=150%2C267 150w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?resize=200%2C356 200w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?resize=300%2C534 300w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?resize=450%2C800 450w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?resize=600%2C1067 600w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4463.png?w=750 750w" sizes="(max-width: 169px) 100vw, 169px" data-recalc-dims="1" />  </a><a href="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png" rel="lightbox[1637]"><img loading="lazy" class="size-medium wp-image-1639 alignnone" src="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?resize=169%2C300" alt="IMG_4464" srcset="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?resize=169%2C300 169w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?resize=576%2C1024 576w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?resize=100%2C178 100w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?resize=150%2C267 150w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?resize=200%2C356 200w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?resize=300%2C534 300w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?resize=450%2C800 450w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?resize=600%2C1067 600w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/IMG_4464.png?w=750 750w" sizes="(max-width: 169px) 100vw, 169px" data-recalc-dims="1" /></a></p>
<p>Since competitors would be moving throughout the entire state, I implemented an HTML5 Offline web cache. I used WebSql for local storage.</p>
<p>Since the rest of the website was being built in WordPress, I decided to build the component for organizers on top of WordPress. The data from the web app needed to get to WordPress, so I used an open source library called <a href="https://github.com/orbitaloop/WebSqlSync">WebSqlSync</a> to implement a 1-way sync that used a custom API. There was a clear separation of species data that was coming from competitors and the approval data that was added by the organizers.</p>
<p>Through a Wordpress plugin, I built custom post types, added custom permissions, and implemented a custom API. I also added multiple custom tables using <a href="http://datatables.net">DataTables</a> that showed organizers the information they needed. In order to allow them to quickly approve sightings, I added a modal overlay that allowed authorized users to perform actions from the front end.</p>
<p><a href="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png" rel="lightbox[1637]"><img loading="lazy" class="alignnone wp-image-1641 size-medium" src="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=300%2C122" alt="Screen Shot 2016-05-30 at 8.10.56 AM" srcset="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=300%2C122 300w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=768%2C312 768w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=1024%2C416 1024w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=100%2C41 100w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=150%2C61 150w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=200%2C81 200w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=450%2C183 450w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=600%2C244 600w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?resize=900%2C366 900w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?w=1820 1820w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.10.56-AM.png?w=1210 1210w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a> <a href="http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png" rel="lightbox[1637]"><img loading="lazy" class="size-medium wp-image-1642 alignnone" src="http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=300%2C130" alt="Screen Shot 2016-05-30 at 8.12.06 AM" srcset="http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=300%2C130 300w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=768%2C332 768w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=1024%2C443 1024w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=100%2C43 100w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=150%2C65 150w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=200%2C87 200w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=450%2C195 450w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=600%2C260 600w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?resize=900%2C390 900w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?w=1802 1802w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.12.06-AM.png?w=1210 1210w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p>
<p>For the general public, I created and themed a heads up display with key stats as well as a tag cloud display of the species reported so far.</p>
<p><a href="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png" rel="lightbox[1637]"><img loading="lazy" class="aligncenter size-medium wp-image-1643" src="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=300%2C176" alt="Screen Shot 2016-05-30 at 8.13.07 AM" srcset="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=300%2C176 300w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=768%2C450 768w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=1024%2C600 1024w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=100%2C59 100w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=150%2C88 150w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=200%2C117 200w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=450%2C264 450w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=600%2C351 600w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?resize=900%2C527 900w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?w=1786 1786w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2016/05/Screen-Shot-2016-05-30-at-8.13.07-AM.png?w=1210 1210w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p>
<h2>Testing</h2>
<p>Testing was a big concern for me- since this was a 1 day event, there wasn&#8217;t an easy way to replicate all the variables. I wrote unit tests to verify calculations, and also used a small group of beta testers to make sure the app worked on a variety of devices. I also provided extensive support on the day of the event to ensure that things ran smoothly.</p>
<h2>Results</h2>
<p>The event ran smoothly, with only minor glitches that were quickly fixed. Competitors found the app simple to use, and seemed to prefer it over the old method. Organizers were able to more quickly tabulate results, and were grateful to have an earlier night. The general public seemed eager to have live updates.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2016/05/world-series-of-birding-app-and-dashboard/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1637</post-id>	</item>
		<item>
		<title>Review of Learning iOS Programming, by Alasdair Allan; O&#8217;Reilly Media</title>
		<link>http://jamessw.com/blog/2012/04/review-of-learning-ios-programming-by-alasdair-allan-oreilly-media/</link>
					<comments>http://jamessw.com/blog/2012/04/review-of-learning-ios-programming-by-alasdair-allan-oreilly-media/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Fri, 27 Apr 2012 18:13:10 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1538</guid>

					<description><![CDATA[I&#8217;ve started making iOS apps, and started out using PhoneGap, which allows you to wrap an HTML5 app into an iOS app. This has its limitations, and so I wanted to see about writing Native apps. As part of O&#8217;Reilly<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2012/04/review-of-learning-ios-programming-by-alasdair-allan-oreilly-media/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p><a href="http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2012/04/s.gif" rel="lightbox[1538]"><img loading="lazy" class="alignleft size-full wp-image-1539" title="s" src="http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2012/04/s.gif?resize=145%2C190" alt="" data-recalc-dims="1" /></a>I&#8217;ve started making iOS apps, and started out using PhoneGap, which allows you to wrap an HTML5 app into an iOS app. This has its limitations, and so I wanted to see about writing Native apps.</p>
<p>As part of O&#8217;Reilly Publishing&#8217;s Blogger Review program, I received a free e-copy of Learning iOS Programming, 2nd Edition, by Alasdair Allan.</p>
<p>I have been working on and off to learn Objective C for several years, and this book was the tipping point that pushed from frustration to understanding. I&#8217;m not sure if that&#8217;s due to the book or just that I was actually at a point where I had a strong enough base to understand.</p>
<p>This book assumes that you know a fair level about coding before getting started. Ideally, you would know more about Objective C than I started with, but the book does spend 2 chapters with the basics.</p>
<p>The book was updated for iOS 5, but at times that transition is incomplete and sloppy. Code was good the first time it is shown, but often it reverts in later rewritings. This actually worked well for me though, as I was able to learn quite a bit by fixing the code to make it work.</p>
<p>Overall, this book was very helpful in getting me started with native coding.</p>
<p><a href="http://shop.oreilly.com/product/0636920018490.do">Learning iOS Programming</a></p>
<p>(Disclaimer- this post is part of the  O&#8217;Reilly Blogger Review program. My only compensation was a digital copy of the book.)</p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2012/04/review-of-learning-ios-programming-by-alasdair-allan-oreilly-media/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1538</post-id>	</item>
		<item>
		<title>What To Brew &#8211; a new iOS App</title>
		<link>http://jamessw.com/blog/2012/04/what-to-brew-a-new-ios-app/</link>
					<comments>http://jamessw.com/blog/2012/04/what-to-brew-a-new-ios-app/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Tue, 10 Apr 2012 03:05:22 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1534</guid>

					<description><![CDATA[I have a long commute, and often take the bus. This gives me plenty of time to work on side projects, and one I&#8217;ve picked up is developing apps for iPad/iPhone/iPod Touch. My first apps were Bird Codes and Band<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2012/04/what-to-brew-a-new-ios-app/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p>I have a long commute, and often take the bus. This gives me plenty of time to work on side projects, and one I&#8217;ve picked up is developing apps for iPad/iPhone/iPod Touch.</p>
<p>My first apps were <a href="http://click.linksynergy.com/fs-bin/stat?id=NZDSkgXRBD4&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fbird-codes%252Fid500496362%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30">Bird Codes</a> and <a href="http://click.linksynergy.com/fs-bin/stat?id=NZDSkgXRBD4&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fband-codes%252Fid509221314%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30  ">Band Codes</a>, developed with my brother for bird watchers.</p>
<p>Today, Apple (finally) approved my third app which combines two of my hobbies- coding and homebrewing.</p>
<p><a href="http://click.linksynergy.com/fs-bin/stat?id=NZDSkgXRBD4&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fwhat-to-brew%252Fid503633370%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30">What To Brew</a> simply gives suggestions on what to brew when you are out of ideas. It also provides a lot of info homebrewers want, with links to recipes and kits.</p>
<p style="text-align: center;"><img loading="lazy" class="size-full wp-image-1518 aligncenter" title="WhatToBrewMockup2" src="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2012/02/WhatToBrewMockup2.png?resize=494%2C495" alt="" srcset="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2012/02/WhatToBrewMockup2.png?w=494 494w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2012/02/WhatToBrewMockup2.png?resize=150%2C150 150w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2012/02/WhatToBrewMockup2.png?resize=300%2C300 300w" sizes="(max-width: 494px) 100vw, 494px" data-recalc-dims="1" /></p>
<p>Click <a title="ChinStr.apps" href="http://jamessw.com/chinstrapps/">here</a> for more info or go to iTunes to purchase <a href="http://click.linksynergy.com/fs-bin/stat?id=NZDSkgXRBD4&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fwhat-to-brew%252Fid503633370%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30">What To Brew</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2012/04/what-to-brew-a-new-ios-app/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1534</post-id>	</item>
		<item>
		<title>An Update</title>
		<link>http://jamessw.com/blog/2012/03/an-update/</link>
					<comments>http://jamessw.com/blog/2012/03/an-update/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Thu, 29 Mar 2012 21:50:07 +0000</pubDate>
				<category><![CDATA[Video]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1515</guid>

					<description><![CDATA[Life&#8217;s been fairly busy recently, but I thought I&#8217;d give you a bit of an update on my life. I&#8217;ve been working at People Productions quite a bit. It&#8217;s been a great mix of growing my skill set and refining what<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2012/03/an-update/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p>Life&#8217;s been fairly busy recently, but I thought I&#8217;d give you a bit of an update on my life.</p>
<p>I&#8217;ve been working at <a href="http://www.peopleproductions.com">People Productions</a> quite a bit. It&#8217;s been a great mix of growing my skill set and refining what I already know. I&#8217;ve been able to do production work for the first time since college, which I have really enjoyed. I&#8217;ve also had some great projects to edit, including e-learning materials and promotional videos. I get some motion graphics work as well, including some of the sections in the <a href="http://www.youtube.com/watch?v=1rVHsQ0EP-0">2012 Boulder International Film Fest Intro </a>video.</p>
<p>People Productions also has a rapidly growing iPad/Web app that does mobile presentations called <a href="http://upsync.com/">UpSync</a>, so I have been able to learn some of the tricks for getting video assets to work well across many platforms.</p>
<p>I&#8217;ve also had the opportunity to do quite a bit of work for the East Cheyenne Gas Storage Project, including a <a href="http://www.youtube.com/watch?v=DQx0DB9G5LU">project overview video</a>. I&#8217;ve enjoyed learning the corporate side of video editing both with East Cheyenne as well as many of the clients I&#8217;ve worked with at People Productions.</p>
<p>I have a nice long bus ride some days to work, so I&#8217;ve been using that time to get some other things done. I recently collaborated with my birdwatching brother to develop <a href="http://www.nemesisbird.com/nemesis-code/">2 iOS apps for birders</a>. I&#8217;m also working on some other apps that may be released in the near future.</p>
<p>What&#8217;s next? Check back and see.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2012/03/an-update/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1515</post-id>	</item>
		<item>
		<title>Splitting subtitles automatically</title>
		<link>http://jamessw.com/blog/2011/10/splitting-subtitles-automatically/</link>
					<comments>http://jamessw.com/blog/2011/10/splitting-subtitles-automatically/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Mon, 31 Oct 2011 00:32:05 +0000</pubDate>
				<category><![CDATA[Editing]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[subtitles]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1499</guid>

					<description><![CDATA[I&#8217;ve been doing a lot of subtitle work recently, and have really enjoyed using Annotation Edit, which does pretty much everything for subtitles. Except for one thing I ended up doing way too much- splitting subtitles into 2 lines. So,<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2011/10/splitting-subtitles-automatically/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve been doing a lot of subtitle work recently, and have really enjoyed using <a href="www.zeitanker.com">Annotation Edit</a>, which does pretty much everything for subtitles. Except for one thing I ended up doing way too much- splitting subtitles into 2 lines.</p>
<p>So, I wrote a script that would take an STL, and split each line of text into 2 lines, as close to the middle as possible. To get started, download <a href="http://jamessw.com/wp/wp-content/uploads/2011/10/subtitleSplit.py_.zip">subtitleSplit.py</a> and unzip.</p>
<p>To use subtitleSplit.py, open up Terminal on a Mac, and run the following command-</p>
<blockquote><p>python /path/to/subtitleSplit.py -f /path/to/original.stl</p></blockquote>
<p>This will split each line and spit it out into Terminal. To save this, you can either use the &#8220;&gt;&#8221; trick, or specify an output file.</p>
<blockquote><p>python /path/to/subtitleSplit.py -f /path/to/original.stl -o /path/to/new.stl</p></blockquote>
<p>The default maximum characters per line is 35, but you may need to change that, depending on your text size and font. You can set that with the -m flag.</p>
<blockquote><p>python /path/to/subtitleSplit.py -f /path/to/original.stl -o /path/to/new.stl -m 45</p></blockquote>
<p>For coders, this file contains a class called SubtitleSplit, which contains more options than are available through the command line.</p>
<p>Let me know if you run into any problems.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2011/10/splitting-subtitles-automatically/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1499</post-id>	</item>
		<item>
		<title>NLE Feature Request: Sequence and Project Variables</title>
		<link>http://jamessw.com/blog/2011/09/nle-feature-request-sequence-and-project-variables/</link>
					<comments>http://jamessw.com/blog/2011/09/nle-feature-request-sequence-and-project-variables/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Sat, 17 Sep 2011 18:59:55 +0000</pubDate>
				<category><![CDATA[Editing]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[nle]]></category>
		<category><![CDATA[variables]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1494</guid>

					<description><![CDATA[In my second installment of crazy things I want in my NLE- Project and Sequence Variables. A new window would be available in the NLE, called Variables. There, you would create a new variable with the following attributes: Type (number,<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2011/09/nle-feature-request-sequence-and-project-variables/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p>In my second installment of crazy things I want in my NLE- Project and Sequence Variables.</p>
<p>A new window would be available in the NLE, called Variables. There, you would create a new variable with the following attributes:</p>
<ul>
<li>Type (number, text, file, boolean)</li>
<li>Scope (Project, Sequence)</li>
<li>Default value (This would be where you set the values of project variables, and set what sequence variables would display before they are set on the sequence.)</li>
</ul>
<p>Then, if you want to use a variable, you simply drag that variable from the Variable Window to where ever you want to use them. Variables would need to be built in to the NLE at a very root level, so that variables would be accessible by default from anywhere, including third party plugins.</p>
<p>Sequence variables would be set from within Sequence Settings. A pane would display all the variables in the sequence, and you could set them easily.</p>
<p>Example 1: you need to take the same commercial and make 4 different versions, each with a different phone number that comes up in 2 places.</p>
<ol>
<li>Make a sequence that is completely ready to go, except the phone number.</li>
<li>Make a new text sequence variable called PhoneNumber, with the default to (555) 555-5555.</li>
<li>Add a text generator to your sequence, and drag the PhoneNumber variable to it. Format the phone number how you want it.</li>
<li>Repeat for the second place the phone number comes up.</li>
<li>Duplicate the master sequence 4 times.</li>
<li>In each one, change the PhoneNumber variable to the correct phone number.</li>
<li>Output.</li>
</ol>
<p>Example 2: You need to output 2 versions of your show- one with titles, one without.</p>
<ol>
<li>Make a new number sequence variable called TitlesVisible with a default of 100.</li>
<li>Add the TitlesVisible variable to the Opacity of each of the titles in the sequence.</li>
<li>When everything is done, duplicate the sequence, and set the TitlesVisible variable for that sequence to 0.</li>
<li>Output each.</li>
</ol>
<p>Using variables would take a bit of planning and foresight, but could save a lot of time in the long run. It would have to be integrated very well to be useful.</p>
<p>I see this as being very easy to use, yet very flexible. It should allow for variables in variables (so, a text variable could be used inside of a file path).</p>
<p>Would you find this useful? How would you use it?</p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2011/09/nle-feature-request-sequence-and-project-variables/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1494</post-id>	</item>
		<item>
		<title>An NLE Suggestion &#8211; Play to in, Play from Out.</title>
		<link>http://jamessw.com/blog/2011/09/an-nle-suggestion-play-to-in-play-from-out/</link>
					<comments>http://jamessw.com/blog/2011/09/an-nle-suggestion-play-to-in-play-from-out/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Tue, 06 Sep 2011 22:04:05 +0000</pubDate>
				<category><![CDATA[Editing]]></category>
		<category><![CDATA[editing]]></category>
		<category><![CDATA[extract]]></category>
		<category><![CDATA[play]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1487</guid>

					<description><![CDATA[I have been working on a series of web videos that are basically cutting an hour speech down to 10 minutes. I&#8217;ve been using Premiere for this, and my general workflow is to cut out the fat as I play<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2011/09/an-nle-suggestion-play-to-in-play-from-out/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p>I have been working on a series of web videos that are basically cutting an hour speech down to 10 minutes. I&#8217;ve been using Premiere for this, and my general workflow is to cut out the fat as I play it through the first time.</p>
<p>I &#8220;Mark In&#8221; at the end of a good soundbite I want to keep, &#8220;Mark Out&#8221; at the start of the next clip, and &#8220;Extract&#8221; to get rid of what I don&#8217;t want. I then back up the playhead, and preview the edit. If it&#8217;s not perfect, I have to undo, tweak the edit points, extract, and preview again.</p>
<p>After doing this dozens of times, I realized I need a new playback method.</p>
<p>We are already used to &#8220;play to out&#8221; and &#8220;play in to out&#8221;, but I&#8217;m suggesting &#8220;play to in, play from out.&#8221; In effect, this would be previewing what would happen if you extract from in to out, skipping over the video between the in and out points.</p>
<p><img loading="lazy" class="aligncenter size-full wp-image-1489" title="PlayToInGif" src="http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2011/09/PlayToInGif.gif?resize=348%2C156" alt="" srcset="http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2011/09/PlayToInGif.gif?w=348 348w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2011/09/PlayToInGif.gif?resize=300%2C134 300w" sizes="(max-width: 348px) 100vw, 348px" data-recalc-dims="1" /></p>
<p>This would use the same preroll and postroll settings as &#8220;play around&#8221; does, allowing you to easily preview an edit before actually making it.</p>
<p>And while we&#8217;re at it, a &#8220;Play to In&#8221; function would be useful as well.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2011/09/an-nle-suggestion-play-to-in-play-from-out/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1487</post-id>	</item>
		<item>
		<title>Waveform Art Filter</title>
		<link>http://jamessw.com/blog/2011/08/waveform-art-filter/</link>
					<comments>http://jamessw.com/blog/2011/08/waveform-art-filter/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Fri, 12 Aug 2011 18:29:19 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[final cut]]></category>
		<category><![CDATA[waveform]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1445</guid>

					<description><![CDATA[The Waveform Art filter is a thoroughly useless piece of code for Final Cut Pro pre-X, that basically takes your image, and puts a crappy version into your waveform monitor. Try it out To try out the Waveform Art filter,<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2011/08/waveform-art-filter/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p>The Waveform Art filter is a thoroughly useless piece of code for Final Cut Pro pre-X, that basically takes your image, and puts a crappy version into your waveform monitor.</p>
<p><strong>Try it out</strong></p>
<p>To try out the Waveform Art filter, download it <a href="http://jamessw.com/images/WaveformArt.dmg">here</a>, and then copy it to /Library/Application Support/Final Cut Pro System Support/Plugins. It will appear in the Waveform Art folder in your Video Effects.</p>
<p><strong>What it does</strong></p>
<p>Here&#8217;s the normal waveform for the built in Circle generator-</p>
<p><img loading="lazy" class="aligncenter size-medium wp-image-1446" title="Final Cut Pro001" src="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/Final-Cut-Pro001.png?resize=300%2C161" alt="" srcset="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/Final-Cut-Pro001.png?resize=300%2C161 300w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/Final-Cut-Pro001.png?w=787 787w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" />And here is the same circle, with the Waveform Art filter applied-</p>
<p><img loading="lazy" class="aligncenter size-medium wp-image-1447" title="Final Cut Pro002" src="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/Final-Cut-Pro002.png?resize=300%2C161" alt="" srcset="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/Final-Cut-Pro002.png?resize=300%2C161 300w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/Final-Cut-Pro002.png?w=787 787w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" />This works best with large text and simple shapes. Complex images don&#8217;t translate well, as it is a black and white image, and has rather poor resolution (only 256 horizontal lines). Also, you may want to bring up the display brightness to better see the image.</p>
<p><strong>Threshold</strong></p>
<p>You can also change the Threshold parameter to tweak the image. Here&#8217;s a picture of me with the threshold at 60, 90, 120, and 150.</p>
<p><img loading="lazy" class="aligncenter size-large wp-image-1452" title="threshold" src="http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/threshold.png?resize=605%2C165" alt="" srcset="http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/threshold.png?resize=1024%2C279 1024w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/threshold.png?resize=300%2C81 300w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/threshold.png?w=1556 1556w, http://i0.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/threshold.png?w=1210 1210w" sizes="(max-width: 605px) 100vw, 605px" data-recalc-dims="1" /></p>
<p><strong>Randomize</strong></p>
<p>There is also a &#8220;Randomize&#8221; parameter, that attempts to distort the image in the canvas, while leaving an image in the waveform monitor. Due to the constraints of how the waveform works, it can&#8217;t be nearly as distorted as I would like. I was hoping to have a jumble of noise that reveals a secret image in the waveform monitor, but I don&#8217;t think it&#8217;s actually possible. The final image also suffers some quality loss. Here&#8217;s the circle with Randomize checked.</p>
<p><img loading="lazy" class="aligncenter size-full wp-image-1454" title="Randomize" src="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/Randomize.png?resize=474%2C255" alt="" srcset="http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/Randomize.png?w=787 787w, http://i2.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/Randomize.png?resize=300%2C161 300w" sizes="(max-width: 474px) 100vw, 474px" data-recalc-dims="1" /></p>
<p>Let me know if you actually find a use for it!</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2011/08/waveform-art-filter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1445</post-id>	</item>
		<item>
		<title>Crash Test Trailer wins a Gold Empixx Award</title>
		<link>http://jamessw.com/blog/2011/08/crash-test-trailer-wins-a-gold-empixx-award/</link>
					<comments>http://jamessw.com/blog/2011/08/crash-test-trailer-wins-a-gold-empixx-award/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Mon, 01 Aug 2011 16:42:42 +0000</pubDate>
				<category><![CDATA[Video]]></category>
		<guid isPermaLink="false">http://jamessw.com/?p=1438</guid>

					<description><![CDATA[I&#8217;m happy to announce that the book trailer I made for “The Outsider’s Guide to the CrashTest Nation” by Rho Mack has won a Gold Empixx award. The Empixx Awards may not be the Emmys, but I&#8217;m still proud to<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://jamessw.com/blog/2011/08/crash-test-trailer-wins-a-gold-empixx-award/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" src="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/EMPixx.GOLD_.Outline.png?resize=155%2C300" alt="" title="EMPixx GOLD Award" class="alignleft size-medium wp-image-1440" srcset="http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/EMPixx.GOLD_.Outline.png?resize=155%2C300 155w, http://i1.wp.com/jamessw.com/wp/wp-content/uploads/2011/08/EMPixx.GOLD_.Outline.png?w=264 264w" sizes="(max-width: 155px) 100vw, 155px" data-recalc-dims="1" />I&#8217;m happy to announce that the book trailer I made for “The Outsider’s Guide to the CrashTest Nation” by Rho Mack has won a Gold Empixx award. </p>
<p><iframe loading="lazy" src="http://player.vimeo.com/video/24401053?title=0&amp;byline=0&amp;portrait=0" width="500" height="281" frameborder="0"></iframe></p>
<p>The Empixx Awards may not be the Emmys, but I&#8217;m still proud to be recognized by other professionals.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://jamessw.com/blog/2011/08/crash-test-trailer-wins-a-gold-empixx-award/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1438</post-id>	</item>
	</channel>
</rss>
