<?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>jonathanjulian.com &#187; jonathan</title>
	<atom:link href="http://jonathanjulian.com/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanjulian.com</link>
	<description>Ruby, Rails, JavaScript, software development</description>
	<lastBuildDate>Fri, 13 Jan 2012 21:03:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Installing Ubuntu without a CD-ROM</title>
		<link>http://jonathanjulian.com/2012/01/installing-ubuntu-without-a-cd-rom/</link>
		<comments>http://jonathanjulian.com/2012/01/installing-ubuntu-without-a-cd-rom/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 21:03:03 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://jonathanjulian.com/?p=401</guid>
		<description><![CDATA[The Ubuntu installer stalls and won&#8217;t let you continue if you don&#8217;t have a physical optical drive installed &#8211; this is the case with many pizza-box rack mounted servers. You have to fake it out &#8211; here&#8217;s how: First, if you have enough space on your installation USB drive, copy the Ubuntu iso onto there [...]]]></description>
			<content:encoded><![CDATA[<p>The Ubuntu installer stalls and won&#8217;t let you continue if you don&#8217;t have a physical optical drive installed &#8211; this is the case with many pizza-box rack mounted servers. You have to fake it out &#8211; here&#8217;s how:</p>

<p>First, if you have enough space on your installation USB drive, copy the Ubuntu iso onto there before you start. Yes, the iso file you just &#8220;burned&#8221; to the USB drive (You might not be using a USB drive to install, that&#8217;s ok,  you can still use a USB drive to get the iso onto the server). If you don&#8217;t have enough space (for example if you&#8217;re using a 2G drive like I was), load up a second USB drive with the iso (format as FAT32 for best compatibility).</p>

<p>When you get to the screen &#8220;Load CD-ROM driver from removable media?&#8221;, switch to another console (Alt-F2) to mount the iso as a CD drive. First mount the USB drive, then mount the iso from the drive onto a separate mount point.</p>

<pre><code>mkdir /mnt/usb /mnt/iso
# use ls /dev/sd* to see your mounted partitions.
mount –t vfat /dev/&lt;usb drive, often sdb1&gt; /mnt/usb
mount –t iso9660 –o loop /mnt/usb/ubuntu.iso /mnt/iso
</code></pre>

<p>Switch back to the installer (Alt-F1), choose to manually select device, then type /dev/loop0. The installation should continue flawlessly.</p>

<p>Thanks goes to <a href="http://ubuntuforums.org/showthread.php?t=1550317">this thread</a> for pointing me in the right direction earlier today.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanjulian.com/2012/01/installing-ubuntu-without-a-cd-rom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Hack Night</title>
		<link>http://jonathanjulian.com/2011/11/open-source-hack-night/</link>
		<comments>http://jonathanjulian.com/2011/11/open-source-hack-night/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 00:46:40 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[B'more on Rails]]></category>
		<category><![CDATA[Hack days]]></category>

		<guid isPermaLink="false">http://jonathanjulian.com/?p=397</guid>
		<description><![CDATA[About two years ago, the B&#8217;more on Rails crew started a fun tradition here in Baltimore. We call it Open Source Hack Night. It&#8217;s a group of hackers working on various software projects &#8211; together. Someone should do a writeup of what goes on at those nights &#8211; might be an interesting way to recruit [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dl.dropbox.com/u/2460931/oshn_code.jpg" alt="A Munin script I worked on at the October 2011 OSHN" /></p>

<p>About two years ago, the <a href="http://bmoreonrails.org/">B&#8217;more on Rails</a> crew started a fun tradition here in Baltimore. We call it Open Source Hack Night. It&#8217;s a group of hackers working on various software projects &#8211; together.</p>

<blockquote>
  <p>Someone should do a writeup of what goes on at those nights &#8211; might be an interesting way to recruit new folks to the fold
  &#8211; <a href="https://twitter.com/#!/subelsky/status/128540166884294656">Mike Subelsky</a></p>
</blockquote>

<p>Before the last meeting, @subelsky asked about Open Source Hack Night on Twitter, and suggested that a more thorough description might encourage new folks to stop by. Well, I kinda love OSHN and want to see it grow, so here is that description. Thanks, Mike, for the encouragement.</p>

<h2>What is it?</h2>

<p>Once a month, B&#8217;more on Rails hosts Open Source Hack Night, a casual meeting of coders from a variety of backgrounds. We hang out for about 2 hours, hacking on whatever is fun.</p>

<h2>Who runs it?</h2>

<p>In short, B&#8217;more on Rails members. Most often, <a href="http://www.edschmalzle.com/">Ed Schmalzle</a> and <a href="http://eeecomputes.com/">Chris Strom</a> are there. Sometimes I am (I should be, I work right down the hall at <a href="http://410labs.com/">410 Labs</a>). It&#8217;s really loosely run, we try to just casually introduce ourselves, and lately we&#8217;ve been trying to collect everyone&#8217;s Twitter handle, expertise, and project names on a whiteboard.</p>

<h2>What&#8217;s the vibe?</h2>

<p>It&#8217;s usually dimly lit (nighttime!), and sometimes we play music. The <a href="http://beehivebaltimore.org/">Beehive</a> has one large table that can seat about ten folks, and plenty of other seating. Sometimes it&#8217;s quiet and serious, but it&#8217;s often fun and maybe even a little silly sometimes.</p>

<p><img src="http://dl.dropbox.com/u/2460931/oshn_cahoon.jpg" alt="Chris and Sam hacking on something awesome" /></p>

<h2>What do folks work on?</h2>

<p>In short, whatever they want. A few people generally bring ideas with them, and then recruit others to help or just follow along with their work. If you have an idea for a new project, or a bug fix or feature to add to an open source project, you&#8217;ll probably find at least one person who is either capable of helping you, or at least following along.</p>

<h2>What languages do I need to know? Is it Ruby-centric?</h2>

<p>No. Although it was originally titled &#8220;Ruby Open Source Hack Night&#8221;, we have shed the language from the name as we want the event to be inclusive of whatever type of project you&#8217;re working on. You can be sure to find more than a few Ruby and JavaScript devs at most OSHNs, but you&#8217;ll also occasionally run into Perl guys, iOS devs, and sometimes a random Java developer. We all use <a href="http://github.com/">Github</a> to share code.</p>

<h2>Do I have to pair-program?</h2>

<p>No! While this is a great opportunity to pair with someone on something you&#8217;re really into, you can work however you want.</p>

<h2>Is it better for learners or teachers?</h2>

<p>Both. If you know alot about something cool, others will want to learn from you and see you work. If you are hungry to learn something new, speak up, and someone there probably has done it, and can show you around.</p>

<h2>Why should I attend?</h2>

<p>I hope you&#8217;re already convinced to attend! But if not, here are some bulleted reasons:</p>

<ul>
<li>to learn more about something new</li>
<li>to meet new folks</li>
<li>to get help fixing a bug or adding a feature to a project</li>
<li>to cowork on your own thing in the company of others</li>
<li>to spread your knowledge about something cool</li>
<li>to find a new job (impress others with your skillz)</li>
<li>to relax in the company of other hackers</li>
<li>to eat sponsor-provided pizza and drink beer (BYOB)</li>
</ul>

<h2>OK, I&#8217;ll see you there!</h2>

<p>Excellent! Feel free to let everyone know what your plans are. Introduce yourself on the <a href="http://www.meetup.com/bmore-on-rails/messages/archive/">meetup.com mailing list</a> (email to ruby-85@meetup.com), and announce what you&#8217;d like to work on. Alternately, we often use Twitter to plan. Follow <a href="https://twitter.com/#!/bmoreonrails/">@bmoreonrails</a>. Tweet your project ideas the day before or the day of OSHN &#8211; we&#8217;ll try to re-tweet your plans and ideas so more people can see what others will be working on.</p>

<p>The next OSHN is this week, Tuesday November 22 from 7pm to about 9pm. We meet at the Beehive in Canton, all the details can be found on the <a href="http://www.meetup.com/bmore-on-rails/events/37849952/">meetup</a> page. Please RSVP so we can have enough pizza for everyone.</p>

<p>See you there. Be sure to introduce yourself!</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanjulian.com/2011/11/open-source-hack-night/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Education Hack Day and my first iOS app</title>
		<link>http://jonathanjulian.com/2011/11/education-hack-day-and-my-first-ios-app/</link>
		<comments>http://jonathanjulian.com/2011/11/education-hack-day-and-my-first-ios-app/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 17:12:43 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[Hack days]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://jonathanjulian.com/?p=370</guid>
		<description><![CDATA[My Start with iOS &#8220;It&#8217;s just silly that I&#8217;m the only one on the team who knows how the iOS app works&#8221;. This wasn&#8217;t the first time that Dave had suggested that I get familiar with the Shortmail iOS app. But this time was different from the others, it was more of a strategic command. [...]]]></description>
			<content:encoded><![CDATA[<h3>My Start with iOS</h3>

<p>&#8220;It&#8217;s just silly that I&#8217;m the only one on the team who knows how the iOS app works&#8221;. This wasn&#8217;t the first time that Dave had suggested that I get familiar with the Shortmail iOS app. But this time was different from the others, it was more of a strategic command. &#8220;Let&#8217;s get some testing in place so we can confidently start working on version 1.1&#8243; So I committed to immediately spending a few hours a day getting familiar with the app and Xcode.</p>

<p>That night (Thursday), I started to read the &#8220;SDK Fundamentals&#8221; section of the first edition of <a href="http://www.manning.com/callen/">&#8220;iPhone in Action&#8221;</a>. The book is almost three years old now, and does not even mention the iPhone 3GS (which was released in the summer of 2009). But even though new hardware and SDK versions have come and gone, the basics haven&#8217;t changed. This is the copy I have, so I read on.</p>

<p>Although today I primarily write web applications in interpreted languages, I have a history of building UIs using GUI toolkits. Straight out of school, I was building <a href="http://en.wikipedia.org/wiki/Motif_(widget_toolkit)">Motif</a> GUIs on Sun workstations, with only a partial semester of Borland C++ experience to fuel my user interface building knowledge. I also spent a few years building Windows applications using the venerable Microsoft Visual Studio, which at the time I thought was the coolest thing ever. Most recently (which really isn&#8217;t that recent), I built a couple Java Swing applications, none of which ever saw the light of day but were fun to work on nonetheless. I&#8217;m also comfortable building event-driven browser applications in JavaScript, which are similar to their more rigid counterparts, but it is unfortunately all too easy to cheat and not build them in a pure event-driven GUI style.</p>

<p>So, reading those chapters of &#8220;iPhone in Action&#8221; felt strangely comforting. Certainly, the language (Objective-C) was new to me, but the concepts were familiar. I tweeted</p>

<blockquote>
  <p>Weirdly excited about trying my hand at iOS development after reading a few introductory chapters of iPhone in Action.</p>
</blockquote>

<h3>Education Hack Day</h3>

<h3>What to work on?</h3>

<p>I <a href="http://baltimorehackathon.com/">love</a> <a href="http://baltimore.startupweekend.org/">hack</a> <a href="http://weblogs.baltimoresun.com/news/technology/2011/02/civic_hack_day_in_baltimore_ki.html">days</a>. I really enjoy figuring out a problem from a high level, and then putting together the best technologies to solve it. Sometimes, the solution is just a little script, sometimes, it&#8217;s a web app, other times, it&#8217;s a system with many moving parts. I hate to see small problems solved with big solutions, and I enjoy breaking big problems into little pieces to make them easier to attack.</p>

<p>At make-your-own-team hack days like <a href="http://educationhackday.org">Education Hack Day</a>, I usually gravitate towards teams that are trying to solve a specific problem, rather than the ones that are trying to build something large like &#8220;the next Facebook&#8221;. The constraint of having just one day (or weekend) is often too limiting to build up an industrial-strength, multi-faceted solution. I also gravitate to teams where I can make an immediate impact, and I prefer teams that do not already have a developer like myself onboard &#8211; every team deserves a solid developer, there&#8217;s no need to double-up.</p>

<h3>Choosing a team</h3>

<p>I saw the pitches. I read the descriptions. I mulled over some of the projects with Lokesh, and we agreed it might be fun to work together. Then we split up and wandered the room. There was Ted&#8217;s project, a &#8220;Sound Board&#8221; Rails app for autistic children. He had already recruited two developers. There was Mike Brenner&#8217;s app, a web app with planned <a href="http://tropo.com">Tropo</a> integration. That looked interesting, and I like working with Mike and Mark Headd &#8211; but they already had a developer recruited to build it. Lokesh had gravitated to a small web-only project to allow curation of web content. I kept walking. <em>I wanted to build an iOS app.</em></p>

<h3>Options</h3>

<p>Plenty of these projects could potentially have an iPhone or iPad component. Apparently, classrooms these days are often filled with students using iPads, so many of these projects were choosing the iPad&#8217;s Safari mobile browser as the target platform. Some of these projects could be written as a native iOS app! I surveyed the room once again.</p>

<h3>My pitch</h3>

<p>I found Andrew talking with Donald and Ronin. They were deep in discussion about the technical aspects of controlling Safari on an iPad remotely. The project name, as scrawled on a large piece of paper stuck to the window, read &#8220;Teacher Control App&#8221;. This could be an iOS app, I thought. After listening to them bounce around ideas, I made my pitch. &#8220;I think the student part of this project should be a native iPad app, to keep them from interacting with the url bar and getting distracted. You should know, I&#8217;ve never built an iPad app before, but I&#8217;m confident I can build this one and I&#8217;d love to help your team.&#8221;</p>

<p>They seemed interested &#8211; especially Andrew. He showed confidence in our team, so we all agreed to start working together.</p>

<p>After some more discussion, we began to identify our roles &#8211; as a high school teacher, Andrew would run the project and be product manager. Donald, a web developer, would build the teacher web app and the back end. Ronin, a MICA student, would do all the design work. I would build the iPad app that the students would use.</p>

<h3>The project</h3>

<p>We named it &#8220;Harbor&#8221;. It&#8217;s a safe application that is installed on students&#8217; iPads in lieu of Safari (educators often use the &#8220;restriction&#8221; features on the iPad to disable apps like YouTube and Safari). Teachers can &#8220;push&#8221; a list of web urls to all the iPads, and the students in the class would be allowed to browse those sites, but no others. The system could be extensible so that commands other than web urls can be pushed to the group of iPads, allowing for more control &#8211; features like &#8220;everyone look at this page&#8221; or &#8220;disable all iPads&#8221;.</p>

<p>We decided that for the weekend, it was feasible to have a simple webapp where the teacher can enter urls and push them to their group of iPads. The app would show the students that list of urls, and allow them to browse those. Minimal features &#8211; pretty simple, and achievable.</p>

<div><img src="http://dl.dropbox.com/u/2460931/whogonstopme.jpg" alt="WHO GON STOP ME"/></div>

<h3>Coding</h3>

<p>I started the Xcode project a little after noon on Saturday. We briefly debated what type of application the students would need &#8211; perhaps a web view with tabs for the urls? Or maybe a two-page navigation app, with a list of urls, and a single web view? I decided on a single web view, with a popover list of urls (much like the iPad Mail app in portrait mode). This is two views, with some server-communication. How hard could it be?</p>

<h3>How hard? I almost quit 5 times</h3>

<p>On Saturday, I spent nearly 12 hours working in Xcode, adding callback methods, learning how to connect buttons to event handlers, and trying to use Restkit to consume JSON from a web service. I googled for everything that I needed to, finding many results from <a href="http://shawnsbits.com/">Shawn Grimes&#8217;</a> and <a href="http://www.raywenderlich.com/">Ray Wenderlich&#8217;s</a> blogs. I learned of the quality of the Apple SDK docs. There <strong>were</strong> times when I wanted to quit &#8211; it <em>was</em> a weekend, there were great football games on tv, friends to see, bike rides to go on. As I toyed with the thoughts of giving up and heading to the local bar, I imagined what my teammates would think of that. And then I imagined what the next work week would be like, when I&#8217;d be digging into iOS once again to work on Shortmail. So I persevered.</p>

<p>At 1am Saturday night, after writing this line of code,</p>

<pre><code>NSString *requestUrl = [[baseUrl stringByAppendingString:@"/"]
    stringByAppendingString:teacherId];
</code></pre>

<p>&#8230;I was more than a little disgusted. In Ruby, that line would have been:</p>

<pre><code>requestUrl = "#{baseUrl}/#{teacherId}"
</code></pre>

<p>And then I ran my newly-written Restkit code to get JSON and map it to an object, and&#8230; it didn&#8217;t work. I was frustrated. And exhausted. At this moment, I made the best decision I could: I went to bed. With my head on the pillow I dreamed of a fresh day, coffee in hand, debugging the Restkit code that I certainly wasn&#8217;t the first to write.</p>

<h3>The turnaround</h3>

<p>The next morning, on top of a solid 7 hours of sleep, I woke up excited. I immediately dove into debugging the Restkit code, then, on a whim, I googled for other iOS JSON frameworks. I found <a href="https://github.com/stig/json-framework/">SBJson</a>, along with some very simple example code. This was the last big feature that was incomplete (I had already built the web view, and the url list), so I ripped out the Restkit code, installed SBJson, and coded up the request. It succeeded immediately, and the day was off to a great start.</p>

<blockquote>
  <p>Turned the corner. This iPad app is getting really close to MVP!</p>
</blockquote>

<h3>It works!</h3>

<p>Back at the high school for day two of Education Hack Day (Weekend), I told the team about my progress. I showed them the app, and our excitement grew. We just needed to integrate the iOS app with the teacher web app, and get some icons onto the iPad to make it look legit. Donald was pushing the urls up to <a href="http://cloudmine.me">CloudMine</a>, so I just had to modify my request to deal with that. 
<img src="http://dl.dropbox.com/u/2460931/icon72-01.png" align="left" style="margin-right:8px;"/>
Ronin was busy drawing up concept artwork for the project, now named &#8220;Digital Harbor&#8221;, which mostly contained images of blue-ish rippling water under bold white text. We installed icons and splash screens, I touched up some details, Ronin drew up a presentation ripe with catchphrases and pictures, and we were confident that we would have a great demo.</p>

<p>And we did.</p>

<p><img src="http://dl.dropbox.com/u/2460931/harbor-screenshot.png" width="420" alt="Screen shot of an iPad running Digital Harbor, showing the browser restricted to viewing three urls"/></p>

<h3>The end result</h3>

<p>&#8220;Digital Harbor&#8221; was voted <strong>first place</strong> by the panel of judges. The web curation project Lokesh worked on was voted second, a large undertaking to rate schools and students was third, and Mike&#8217;s automated phone call parent/teacher conference scheduling app was voted fourth. I&#8217;m really proud of the team I was on &#8211; we did a great job of identifying a solvable problem, and then attacking it with the skills that each of us were best at.</p>

<h4>I can now call myself an iOS developer.</h4>

<p>But the end result for me was much more &#8211; I can now call myself an iOS developer. Before this weekend, Xcode and iPhone apps were a black box &#8211; I knew just enough about how they worked to talk intelligently about them, but building one was a different matter altogether. I did it in a weekend, and you can too.</p>

<p>My code is sloppy. <a href="http://github.com/jjulian/Harbor">Have a look.</a> I&#8217;m sure I&#8217;m doing things in the wrong places. I&#8217;m positive that the views that I&#8217;ve chosen are probably not the best choices. But as Anthony Maddox said to me on Sunday night, &#8220;My first iOS apps were sloppy too.&#8221;</p>

<p>I&#8217;m looking forward to building more apps, just for fun, to learn the other parts of the toolkit. I&#8217;m looking forward to revisiting Harbor after a bit more experience, to refactor the hacky code into a more maintainable and extensible form. I&#8217;m planning on learning more about testing, both unit testing objects, as well as integration testing entire apps. Watch out App Store, I think I&#8217;m hooked.</p>

<h3>Thanks</h3>

<p>I owe thanks to a bunch of folks for making this weekend a whole lotta fun, so, in no particular order:</p>

<ul>
<li>Anthony Maddox &#8211; for showing me how to connect a button to an action method, and for talking me through Saturday evening: a tough point in the weekend for me</li>
<li>Shawn Grimes &#8211; for being in the room. I didn&#8217;t ask Shawn and his wife too many iOS questions at all, but knowing that you guys were there really helped. </li>
<li>Mike Brenner &#8211; for organizing a great weekend, as always. (thanks to Heather too, for feeding all of the hungry hackers)</li>
<li>Scott Messinger &#8211; for co-organizing, and inspiring us to do whatever it takes to get it done</li>
<li>Lokesh Dhakar &#8211; always fun to hang out, maybe one of these days we&#8217;ll pick the same project</li>
<li>Ted O&#8221;Meara &#8211; for encouraging me to work on an iOS project, even though you were trying to recruit me to help out on yours</li>
<li>Mark Headd &#8211; for always being someone developers can call on (see what I did there?)</li>
<li>Ilya Braude &#8211; for setting Donald up with CloudMine. It really sped up our development, and it was a pleasure to meet you. Love the service! (Made in Philly)</li>
<li>Andy Mangold &#8211; for wearing a yellow skull cap all weekend</li>
<li>Michael Rosner &#8211; for inspiring all of us by showing off your late-night hardware projects</li>
</ul>

<h3>The &#8220;Digital Harbor&#8221; Team</h3>

<ul>
<li>Andrew Coy &#8211; thanks for putting your faith in my skills, even though we just met</li>
<li>Ronin Wood &#8211; for proving to me that track 3 of &#8220;Watch the Throne&#8221; is the &#8220;rap song of the year&#8221;</li>
<li>Donald Abrams &#8211; for supporting the iOS app quickly with a simple backend api, and for traveling all the way from Delaware to hack!</li>
</ul>

<p><img src="http://dl.dropbox.com/u/2460931/digitalharbor01.jpg" width="200" alt="Jonathan and Donald discuss the Digital Harbor app as Ronin looks on"/>
<img src="http://dl.dropbox.com/u/2460931/digitalharbor02.jpg" width="200" alt="Andrew and Ronin during a design session"/></p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanjulian.com/2011/11/education-hack-day-and-my-first-ios-app/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Enough Design to be Dangerous</title>
		<link>http://jonathanjulian.com/2011/05/enough-design-to-be-dangerous/</link>
		<comments>http://jonathanjulian.com/2011/05/enough-design-to-be-dangerous/#comments</comments>
		<pubDate>Sun, 15 May 2011 19:54:44 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://jonathanjulian.com/?p=280</guid>
		<description><![CDATA[At RailsConf this week, I&#8217;ll be presenting Enough Design to be Dangerous on Thursday at 1:50pm. I first gave a rough version of this presentation to B&#8217;More on Rails in February, and then I did a lightning-talk version for the BmoreJS group in April. The description on the RailsConf site lists a few of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://railsconf.com"><img alt="RailsConf logo" src="http://assets.en.oreilly.com/1/event/59/rails2011_spkr_150x150.jpg" title="I&#039;m Speaking at RailsConf 2011" class="alignleft" width="150" height="150" /></a> At RailsConf this week, I&#8217;ll be presenting <a href="http://en.oreilly.com/rails2011/public/schedule/detail/19522">Enough Design to be Dangerous</a> on Thursday at 1:50pm. I first gave a rough version of this presentation to B&#8217;More on Rails in <a href="http://www.meetup.com/bmore-on-rails/events/16181962/">February</a>, and then I did a lightning-talk version for the BmoreJS group in <a href="http://www.meetup.com/baltimore-dc-javascript-users/events/17031611/">April</a>. The description on the RailsConf site lists a few of the topics I&#8217;ll be discussing, but it doesn&#8217;t cover the design basics that are so important for the beginner to understand. These include <strong>contrast, proximity, typography, and repetition</strong>. I want to present a bit of background about what goes into building a pleasing design before I go over specific UI techniques. It&#8217;s going to be great fun, and a little bit different from the usual get-your-hands-dirty-in-code session that you&#8217;ll find at most tech conferences. It&#8217;s the last slot of the conference, so I hope to see you there before you have to run out and catch a plane, drive home, or hit the bar. If you can&#8217;t catch this talk, make sure you find me at BohConf or hanging with the B&#8217;more on Rails crew and say hi!
<img src="http://jonathanjulian.com/wp-content/uploads/2011/06/EDtbD-crowd-300x225.jpg" alt="Jonathan Julian using github.com as an example" title="Jonathan Julian presenting Enough Design to be Dangerous" width="300" height="225" class="size-medium wp-image-363" /></p>

<p><strong>UPDATE</strong>
Thanks to everyone who came out to my session! It was inspiring to hear what everyone thinks of these concepts, and I&#8217;m happy to hear a few of you thought it was useful. If you were there, please make sure you <a href="http://en.oreilly.com/rails2011/public/schedule/detail/19522">rate the session</a>, and I really appreciate the feedback.
</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanjulian.com/2011/05/enough-design-to-be-dangerous/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My favorite parts of RubyNation 2011</title>
		<link>http://jonathanjulian.com/2011/04/my-favorite-parts-of-rubynation-2011/</link>
		<comments>http://jonathanjulian.com/2011/04/my-favorite-parts-of-rubynation-2011/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 01:03:49 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[git]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://jonathanjulian.com/?p=294</guid>
		<description><![CDATA[RubyNation was held this past weekend in Reston VA, and it was a success for the fourth year in a row. For being a (relatively) small regional conference, we consistently get to see quality speakers and draw Rubyists from North Carolina all the way to Philadelphia (and much further, I&#8217;m sure). I&#8217;ve been every year [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rubynation.org"><img alt="RubyNation 2011 badge" src="http://www.rubynation.org/images/conference/badges/2011/webBadgesConference.png" title="RubyNation 2011" class="alignright" width="180" height="135" /></a>
<a href="http://rubynation.org">RubyNation</a> was held this past weekend in Reston VA, and it was a success for the fourth year in a row. For being a (relatively) small regional conference, we consistently get to see quality speakers and draw Rubyists from North Carolina all the way to Philadelphia (and much further, I&#8217;m sure). I&#8217;ve been every year (it&#8217;s just a little over an hour from Baltimore), and I always have a great time. Here is what I thought were the best parts of RubyNation 2011.</p>

<h3>Hanging out with friends</h3>

<p>We always have a strong contingent of <a href="http://bmoreonrails.org">Bmore on Rails</a> folks at RubyNation. This weekend I twice received unsolicited praise that the Bmore on Rails group was &#8220;friendly and cohesive&#8221; and &#8220;one of the more fun local groups&#8221;. I&#8217;m paraphrasing, but it was awesome to hear that others see us this way. It&#8217;s true!</p>

<h3>Making new friends</h3>

<p>I can&#8217;t even count how many colleagues I&#8217;ve met at previous RubyNations! I don&#8217;t feel like I met <em>too</em> many new folks this year, but it&#8217;s still a big part of any local conference to me. If you met me (or even if you didn&#8217;t), make sure to keep in touch on twitter!</p>

<h3>The Talks</h3>

<p>I was lucky, I had already seen three of the sessions at Bmore on Rails in the last few months (&#8220;Fat Models Aren&#8217;t Enough&#8221; by <a href="http://jumpstartlab.com">Jeff Casimir</a>, &#8220;Confident Code&#8221; by <a href="http://avdi.org">Avdi Grimm</a>, and &#8220;KnowSQL: Database Tricks to Make Your Life Easier&#8221; by <a href="http://www.ngauthier.com/">Nick Gauthier</a>). This made it easy for me to see a couple of new talks.</p>

<h3>&#8220;Git: It&#8217;s All About the Trees, Baby&#8221; by <a href="http://scottchacon.com/">Scott Chacon</a></h3>

<p>Scott obviously knows git inside and out. The details are complex, and I&#8217;m mystified about it on a regular basis, even though I&#8217;ve been using it for over 3 years. I love how Scott slows down to ask, &#8220;Does that make sense?&#8221; after every difficult concept. I took feverish notes and re-read them a few times &#8211; after some digestion, yes, Scott, now it does make sense. I think. <a href="https://github.s3.amazonaws.com/presentations/three_trees.pdf">slides</a></p>

<h3>&#8220;Make Awesome Command Line Applications in Ruby&#8221; by <a href="http://www.naildrivin5.com/">David Copeland</a></h3>

<p>For some reason, this topic speaks to me. Maybe it was all the shell scripts I wrote early in my career, or my love for the &#8220;UNIX way&#8221; of building large systems from many small tools. This was one of those talks that probably snuck under the radar, but those who were there know that they took away a ton of knowledge. I&#8217;m looking forward to David&#8217;s upcoming PragProg book on the subject! <a href="http://awesome-cli-ruby.heroku.com/">slides</a></p>

<h3>&#8220;Search-Friendly Web Development&#8221; by <a href="http://luigimontanez.com/">Luigi Montanez</a></h3>

<p>It must be tough to be the first session of day 2 of a conference (wait, <a href="/2010/06/proof-that-i-was-at-jsconf-2010-hangover-js/">it is</a>). I wonder how many people were scared off by the thought of this being an &#8220;SEO&#8221; talk? Well, it was. And it was excellent. To web developers, SEO doesn&#8217;t have to be much more than checking off a few boxes. Really &#8211; it&#8217;s not crazy difficult. Luigi laid out 
a great plan to help your site be more successful: by optimizing crawling, indexing and ranking. 
I&#8217;ve been forced to learn a ton about this subject while working on <a href="http://replyz.com">replyz.com</a> &#8211; we have a footprint of close to 10 million urls, so managing searchability and the sitemaps has been one of my jobs for close to a year. Great job, Luigi! <a href="http://www.slideshare.net/luigimontanez/searchfriendly-web-development-at-rubynation">slides</a></p>

<h3>&#8220;The JavaScript Renaissance&#8221; by <a href="http://voodootikigod.com/">Chris Williams</a></h3>

<p>Chris is a showman. Did he really hand out 200 pirate hats? When his speakers weren&#8217;t loud enough, did he really voice-over <a href="http://www.youtube.com/watch?v=O2rGTXHvPCQ">the Numb3rs episode where they explain IRC</a>? And did he really convince a room full of Rubyists that their favorite language has strong competition from other programming languages? Yep.</p>

<h3>&#8220;Must. Try. Harder.&#8221; by <a href="http://www.keavy.co.uk/">Keavy McMinn</a></h3>

<p>Every conference needs at least one inspirational talk. And this one fit the bill perfectly. Keavy&#8217;s even-paced delivery and detailed descriptions of the agonies of triathlon training provided a great analogy to our software development careers. The video of the harrowing descent left the room silent for a full minute and a half. Well done!</p>

<h3>Jeff Casimir setting up his gear to take headshots</h3>

<p>Jeff is the coolest. He gives a brief lightning talk imploring everyone to use their <em>face</em> as their avatar, not a cartoon or a logo. Then he invites everyone to step out into the lobby where he has set up a temporary studio &#8211; complete with a backdrop and two remote flashes. Fifty people stepped up and got their photo taken, and Jeff posted the results to flickr the next morning. <strong>The next morning.</strong> Seriously, this guy is awesome. <strong>By the way, are you looking for Ruby or Rails training? Check out <a href="http://jumpstartlab.com/">Jumpstart Lab</a>.</strong> <em>(Also, why are so many folks afraid to step in front of a camera? You know we all can see you right now, right?)</em>
<br/>
<a href="http://www.flickr.com/photos/jcasimir/sets/72157626415670430/"><img alt="headshots taken by Jeff Casimir at RubyNation 2011" src="/wp-content/uploads/2011/04/j3-headshots.png" class="alignleft" width="420" style="margin-bottom:15px"/></a></p>

<h3>&#8220;Your code is awesome. Your copy sucks.&#8221;</h3>

<p>I love lightning talks &#8211; you never know what you&#8217;re gonna get, and the investment is low (5 minutes). This year my favorite was about copy writing (that&#8217;s the stuff between the tags that the user sees). Andrea from <a href="http://www.corgibytes.com/">corgibytes</a> let the uber-techie, male-dominated audience know that the words you write matter. I play the role of copy writer for a few minutes (!) every week, and I appreciate raising awareness about this under-appreciated skill.</p>

<h3>The Hacking</h3>

<p>There was considerably less code hacking this year &#8211; but we still fit some in. <a href="http://paulbarry.com/">Paul Barry</a> wrote a <a href="https://github.com/pjb3/Conflagration">Ruby chat server</a> in the few minutes leading up to Nick Gauthier&#8217;s talk. And I told <a href="http://webandy.com/">Andy Atkinson</a> my idea for listing members on <a href="http://bmoreonrails.org">bmoreonrails.org</a>, and he ran with it and started the feature! (hopefully we&#8217;ll have members listed on the site this week)</p>

<h3>The Party</h3>

<p>Github sponsored the drinks, Living Social sponsored the food. And it was at a Westin. Do I need to say more? If you were there, I&#8217;d love to hear your thoughts on the mini-burgers (I thought they were the coolest things ever).</p>

<h3>My Conclusion</h3>

<p>It was another fun local conference. Congrats to Gray Herter and David Keener and David Bock, and <a href="http://www.rubynation.org/organizers">everyone else</a> who organizes RubyNation every year. Keep in mind that these were <em>my</em> favorite parts of RubyNation &#8211; yours will most likely be different. What did you enjoy most about the conference? What did I miss?</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanjulian.com/2011/04/my-favorite-parts-of-rubynation-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

