<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>notkeepingitreal.com</title>
    <link>http://notkeepingitreal.com/</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Ben Scofield: Cleanliness Is Next to Domain Specificity</title>
      <description>&lt;p&gt;I. Linguistics&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;We are programming languages &amp;#8211; they can certainly be compared to natural languages&lt;/li&gt;
		&lt;li&gt;Regional dialects are crazy. Can I get a coke? Pop is delicious.&lt;/li&gt;
		&lt;li&gt;Jargons and cants differ not in grammar but in vocabulary. &lt;a href="/language"&gt;Hmmm&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;Creoles and pigeons differ in both grammar and vocabulary from their parent languages&lt;/li&gt;
		&lt;li&gt;Getting back to ruby, are domain specific languages (DSLs) really languages? Or are they dialects, or something else?&lt;/li&gt;
		&lt;li&gt;DSLs are really just about changing the words we use&lt;/li&gt;
		&lt;li&gt;Linguistic determinism is crap&lt;/li&gt;
		&lt;li&gt;The eskimos do not have 33 billion words for snow. For one, &amp;#8220;the eskimos&amp;#8221; is not one group of people with one language. Additionally, there may be lots of &lt;strong&gt;snow-related&lt;/strong&gt; words in any given native alaskan language; however, there are lots of &lt;strong&gt;snow-related&lt;/strong&gt; words in English as well.&lt;/li&gt;
		&lt;li&gt;Tests are testing something that is &lt;strong&gt;already there&lt;/strong&gt;. Specifications come &lt;strong&gt;before&lt;/strong&gt; something else &amp;#8211; this leads you in the right &amp;#8211; or at least the test first &amp;#8211; direction&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;II. Refactoring&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;He showed a bit of shit code to get flight information from &lt;a href="http://kayak.com"&gt;kayak&lt;/a&gt; and refactored it into a class with a more readable &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/li&gt;
		&lt;li&gt;Use symbols instead of strings to avoid using quotes everywhere&lt;/li&gt;
		&lt;li&gt;Avoid parens when that makes things more readable&lt;/li&gt;
		&lt;li&gt;We will never model the domain exactly, so there is always room for improvement&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Cool talk!&lt;/p&gt;</description>
      <pubDate>Sun, 04 Nov 2007 12:58:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:fd3a920d-7da2-4c88-91ca-cef4c677bdba</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/04/ben-scofield-cleanliness-is-next-to-domain-specificity</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1869</trackback:ping>
    </item>
    <item>
      <title>Kyle Maxwell: JRuby in the Wild</title>
      <description>&lt;p&gt;Jruby is already kind of an easy sell in big companies. It&amp;#8217;s the quickness of rails with the familiarity of java.&lt;/p&gt;


	&lt;p&gt;But&amp;#8230;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m not trying to to sell JRuby to enterprises [well clearly, or else he wouldn&amp;#8217;t be giving this talk at rubyconf].&lt;/p&gt;


	&lt;p&gt;JRuby can work well, even for startups &amp;#8211; it&amp;#8217;s just about choosing the best tool for the job.&lt;/p&gt;


	&lt;p&gt;Why might one choose JRuby?&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;performance&lt;/li&gt;
		&lt;li&gt;library support (in fact, we wanted Lucene for search!)&lt;/li&gt;
		&lt;li&gt;extending the language without using C&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Getting started:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;easy install&lt;/li&gt;
		&lt;li&gt;don&amp;#8217;t use textmate to code java&lt;/li&gt;
		&lt;li&gt;casting can be tricky (java needs arrays to have only one type of object in them, ruby not so much)&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Sun, 04 Nov 2007 12:56:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:3f1cbf41-244d-42d2-8451-bd34cfa829dc</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/04/kyle-maxwell-jruby-in-the-wild</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1868</trackback:ping>
    </item>
    <item>
      <title>William Bereza: Enhancing Embedded Development with Ruby</title>
      <description>&lt;p&gt;This guy was creating an embedded system, and basically just wanted to test out ruby. Hard to blame a guy for that.&lt;/p&gt;


	&lt;p&gt;Back in the day, we had low-level languages, slow computers, and less tools. These days we have high-level languages, fast computers, and mad tools. So programming is easier&amp;#8230;&lt;strong&gt;except on embedded devices, which remain in a scenario similar to that of the aforementioned &amp;#8220;back in the day&amp;#8221;&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;If only there were a way to bring testing, continuous integration, and other best practices to the embedded world..&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Maybe ruby could help&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;They had a couple rake targets: rake test:system and rake test:units. There was black box testing of the hardware, and mocking of various bits of the hardware.&lt;/p&gt;


	&lt;p&gt;They were able to link in with the continuous integration system used by the rest of the company (for rails projects, etc), since the embedded project build task was written in rake.&lt;/p&gt;


	&lt;p&gt;Results of using this rubyized system:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;span class="caps"&gt;DRY C&lt;/span&gt; code&lt;/li&gt;
		&lt;li&gt;readable system code&lt;/li&gt;
		&lt;li&gt;readable system tests&lt;/li&gt;
		&lt;li&gt;tests!&lt;/li&gt;
		&lt;li&gt;customers were happy&lt;/li&gt;
		&lt;li&gt;developers were happy&lt;/li&gt;
		&lt;li&gt;lovefest and a half&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Sun, 04 Nov 2007 11:04:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:d059ac6f-77ea-4997-b48a-93dc51c4b66f</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/04/william-bereza-enhancing-embedded-development-with-ruby</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1867</trackback:ping>
    </item>
    <item>
      <title>Jay Phillips: Next-Gen VoIP Development with Ruby and Adhearsion</title>
      <description>&lt;p&gt;&lt;a href="http://adhearsion.com"&gt;Adhearsion&lt;/a&gt; is not a rails plugin. Rails is certainly hot though. After all, the web is hot. Telecom, at least historically, is not at all hot.&lt;/p&gt;


	&lt;p&gt;Enter VoIP.&lt;/p&gt;


	&lt;p&gt;Asterisk, the defacto standard, has a fairly tough-to-get-into codebase. Maybe adhearsion can do something.&lt;/p&gt;


	&lt;p&gt;Your phone is actually a universal remote. There are mad possibilities for controlling doors, video games, and all manner of electronics.&lt;/p&gt;


	&lt;p&gt;There are lots of fun hijinx you can get into: spoofing caller id, locking out automated telemarketers, integrating with instant messaging, &lt;span class="caps"&gt;ETC&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Adhearsion is open source software that abstracts away this technology with ruby in an extensible, easy to understand way. &amp;#8220;Weasels have destroyed the phone system.&amp;#8221; Word!&lt;/p&gt;</description>
      <pubDate>Sun, 04 Nov 2007 10:02:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:94abcaec-1dc6-4d4f-862c-0c5e15780bbb</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/04/jay-phillips-next-gen-voip-development-with-ruby-and-adhearsion</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1866</trackback:ping>
    </item>
    <item>
      <title>David Chelimsky, Dave Astels: Behaviour Driven Development with RSpec</title>
      <description>&lt;p&gt;Astels from google (et al). Chelimsky from Articulate Man (et al).&lt;/p&gt;


	&lt;p&gt;Tests are nice. Tests should focus on design and documentation. Behavior driven development (BDD) emphasizes design, documentation, and, of course, behavior.&lt;/p&gt;


	&lt;p&gt;They demonstrated some ping-pong pairing, with one guy writing a failing test, and then the other guy writing the simplest implementation to make the test pass, writing a new test, and passing it off to the first guy.&lt;/p&gt;


	&lt;p&gt;They gave the background/history of rspec. Hmmm.&lt;/p&gt;


	&lt;p&gt;There are three or so ways to write these rspec tests, up to an including writing english abstracts and test cases designed to be read and even added to by non-developers.&lt;/p&gt;


	&lt;p&gt;Features:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Clear reporting&lt;/li&gt;
		&lt;li&gt;Built-in mocking, but you can also use the other hot mocking libraries that the cool kids are using&lt;/li&gt;
		&lt;li&gt;Integration with autotest/heckle&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;There is a reasonably thriving community, and looks to be a good time. It certainly isn&amp;#8217;t for everyone &amp;#8211; ruby test unit may be all you need. [And screw this, enough hype, I&amp;#8217;m gem installing ZenTest]&lt;/p&gt;</description>
      <pubDate>Sun, 04 Nov 2007 09:00:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:365b3f3f-adf7-4eec-adf6-66680b617683</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/04/david-chelimsky-dave-astels-behaviour-driven-development-with-rspec</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1865</trackback:ping>
    </item>
    <item>
      <title>Dr Nic Williams: Use Ruby to Generate More Ruby - RubiGen is Everywhere</title>
      <description>&lt;ul&gt;
	&lt;li&gt;This A-Team theme&lt;/li&gt;
		&lt;li&gt;There is a rubigen gem&lt;/li&gt;
		&lt;li&gt;The A-Team is awesome&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Sun, 04 Nov 2007 08:58:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:42c61953-e184-44db-976c-35a8bb69219c</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/04/dr-nic-williams-use-ruby-to-generate-more-ruby-rubigen-is-everywhere</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1864</trackback:ping>
    </item>
    <item>
      <title>Matz: Saturday Keynote</title>
      <description>&lt;p&gt;Language matters&amp;#8230;or not?&lt;/p&gt;


	&lt;p&gt;Twitter made a 1000% performance gain with mysql, solaris, and dtrace. No language change. So if many languages provide similar feature-sets, what is the difference?&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Attitude&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Python believes in a &amp;#8220;one true way,&amp;#8221; while ruby believes in diversity.&lt;/p&gt;


	&lt;p&gt;Ruby is doing well &amp;#8211; Martin Fowler of thoughtworks was telling me that ruby is making his life difficult, since if thoughtworks employees can&amp;#8217;t use it, they quit. :) And that seems great, since there is business value in fun; after all, there is lots of gain in programmer productivity based on enthusiasm.&lt;/p&gt;


	&lt;p&gt;Ruby 1.9:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Major incompatibilities include encoding jank and block argument restrictions&lt;/li&gt;
		&lt;li&gt;Minor incompatibilities abound, including File.exists? [which some guy had asked about the previous night]&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Lots&lt;/strong&gt; of new features &amp;#8211; he showed off external iterators&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Languages (and empires) go through cycles:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Humble beginning&lt;/li&gt;
		&lt;li&gt;Success&lt;/li&gt;
		&lt;li&gt;Pride&lt;/li&gt;
		&lt;li&gt;Conflict/War&lt;/li&gt;
		&lt;li&gt;Drop to nothing&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Ruby is somewhere between success and pride, so at least we know where we&amp;#8217;re headed. :) We will eventually go &lt;strong&gt;enterprisey&lt;/strong&gt; to please the &amp;#8220;suit people&amp;#8221; &amp;#8211; yeah, I know, I don&amp;#8217;t want to either. :)&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;ve got such an awesome, &lt;strong&gt;nice&lt;/strong&gt;, &lt;strong&gt;smart&lt;/strong&gt; community. Let&amp;#8217;s change the world!&lt;/p&gt;</description>
      <pubDate>Sun, 04 Nov 2007 08:50:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:02a102d9-0280-449b-8524-b7f4d734d346</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/04/matz-saturday-keynote</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1863</trackback:ping>
    </item>
    <item>
      <title>Francis Hwang: Conversations vs. Laws: What do we mean when we say Ruby is dynamic?</title>
      <description>&lt;p&gt;&lt;span class="caps"&gt;IMPORTANT POINT&lt;/span&gt;: Does anything that matters have a fixed definition?&lt;/p&gt;


	&lt;p&gt;So how do we classify species? One rule is that two different organisms are of the same species if they can interbreed. But the lines are not always so clear. Elliotte Rusty Harold called out ruby arrays for doing too much. Is it a list, a stack, a map, what? It&amp;#8217;s 3 data structures in one?!? But perhaps part of the problem is that he&amp;#8217;s trying to classify something that does not need to be classified. Do we cling to definitions or let them go?&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;IMPORTANT POINT&lt;/span&gt;: People are more important than contracts.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;In some place in Florida, authorities were concerned about thong bathing suits and covering of the buttocks. One thing led to another, and a 300-word definition of buttocks ended up on the books. Hilarity.&lt;/li&gt;
		&lt;li&gt;In many native american communities, people are dealt justice based on what the players in a given offense agree to &amp;#8211; sometimes known as restorative justice.&lt;/li&gt;
		&lt;li&gt;How does ruby survive without namespacing in their libraries? Well, when I created a library that had the same name as an existing library (whoops), I just renamed my library. I realized that repairing the social fabric was more important than having the exact name I wanted.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;&lt;span class="caps"&gt;IMPORTANT POINT&lt;/span&gt;: Life is risk, so seek it out.&lt;/p&gt;


	&lt;p&gt;You may want to be in a company that makes decisions quickly. What may happen instead is a scenario like the following: &amp;#8220;You&amp;#8217;re right, but this decision was made months ago and it cannot be changed now.&amp;#8221; Some companies don&amp;#8217;t actually need its developers to be as good as the guys from the next google. Obviously they wouldn&amp;#8217;t mind if they got an all-star developer, but it is more important to minimize the risk of having a completely terrible developer. This also may or may not be the type of place you want to work.&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;IMPORTANT POINT&lt;/span&gt;: Things fall apart.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Your code won&amp;#8217;t last forever&lt;/li&gt;
		&lt;li&gt;Your career won&amp;#8217;t last forever&lt;/li&gt;
		&lt;li&gt;Hold on to things as long as they are useful, and then let them go&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Meta note: hottest presentation ever.&lt;/p&gt;</description>
      <pubDate>Sun, 04 Nov 2007 08:45:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:ed4d41f4-a218-4e16-b5fc-d13639dce599</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/04/francis-hwang-conversations-vs-laws-what-do-we-mean-when-we-say-ruby-is-dynamic</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1862</trackback:ping>
    </item>
    <item>
      <title>Eric Hodel: Maximizing Productivity</title>
      <description>&lt;p&gt;I was having it out with my wife on the telephone for the beginning of this talk.&lt;/p&gt;


	&lt;p&gt;Main points:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Test&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;KISS&lt;/span&gt;/YAGNI&lt;/li&gt;
		&lt;li&gt;Do what you want&lt;/li&gt;
		&lt;li&gt;Hack often&lt;/li&gt;
		&lt;li&gt;Automate&lt;/li&gt;
		&lt;li&gt;Eliminate pain&lt;/li&gt;
		&lt;li&gt;Have fun&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Don&amp;#8217;t burn out. Use autotest. Learn new things at conferences. Do pair programming. In fact, I&amp;#8217;ve done gang-bang programming, where one guy is typing with the computer projected and a bunch of other backseat drivers are yelling out code. The guy is only allowed to type what someone else says.&lt;/p&gt;


	&lt;p&gt;Q/A time:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Person with question: So it seems like a  lot of people use the ruby mailing list to submit patches rather than using the tracking system. &lt;span class="caps"&gt;WTF&lt;/span&gt;?&lt;/li&gt;
		&lt;li&gt;Hodel: Yeah, I don&amp;#8217;t know. Matz?&lt;/li&gt;
		&lt;li&gt;Matz: I like email&lt;/li&gt;
		&lt;li&gt;Hodel: There you go, Matz uses email as his tracking system&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Person with question: What&amp;#8217;s your editor of choice?&lt;/li&gt;
		&lt;li&gt;Hodel: Vim [that&amp;#8217;s right]&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Sun, 04 Nov 2007 08:30:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:789c6490-7c88-4c60-b69a-30886f22633a</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/04/eric-hodel-maximizing-productivity</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1861</trackback:ping>
    </item>
    <item>
      <title>Evan Phoenix: Rubinius 1.0</title>
      <description>&lt;p&gt;I like to run my talks like &amp;#8230; Roller Derby: fast, enjoyable, hard-hitting &amp;#8230; and the metaphor breaks down.&lt;/p&gt;


	&lt;p&gt;Our goal is to &amp;#8230; &lt;span class="caps"&gt;TAKE OVER THE WORLD&lt;/span&gt; &amp;#8230; for ruby.&lt;/p&gt;


	&lt;p&gt;Ruby itself, and the various implementations of ruby in other runtimes (see past two posts), have lots of lines of C, Java, and .NET, but almost &lt;strong&gt;no lines of ruby&lt;/strong&gt;. Rubinius is working to make the C lines of code/Ruby lines of code ratio smaller and smaller. Rubinius is &lt;strong&gt;ruby for ruby programmers&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;As far as performance, &lt;a href="http://rubini.us"&gt;rubinius&lt;/a&gt; is faster than ruby 1.8 in 24 of 31 yarv tests.&lt;/p&gt;


	&lt;p&gt;The community is awesome &amp;#8211; thanks. If you submit one patch, you get commit access, and we&amp;#8217;ve never revoked anyone&amp;#8217;s commit access!&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;re eventually looking to make a squeek-like dialect that would allow us to generate the core C code. This would allow us to work towards a goal of having &lt;strong&gt;0 developer-maintained lines of C code&lt;/strong&gt; in rubinius.&lt;/p&gt;


	&lt;p&gt;Feel good presentation &amp;#8211; nice job!&lt;/p&gt;</description>
      <pubDate>Sat, 03 Nov 2007 09:12:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:3a323d53-64b7-435d-a7fb-b93ef6319e59</guid>
      <author>Kevin</author>
      <link>http://notkeepingitreal.com/articles/2007/11/03/evan-phoenix-rubinius-1-0</link>
      <category>Rubyconf</category>
      <trackback:ping>http://notkeepingitreal.com/articles/trackback/1860</trackback:ping>
    </item>
  </channel>
</rss>
