<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="https://bendyworks.com/feed/rss.xml" rel="self" type="application/rss+xml"/>
    <description>Blog from Bendyworks</description>
    <language>en</language>
    <link>https://bendyworks.com/blog</link>
    <title>Bendyworks Blog</title>
    <item>
      <title>Let Us Dismantle the Artifice of Standup</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Thu, 07 Sep 2023 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/let-us-dismantle-the-artifice-of-standup/index</link>
      <guid>https://bendyworks.com/blog/let-us-dismantle-the-artifice-of-standup/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2023-09-07-let-us-dismantle-the-artifice-of-standup-c60e8f26.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Originally published at &lt;a href="https://www.valerieburzynski.com/blog/let-us-dismantle-the-artifice-of-standup/"&gt;valerieburzynski.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the uninitiated, "Standup" is a metaphoric title given to a daily team meeting where all attendees stand. The intent of this is to hasten the meeting while achieving an objective: to have the team discuss...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>How to Get Your Capybara System Tests Running in a Docker Dev Container on Apple Silicon</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Fri, 17 Mar 2023 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/how-to-get-your-capybara-system-tests-running-in-a-docker-dev-container-on-apple-silicon/index</link>
      <guid>https://bendyworks.com/blog/how-to-get-your-capybara-system-tests-running-in-a-docker-dev-container-on-apple-silicon/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2023-03-17-how-to-get-your-capybara-system-tests-running-in-a-docker-dev-container-on-apple-silicon-dde8a59b.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Originally published at &lt;a href="https://www.valerieburzynski.com/blog/how-to-get-your-capybara-system-tests-running-in-a-docker-dev-container-on-apple-silicon/"&gt;valerieburzynski.com&lt;/a&gt;&lt;/p&gt;

&lt;h2 id="the-journey-begins"&gt;The Journey Begins&lt;/h2&gt;

&lt;p&gt;At the end of last year my main work machine was upgraded to a MacBook Pro with an M1 Max processor. I quickly got to work setting up my usual dev environment, then cloned the git project...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Rails Test Driven Development Fibonacci</title>
      <author>noreply@bendyworks.com (Kevin Sage)</author>
      <pubDate>Fri, 22 Jul 2022 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/rails-test-driven-development-fibonacci/index</link>
      <guid>https://bendyworks.com/blog/rails-test-driven-development-fibonacci/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2022-07-22-rails-test-driven-development-fibonacci-e9e8189b.jpg' /&gt;&lt;/p&gt;&lt;p&gt;In this ongoing series, we're going to explore Rails Test Driven Development by focusing on katas. In the art of Karate, a kata is a form, or choreographed sequence of movements, practiced repetitiously with the intent of making incremental improvement...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>This RegEx Will Change How You Design With Tailwind</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Wed, 18 May 2022 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/this-regex-will-change-how-you-design-with-tailwind/index</link>
      <guid>https://bendyworks.com/blog/this-regex-will-change-how-you-design-with-tailwind/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2022-05-18-this-regex-will-change-how-you-design-with-tailwind-35454f4f.jpg' /&gt;&lt;/p&gt;&lt;h1 id="this-regex-will-change-how-you-design-with-tailwind"&gt;This RegEx Will Change How You Design With Tailwind&lt;/h1&gt;

&lt;p&gt;Are you using TailwindCSS in you project?&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;… of course you are it's all the rage lately, and everyone’s using it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Need to change all the color based utilities in your app because you need to...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Hooked on Phoenix</title>
      <author>noreply@bendyworks.com (Roger Roelofs)</author>
      <pubDate>Tue, 10 May 2022 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/hooked-on-phoenix/index</link>
      <guid>https://bendyworks.com/blog/hooked-on-phoenix/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2022-05-10-hooked-on-phoenix-51601157.png' /&gt;&lt;/p&gt;&lt;p&gt;Hello again. Thank you for sticking with me through the &lt;a href="/blog/stranded-at-the-edge/"&gt;first&lt;/a&gt; &lt;a href="/blog/getting-started-with-phoenix-liveview/"&gt;three&lt;/a&gt; &lt;a href="/blog/can-you-hear-me-now-using-phoenix-presence/"&gt;posts&lt;/a&gt; in this series. We are finally to the part that triggered the series in the first place. Phoenix is great at helping us stay focused on the server end of the client-server paradigm...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Can you hear me now? - Using Phoenix Presence</title>
      <author>noreply@bendyworks.com (Roger Roelofs)</author>
      <pubDate>Tue, 03 May 2022 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/can-you-hear-me-now-using-phoenix-presence/index</link>
      <guid>https://bendyworks.com/blog/can-you-hear-me-now-using-phoenix-presence/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2022-05-03-can-you-hear-me-now-using-phoenix-presence-ddcbca5b.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Welcome to the third installment of our series on building a 'Single Page App' with Phoenix LiveView. In this series we are exploring building a highly interactive application that most devs would assume has to be coded in javascript in the browser...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Getting Started with Phoenix LiveView</title>
      <author>noreply@bendyworks.com (Roger Roelofs)</author>
      <pubDate>Mon, 25 Apr 2022 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/getting-started-with-phoenix-liveview/index</link>
      <guid>https://bendyworks.com/blog/getting-started-with-phoenix-liveview/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2022-04-25-getting-started-with-phoenix-liveview-2a4bf97f.png' /&gt;&lt;/p&gt;&lt;p&gt;As promised in the &lt;a href="/blog/stranded-at-the-edge/"&gt;first article&lt;/a&gt; of this series we are about to embark on a journey to build a collaborative rich text editor widget. In this post we will do all the setup work of starting a new Phoenix LiveView app, adding a Document context and doing...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Stranded at the Edge</title>
      <author>noreply@bendyworks.com (Roger Roelofs)</author>
      <pubDate>Wed, 06 Apr 2022 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/stranded-at-the-edge/index</link>
      <guid>https://bendyworks.com/blog/stranded-at-the-edge/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2022-04-06-stranded-at-the-edge-2b6d6751.jpg' /&gt;&lt;/p&gt;&lt;p&gt;As an industry we’ve been very focused on frictionless and fast user interactions on the web, and rightly so. We’ve been pushing our tools to the limit for decades. Every turn of the wheel brings progress, but also its own set of weaknesses.&lt;/p&gt;

&lt;p&gt;In the...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Importance of Small Conversations&lt;br&gt;&lt;small&gt;And how to make them happen in a remote setting&lt;/small&gt;</title>
      <author>noreply@bendyworks.com (Grace Malinoski)</author>
      <pubDate>Fri, 18 Mar 2022 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-importance-of-small-conversations/index</link>
      <guid>https://bendyworks.com/blog/the-importance-of-small-conversations/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2022-03-18-the-importance-of-small-conversations-090052ff.jpg' /&gt;&lt;/p&gt;&lt;p&gt;We need relationships in our lives. It’s part of what makes us human. However, in an era of remote work and outside restrictions, how do we make time for the small conversations that we used to take for granted in our lives and on which so many relationships...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Making Snow Angels in a Brownfield</title>
      <author>noreply@bendyworks.com (Roger Roelofs)</author>
      <pubDate>Mon, 14 Feb 2022 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/making-snow-angels-in-a-brownfield/index</link>
      <guid>https://bendyworks.com/blog/making-snow-angels-in-a-brownfield/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2022-02-14-making-snow-angels-in-a-brownfield-c1107c55.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Thinking about my last &lt;a href="https://bendyworks.com/blog/done-is-a-four-letter-word"&gt;post&lt;/a&gt; triggered me to finally read &lt;a href="https://www.indiebound.org/book/9781718501188"&gt;&lt;em&gt;Kill it with Fire&lt;/em&gt;&lt;/a&gt; by Marianne Bellotti. The book is all about modernizing legacy systems, which is something developers have to do frequently. Often, systems that are working well tend to get...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Done is a four letter word</title>
      <author>noreply@bendyworks.com (Roger Roelofs)</author>
      <pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/done-is-a-four-letter-word/index</link>
      <guid>https://bendyworks.com/blog/done-is-a-four-letter-word/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2022-01-10-done-is-a-four-letter-word-94bc9e89.jpg' /&gt;&lt;/p&gt;&lt;p&gt;When I was a child, my parents had this concept about words we don't say. We don't say "sh*t" or "d*mn". They called them "four letter words." Kind of silly in retrospect, given all the four letter words we do say. What would the world be without love...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Happy Holidays From Bendyworks</title>
      <author>noreply@bendyworks.com (Grace Malinoski)</author>
      <pubDate>Fri, 17 Dec 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/happy-holidays-from-bendyworks/index</link>
      <guid>https://bendyworks.com/blog/happy-holidays-from-bendyworks/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-12-17-happy-holidays-from-bendyworks-c9f12c4f.jpg' /&gt;&lt;/p&gt;&lt;p&gt;When the end of the year approaches and the weather (depending where you are!) begins to have a snap in the air, the holiday season is near. Here at Bendyworks, the change isn’t personified in an office tree or snacks showing up in the breakroom. That...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Refactoring Tailwind CSS React Apps with Twin.macro</title>
      <author>noreply@bendyworks.com (Jason Stewart)</author>
      <pubDate>Thu, 18 Nov 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/refactoring-tailwind-css-react-with-twin-macro/index</link>
      <guid>https://bendyworks.com/blog/refactoring-tailwind-css-react-with-twin-macro/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-11-18-refactoring-tailwind-css-react-with-twin-macro-ca4b0b4b.jpg' /&gt;&lt;/p&gt;&lt;h2 id="why-tailwind-is-awesome"&gt;Why Tailwind is awesome&lt;/h2&gt;

&lt;p&gt;TailwindCSS is taking the world by storm. It is essentially a set of composable, opinionated utility classes that allows for a consistent set of colors, spacings, sizes, shadows and more. Tailwind gives a developer or designer...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Notes from ElixirConf 2021 - What's Now and What's Next</title>
      <author>noreply@bendyworks.com (Roger Roelofs)</author>
      <pubDate>Mon, 18 Oct 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/elixirconf-2021/index</link>
      <guid>https://bendyworks.com/blog/elixirconf-2021/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-10-18-elixirconf-2021-1400fb26.png' /&gt;&lt;/p&gt;&lt;p&gt;Bendyworks is dipping it's collective toes in the Elixir waters.  Several of us have been reading, taking courses and building practice apps to become proficient at writing Elixir and using the Phoenix framework. This activity includes sending a contingent...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Wrangling Complex Rails apps with Docker Part 3 : Testing Rails under Docker</title>
      <author>noreply@bendyworks.com (Jason Stewart)</author>
      <pubDate>Tue, 21 Sep 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/wrangling-complex-rails-apps-with-docker-part3/index</link>
      <guid>https://bendyworks.com/blog/wrangling-complex-rails-apps-with-docker-part3/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-09-21-wrangling-complex-rails-apps-with-docker-part3-918aad23.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/blog/wrangling-complex-rails-apps-with-docker-part2"&gt;In the previous post in this series&lt;/a&gt;, we created a portable development environment with docker-compose. I've noticed that a lot
of blog posts and tutorials for Dockerizing Rails apps tend to finish before covering the subject of testing within Docker...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Hopping into Data Con LA 2021</title>
      <author>noreply@bendyworks.com (Derek Houck)</author>
      <pubDate>Mon, 20 Sep 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/data-con-la-2021/index</link>
      <guid>https://bendyworks.com/blog/data-con-la-2021/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-09-20-data-con-la-2021-d9dfc868.jpg' /&gt;&lt;/p&gt;&lt;p&gt;I really wanted to attend Data Con LA in person this year. Unfortunately, that wasn't an option, thanks to the delta variant of COVID-19 and Americans not being vaccinated at a high enough rate to reach herd immunity. So instead, for the second year...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Working Remotely: A Look at What Works</title>
      <author>noreply@bendyworks.com (Toril Oien)</author>
      <pubDate>Wed, 01 Sep 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/working-remotely-a-look-at-what-works/index</link>
      <guid>https://bendyworks.com/blog/working-remotely-a-look-at-what-works/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-09-01-working-remotely-a-look-at-what-works-33dc4a87.png' /&gt;&lt;/p&gt;&lt;p&gt;In the time following the start of the COVID pandemic, Bendyworks transformed from an office-based team of software developers in downtown Madison, Wisconsin, to an all-remote company with employees in half a dozen states. In spite of the many challenges...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Implementing React Native Responsive Design Part 2 : Adapting</title>
      <author>noreply@bendyworks.com (Roger Roelofs)</author>
      <pubDate>Mon, 28 Jun 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/implementing-react-native-responsive-design-part-2/index</link>
      <guid>https://bendyworks.com/blog/implementing-react-native-responsive-design-part-2/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-06-28-implementing-react-native-responsive-design-part-2-fbcc1190.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Building phone apps used to be simpler.  There were a small number of phone sizes and an even smaller number of screen sizes to support.  Your app always took up the whole screen so developers tended to target particular screen sizes and exact pixel...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Implementing React Native Responsive Design Part 1 : Limiting and Scaling</title>
      <author>noreply@bendyworks.com (Roger Roelofs)</author>
      <pubDate>Mon, 21 Jun 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/implementing-react-native-responsive-design-part-1/index</link>
      <guid>https://bendyworks.com/blog/implementing-react-native-responsive-design-part-1/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-06-21-implementing-react-native-responsive-design-part-1-6bd3d790.png' /&gt;&lt;/p&gt;&lt;p&gt;Phones and tablets come in all shapes and sizes. Now that Mac, Windows and tvOS support is in the works, the variation in screen geometries will only grow even more varied. On the web we have media queries and responsive layouts via Cascading Style...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Wrangling Complex Rails apps with Docker Part 2 : Creating a docker-compose configuration</title>
      <author>noreply@bendyworks.com (Jason Stewart)</author>
      <pubDate>Fri, 30 Apr 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/wrangling-complex-rails-apps-with-docker-part2/index</link>
      <guid>https://bendyworks.com/blog/wrangling-complex-rails-apps-with-docker-part2/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-04-30-wrangling-complex-rails-apps-with-docker-part2-a56c95ea.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/blog/wrangling-complex-rails-apps-with-docker-part1"&gt;In part 1 of this series&lt;/a&gt;, we created a &lt;code&gt;Dockerfile&lt;/code&gt; that encompasses the Rails portion of our app, now we need to connect it with other services. 
&lt;a href="https://docs.docker.com/compose/"&gt;docker-compose&lt;/a&gt; is a lightweight orchestration tool that's perfect for this purpose. I don't recommend using...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Wrangling Complex Rails apps with Docker Part 1 : The Dockerfile</title>
      <author>noreply@bendyworks.com (Jason Stewart)</author>
      <pubDate>Tue, 20 Apr 2021 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/wrangling-complex-rails-apps-with-docker-part1/index</link>
      <guid>https://bendyworks.com/blog/wrangling-complex-rails-apps-with-docker-part1/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2021-04-20-wrangling-complex-rails-apps-with-docker-part1-b08d6bf7.jpg' /&gt;&lt;/p&gt;&lt;p&gt;One of the most difficult things as a developer when working on a team is onboarding. The process usually goes something like this: Look at the README, install dependencies, realize that something is missing or out of date, ask 
another developer for...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Building Reactive Rails applications with StimulusReflex</title>
      <author>noreply@bendyworks.com (Jason Stewart)</author>
      <pubDate>Fri, 04 Dec 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/building-reactive-rails-applications-with-stimulusreflex/index</link>
      <guid>https://bendyworks.com/blog/building-reactive-rails-applications-with-stimulusreflex/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-12-04-building-reactive-rails-applications-with-stimulusreflex-2a4d6d79.jpg' /&gt;&lt;/p&gt;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;

&lt;p&gt;Rails is a highly productive, highly opinionated, and very popular framework in which to create monolithic web applications.
Due to the dominance of reactive Javascript frameworks such as React and Angular, the monolithic style of creating...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>There and Back Again - A Retention Story</title>
      <author>stephen@bendyworks.com (Stephen Anderson)</author>
      <pubDate>Mon, 02 Nov 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/customer-satisfaction/index</link>
      <guid>https://bendyworks.com/blog/customer-satisfaction/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-11-02-customer-satisfaction-d07defca.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Recently, an advisor asked me a simple question: "What's Bendyworks' customer retention over the past 18 months?" Truth to tell, I really didn't know, so I decided to go look, expecting a mix. I was surprised to find that every single project was either...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Case of the Missing Comma</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Wed, 16 Sep 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/case-of-the-missing-comma/index</link>
      <guid>https://bendyworks.com/blog/case-of-the-missing-comma/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-09-16-case-of-the-missing-comma-94bf2923.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;What The Javascript?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Consider for a moment, the problematic code sample below that unexpectedly evaluates to &lt;code&gt;undefined&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;Exhibit A&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// for educational purposes only; the following line is a bug&lt;/span&gt;
&lt;span class="nx"&gt;_&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;key1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;key2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;{});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It's using &lt;code&gt;lodash&lt;/code&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>How to Setup Windows for Development: An experiment in using WSL2</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Thu, 21 May 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/setup-windows-development/index</link>
      <guid>https://bendyworks.com/blog/setup-windows-development/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-05-21-setup-windows-development-eb5c79a7.png' /&gt;&lt;/p&gt;&lt;p&gt;When I first heard about Windows Subsystem for Linux (WSL), I got excited. I hadn't used Windows for development in years. Configuring Node and Ruby on Rails in Linux or on a Mac was easy; so I didn't have much impetus to switch. I'd also heard of...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Ionic React and Redux</title>
      <author>noreply@bendyworks.com (Amy Terry-Penak)</author>
      <pubDate>Mon, 04 May 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/ionic-react-and-redux/index</link>
      <guid>https://bendyworks.com/blog/ionic-react-and-redux/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-05-04-ionic-react-and-redux-74ed1080.png' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://redux.js.org/"&gt;Redux&lt;/a&gt; is a popular tool which is used to manage application state in JavaScript. Redux is based on &lt;a href="https://redux.js.org/introduction/three-principles"&gt;three core principles&lt;/a&gt;: that application state should be kept in a single store, that the state should only be changed by discrete and well-defined actions...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Rails in Real Time: Blastoff</title>
      <author>noreply@bendyworks.com (Bradyn Glines)</author>
      <pubDate>Mon, 27 Apr 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/rails-in-real-time-introduction-and-setup/index</link>
      <guid>https://bendyworks.com/blog/rails-in-real-time-introduction-and-setup/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-04-27-rails-in-real-time-introduction-and-setup-fe026e20.jpg' /&gt;&lt;/p&gt;&lt;h1 id="when-now"&gt;When? Now!&lt;/h1&gt;

&lt;p&gt;Interactions on the internet today appear to be so fluid and instant. It's becoming more unacceptable from today's user experience perspective to have to refresh the web page when data changes. We want the changes to be reflected instantly...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Capacitor Plugin for Text Detection Part 6 : Highlight text detections</title>
      <author>noreply@bendyworks.com (Vennela Kodali)</author>
      <pubDate>Mon, 20 Apr 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part6/index</link>
      <guid>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part6/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-04-20-capacitor-plugin-for-text-detection-part6-3812b0bd.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This is part 6/6 of the "Capacitor Plugin for Text Detection" series.&lt;/p&gt;

&lt;p&gt;At this point, we have both &lt;a href="/blog/capacitor-plugin-for-text-detection-part5"&gt;android&lt;/a&gt; and &lt;a href="/blog/capacitor-plugin-for-text-detection-part2"&gt;iOS&lt;/a&gt; plugins in place and ready to use.  In this post, let's flesh out our sample app, &lt;code&gt;ImageReader&lt;/code&gt; to use the result from the plugins to obtain...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Capacitor Plugin for Text Detection Part 5 : Android Plugin</title>
      <author>noreply@bendyworks.com (Vennela Kodali)</author>
      <pubDate>Wed, 15 Apr 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part5/index</link>
      <guid>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part5/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-04-15-capacitor-plugin-for-text-detection-part5-5024ff82.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This is part 5/6 of the "Capacitor Plugin for Text Detection" series.&lt;/p&gt;

&lt;p&gt;In the &lt;a href="/blog/capacitor-plugin-for-text-detection-part4"&gt;previous post&lt;/a&gt;, we walked through how to use our plugin in the sample app, &lt;code&gt;ImageReader&lt;/code&gt;. In this post, let's dive into developing our android plugin.&lt;/p&gt;

&lt;h2 id="android-plugin"&gt;Android Plugin&lt;/h2&gt;

&lt;p&gt;To use...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Capacitor Plugin for Text Detection Part 4 : Using the Plugin</title>
      <author>noreply@bendyworks.com (Vennela Kodali)</author>
      <pubDate>Mon, 13 Apr 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part4/index</link>
      <guid>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part4/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-04-13-capacitor-plugin-for-text-detection-part4-e69fd60c.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This is part 4/6 of the "Capacitor Plugin for Text Detection" series.&lt;/p&gt;

&lt;p&gt;In the &lt;a href="/blog/capacitor-plugin-for-text-detection-part3"&gt;previous post&lt;/a&gt;, we cleaned up the web implementation of the plugin and added a shim between our plugin and client code. In this post, let's look into actually using the plugin...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Capacitor Plugin for Text Detection Part 3 : Web Implementation of the Plugin</title>
      <author>noreply@bendyworks.com (Vennela Kodali)</author>
      <pubDate>Wed, 08 Apr 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part3/index</link>
      <guid>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part3/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-04-08-capacitor-plugin-for-text-detection-part3-30c2fdce.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This is part 3/6 of the "Capacitor Plugin for Text Detection" series.&lt;/p&gt;

&lt;p&gt;In the &lt;a href="/blog/capacitor-plugin-for-text-detection-part2"&gt;previous post&lt;/a&gt;, we created an iOS plugin. In this post, while we aren't quite implementing a web plugin, we'll modify the web plugin to reflect the fact, and also add a shim...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Capacitor Plugin for Text Detection Part 2 : iOS Plugin</title>
      <author>noreply@bendyworks.com (Vennela Kodali)</author>
      <pubDate>Mon, 06 Apr 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part2/index</link>
      <guid>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part2/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-04-06-capacitor-plugin-for-text-detection-part2-9662fc81.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This is part 2/6 of the "Capacitor Plugin for Text Detection" series.&lt;/p&gt;

&lt;p&gt;In the &lt;a href="/blog/capacitor-plugin-for-text-detection-part1"&gt;previous post&lt;/a&gt;, we created a skeleton plugin and a sample app (&lt;code&gt;ImageReader&lt;/code&gt;) to work with the plugin. In this post, let's dive into creating an iOS Plugin for detecting text...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Capacitor Plugin for Text Detection Part 1 : Create Plugin</title>
      <author>noreply@bendyworks.com (Vennela Kodali)</author>
      <pubDate>Wed, 01 Apr 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part1/index</link>
      <guid>https://bendyworks.com/blog/capacitor-plugin-for-text-detection-part1/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-04-01-capacitor-plugin-for-text-detection-part1-37f1246f.jpg' /&gt;&lt;/p&gt;&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;

&lt;p&gt;In this series of blog posts, I'm going to walk through building a Capacitor Plugin, specifically a Text Detection plugin using CoreML and MLKit. Capacitor plugins are handy when you're writing a &lt;a href="https://en.wikipedia.org/wiki/Mobile_app#Hybrid_app"&gt;Hybrid App&lt;/a&gt; with &lt;a href="https://ionicframework.com/"&gt;Ionic&lt;/a&gt; or a &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps"&gt;PWA&lt;/a&gt; but want...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>JSON API Phase 4: Ember</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Mon, 30 Mar 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/json-api-phase-4-ember/index</link>
      <guid>https://bendyworks.com/blog/json-api-phase-4-ember/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-03-30-json-api-phase-4-ember-5b6ef46a.png' /&gt;&lt;/p&gt;&lt;h2 id="building-an-ember-app-that-connects-to-a-json-api-server"&gt;Building an Ember App that connects to a JSON API server&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="/blog/json-api-phase-1-setup/"&gt;Phase 1: Setting up your projects&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="/blog/json-api-phase-2-api-design/"&gt;Phase 2: Designing your API with Swagger and JSON API&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="/blog/json-api-phase-3-api-server/"&gt;Phase 3: Developing an API with Express and Swagger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Phase 4: Building an Ember App that connects...&lt;/li&gt;
&lt;/ul&gt;]]&gt;</description>
    </item>
    <item>
      <title>Ionic: Bringing Us Closer</title>
      <author>noreply@bendyworks.com (Bradyn Glines)</author>
      <pubDate>Mon, 23 Mar 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/ionic-bringing-us-closer/index</link>
      <guid>https://bendyworks.com/blog/ionic-bringing-us-closer/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-03-23-ionic-bringing-us-closer-ec62fe6d.jpg' /&gt;&lt;/p&gt;&lt;h2 id="tools-tools-and-tools"&gt;Tools, tools and tools&lt;/h2&gt;

&lt;p&gt;It's good to have different tools to solve different problems or build different types of web applications and websites. This gives developers a lot of power, flexibility, and ability to really squeeze all of the power and potential...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Bendyworks Goes Remote</title>
      <author>noreply@bendyworks.com (Amy Terry-Penak)</author>
      <pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyworks-goes-remote/index</link>
      <guid>https://bendyworks.com/blog/bendyworks-goes-remote/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-03-16-bendyworks-goes-remote-3ec75a43.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Bendyworks has recently been exploring how to better support remote workers, with the end goal of becoming a fully hybrid remote office. We have always supported remote work when necessary or beneficial, but until now we have not supported fully remote...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Rails 6: Action Text</title>
      <author>noreply@bendyworks.com (Bradyn Glines)</author>
      <pubDate>Mon, 09 Mar 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/rails-6-action-text/index</link>
      <guid>https://bendyworks.com/blog/rails-6-action-text/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-03-09-rails-6-action-text-1d8beddf.png' /&gt;&lt;/p&gt;&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;

&lt;p&gt;Rails 6 is now out and can be used by the public. In a &lt;a href="https://www.bendyworks.com/blog/rails-5-active-storage"&gt;previous post&lt;/a&gt;, I took a look at Active Storage; a new framework bundled with Rails 5.2. The framework highlighted today comes fresh out of the Rails 6: Action Text. We'll be going...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Maydm Visits Bendyworks</title>
      <author>noreply@bendyworks.com (Bradyn Glines)</author>
      <pubDate>Mon, 02 Mar 2020 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/maydm-visits-bendyworks/index</link>
      <guid>https://bendyworks.com/blog/maydm-visits-bendyworks/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2020-03-02-maydm-visits-bendyworks-053da487.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Bendyworks recently had the amazing opportunity to host a small get together for the students of &lt;a href="https://maydm.org/"&gt;Maydm&lt;/a&gt;. Maydm describes themselves as:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Integrating computer science learning, mentorships, &amp;amp; internships through programs that prepare students for...&lt;/p&gt;
&lt;/blockquote&gt;]]&gt;</description>
    </item>
    <item>
      <title>Rails 5: Getting Started with Active Storage</title>
      <author>noreply@bendyworks.com (Bradyn Glines)</author>
      <pubDate>Fri, 14 Jun 2019 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/rails-5-active-storage/index</link>
      <guid>https://bendyworks.com/blog/rails-5-active-storage/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2019-06-14-rails-5-active-storage-dd2027ab.jpg' /&gt;&lt;/p&gt;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;

&lt;p&gt;When storing static files in Rails, the first toolsets I reach for are 3rd party gems like: CarrierWave or Paperclip (before they &lt;a href="https://thoughtbot.com/blog/closing-the-trombone" target="_blank"&gt;deprecated it&lt;/a&gt; in favor of Active Storage). Active Storage was introduced with Rails 5.2. Check out the &lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: a look back</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Mon, 31 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-a-look-back/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-a-look-back/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-31-a-month-of-flutter-a-look-back-f08afcfe.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This is it. 31 blog posts in 31 days. Writing &lt;a href="https://bendyworks.com/blog/a-month-of-flutter"&gt;a month of flutter&lt;/a&gt; has been a ton of work but also lots of fun and a good learning experience. I really appreciate how supportive and and positive everyone as been.&lt;/p&gt;

&lt;h2 id="publishing-experience"&gt;Publishing experience&lt;/h2&gt;

&lt;p&gt;For the series...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: the real hero animation</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sun, 30 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-hero-animation/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-hero-animation/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-30-a-month-of-flutter-hero-animation-e07fbf9e.jpg' /&gt;&lt;/p&gt;&lt;p&gt;For the last post before the month's wrap up tomorrow, I wanted to do something more fun: use a &lt;a href="https://flutter.io/docs/development/ui/animations/hero-animations"&gt;hero animation&lt;/a&gt; between the home page list and the individual post page.&lt;/p&gt;

&lt;p&gt;When I first implemented the &lt;code&gt;Hero&lt;/code&gt; animation it never worked going back from a &lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: user registration refactor with reactive scoped model</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sat, 29 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-user-registration-refactor/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-user-registration-refactor/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-29-a-month-of-flutter-user-registration-refactor-9bf2be3a.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://bendyworks.com/blog/a-month-of-flutter-wip-save-users-to-firestore"&gt;Yesterday I implemented&lt;/a&gt; saving new users to Firestore but I wasn't happy with the implementation. So today I refactored &lt;strong&gt;everything&lt;/strong&gt;, well not everything but a lot. There are still areas for improvement but I like the general pattern being used now.&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: WIP save users to Firestore</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Fri, 28 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-wip-save-users-to-firestore/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-wip-save-users-to-firestore/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-28-a-month-of-flutter-wip-save-users-to-firestore-5c4ee218.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Today was supposed to be simple. Take &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-user-registration-form"&gt;form values&lt;/a&gt;, &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-firestore-create-user-rules-and-tests"&gt;save them in Firestore&lt;/a&gt;. It works but the current implementation is messy so I'm going to walk through the work in progress (WIP) code and refactor it tomorrow.&lt;/p&gt;

&lt;p&gt;The larger architectural change was...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: Firestore create user rules and tests</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 27 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-firestore-create-user-rules-and-tests/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-firestore-create-user-rules-and-tests/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-27-a-month-of-flutter-firestore-create-user-rules-and-tests-cf53ba6e.jpg' /&gt;&lt;/p&gt;&lt;p&gt;When a user &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-sign-in-with-google"&gt;signs in with Google&lt;/a&gt; I'm going to create a user document in Firestore. Each authenticated user should only be able to create one user document. These documents will eventually be readable by other users so Firestore needs to have &lt;a href="https://firebase.google.com/docs/firestore/security/get-started"&gt;server...&lt;/a&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: set up Firestore rules tests</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Wed, 26 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-set-up-firestore-rules-tests/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-set-up-firestore-rules-tests/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-26-a-month-of-flutter-set-up-firestore-rules-tests-744845b7.jpg' /&gt;&lt;/p&gt;&lt;p&gt;One aspect of using Firestore for my data backend means I need to be certain my &lt;a href="https://firebase.google.com/docs/firestore/security/get-started"&gt;security rules&lt;/a&gt; are configured correctly. Otherwise users might be able to read or write date they shouldn't have access to.&lt;/p&gt;

&lt;p&gt;A few days ago I &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-setting-up-firebase-firestore"&gt;set up Firestore&lt;/a&gt; in the &lt;code&gt;server&lt;/code&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: awesome adaptive icons</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 25 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-awesome-adaptive-icons/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-awesome-adaptive-icons/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-25-a-month-of-flutter-awesome-adaptive-icons-a7aa52b5.png' /&gt;&lt;/p&gt;&lt;p&gt;For this festive day of Christmas, I'm going to do something more fun and add a fancy icon. For android I will be using an &lt;a href="https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive"&gt;adaptive icon&lt;/a&gt; so that it looks good in any shape and has a &lt;a href="https://adapticon.tooo.io/#/bg=https://i.imgur.com/5YelB2Y.png/fg=https://i.imgur.com/m1ZFrpJ.png"&gt;nice wiggle of movement&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A big thank you goes to &lt;a href="https://twitter.com/tommy_emo_"&gt;@tommy_emo_&lt;/a&gt; for...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: setting up Firebase Firestore</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Mon, 24 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-setting-up-firebase-firestore/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-setting-up-firebase-firestore/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-24-a-month-of-flutter-setting-up-firebase-firestore-3654ae75.jpg' /&gt;&lt;/p&gt;&lt;p&gt;After a user &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-sign-in-with-google"&gt;signs in with Google&lt;/a&gt; and &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-user-registration-form"&gt;registers&lt;/a&gt;, their info needs to be saved to a databasee. I'm going to use &lt;a href="https://firebase.google.com/docs/firestore/"&gt;Firebase Firestore&lt;/a&gt; as my backend. Within the &lt;code&gt;birb&lt;/code&gt; codebase I'm going to create a &lt;code&gt;server&lt;/code&gt; directory and initialize a Firestore project inside...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: testing forms</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sun, 23 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-testing-forms/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-testing-forms/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-23-a-month-of-flutter-testing-forms-a8402e83.jpg' /&gt;&lt;/p&gt;&lt;p&gt;With the new &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-user-registration-form"&gt;user registration form&lt;/a&gt; in place, it's time to make sure the form is &lt;a href="https://flutter.io/docs/cookbook/testing/widget/tap-drag"&gt;tested&lt;/a&gt; and will work as expected.&lt;/p&gt;

&lt;p&gt;There are basically five different states that need to be tested.&lt;/p&gt;

&lt;h2 id="default-state"&gt;Default state&lt;/h2&gt;

&lt;p&gt;This is the view users will first arrive to and here...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: user registration form</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sat, 22 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-user-registration-form/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-user-registration-form/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-22-a-month-of-flutter-user-registration-form-f8d86ed8.jpg' /&gt;&lt;/p&gt;&lt;p&gt;After a user &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-navigate-to-user-registration"&gt;navigates to the registration page&lt;/a&gt;, they should be able to enter their name and agree to the Terms of Service/Privacy Policy.&lt;/p&gt;

&lt;p&gt;I'll start by updating &lt;code&gt;RegisterPage&lt;/code&gt; to render a &lt;code&gt;RegisterForm&lt;/code&gt; widget that I'll create in a minute. Wrapped around...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: navigate to user registration</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Fri, 21 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-navigate-to-user-registration/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-navigate-to-user-registration/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-21-a-month-of-flutter-navigate-to-user-registration-1a67d1f8.jpg' /&gt;&lt;/p&gt;&lt;p&gt;With users now being able to &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-sign-in-with-google"&gt;sign in with Google&lt;/a&gt;, I want to have them confirm their name and agree to a terms of service. To lay the groundwork I'm going to add a placeholder &lt;code&gt;RegisterPage&lt;/code&gt; and &lt;a href="https://flutter.io/docs/cookbook/navigation/navigation-basics"&gt;navigation to it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This will be my second page, of what...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: delicious welcome snackbar</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 20 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-delicious-welcome-snackbar/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-delicious-welcome-snackbar/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-20-a-month-of-flutter-delicious-welcome-snackbar-c8ca7352.jpg' /&gt;&lt;/p&gt;&lt;p&gt;When a user goes to sign in, they should be told if it was successful. I'm going to do that with a &lt;a href="https://docs.flutter.io/flutter/material/SnackBar-class.html"&gt;&lt;code&gt;SnackBar&lt;/code&gt; widget&lt;/a&gt;. Note that the Flutter &lt;code&gt;SnackBar&lt;/code&gt; style is &lt;a href="https://github.com/flutter/flutter/issues/19841"&gt;out of date&lt;/a&gt; with the current &lt;a href="https://material.io/design/components/snackbars.html"&gt;Material Design spec&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The code changes are not major but include...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: mocking Firebase Auth in tests</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Wed, 19 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-mocking-firebase-auth-in-tests/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-mocking-firebase-auth-in-tests/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-19-a-month-of-flutter-mocking-firebase-auth-in-tests-970e7bfc.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://bendyworks.com/blog/a-month-of-flutter-sign-in-with-google"&gt;Sign in with Google&lt;/a&gt; adds a wildcard to the app: external services. External services are usually avoided in test environments because they create variance and complexity so today I'm going to talk about creating &lt;a href="https://pub.dartlang.org/packages/mockito"&gt;mocks&lt;/a&gt; to simulate interacting with these...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: Sign in with Google</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 18 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-sign-in-with-google/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-sign-in-with-google/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-18-a-month-of-flutter-sign-in-with-google-dc075dcf.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Building on the work configuring Firebase Auth for &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-configure-sign-in-with-google-android"&gt;Android&lt;/a&gt; and &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-configure-sign-in-with-google-ios"&gt;iOS&lt;/a&gt;, it's time to go get a user's details. This will be leveraging the already installed &lt;a href="https://pub.dartlang.org/packages/google_sign_in"&gt;&lt;code&gt;google_sign_in&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://pub.dartlang.org/packages/firebase_auth"&gt;&lt;code&gt;firebase_auth&lt;/code&gt;&lt;/a&gt; packages.&lt;/p&gt;

&lt;p&gt;The big change is the addition of the &lt;code&gt;Auth&lt;/code&gt; class.&lt;/p&gt;

]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: configure Firebase Auth for Sign in with Google on iOS</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Mon, 17 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-configure-sign-in-with-google-ios/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-configure-sign-in-with-google-ios/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-17-a-month-of-flutter-configure-sign-in-with-google-ios-25217cd1.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Yesterday I configured Sign in with Google on &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-configure-sign-in-with-google-android"&gt;Android&lt;/a&gt;. Today is more of the same but in iOS land.&lt;/p&gt;

&lt;p&gt;From the &lt;code&gt;app&lt;/code&gt; directory I ran &lt;code&gt;open ios/Runner.xcworkspace&lt;/code&gt; to open the iOS project in Xcode. Then in Xcode I selected &lt;a href="https://codelabs.developers.google.com/codelabs/flutter-firebase/index.html#6"&gt;"Runner" under "Project navigator...&lt;/a&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: configure Firebase Auth for Sign in with Google on Android</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sun, 16 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-configure-sign-in-with-google-android/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-configure-sign-in-with-google-android/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-16-a-month-of-flutter-configure-sign-in-with-google-android-e44bee07.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Yesterday I added the &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-fabulous-authentication"&gt;sign-in button&lt;/a&gt;. Now let's make it do something.&lt;/p&gt;

&lt;p&gt;First I'll create a new &lt;a href="https://firebase.google.com/"&gt;Firebase project&lt;/a&gt; that will be used in development. Once I get ready to publish the app I'll create a production project.&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/blog/extra/2018-12-16-a-month-of-flutter-configure-sign-in-with-google-android-create-project-10e31cb9.png" alt="creating Firebase development project"&gt;&lt;/p&gt;

&lt;p&gt;Once the project is created,...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: FABulous authentication</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sat, 15 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-fabulous-authentication/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-fabulous-authentication/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-15-a-month-of-flutter-fabulous-authentication-ff7ef512.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Wouldn't it be FABulous if users could sign in to the app? I agree. I'm planning on using &lt;a href="https://firebase.google.com/docs/auth/"&gt;Firebase Authentication&lt;/a&gt; via the &lt;a href="https://pub.dartlang.org/packages/firebase_auth"&gt;&lt;code&gt;firebase_auth&lt;/code&gt; package&lt;/a&gt; but today is all about that &lt;a href="https://docs.flutter.io/flutter/material/FloatingActionButton-class.html"&gt;FAB&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This implementation is pretty simple. I'm going to create a new &lt;code&gt;StatelessWidget&lt;/code&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: rendering network images</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Fri, 14 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-rendering-network-images/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-rendering-network-images/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-14-a-month-of-flutter-rendering-network-images-79dcfa3a.jpg' /&gt;&lt;/p&gt;&lt;p&gt;To finish off week two, I'm going to finally render some prim Unsplash birbs.&lt;/p&gt;

&lt;p&gt;In &lt;code&gt;PostItem&lt;/code&gt; I'll use a &lt;a href="https://docs.flutter.io/flutter/widgets/Column-class.html"&gt;&lt;code&gt;Column&lt;/code&gt; widget&lt;/a&gt; instead of the previous &lt;code&gt;Card&lt;/code&gt; widget. &lt;code&gt;Card&lt;/code&gt; creates a nice boarder shape for your material but now I don't want any shadows to draw attention...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: real faker data</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 13 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-real-faker-data/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-real-faker-data/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-13-a-month-of-flutter-real-faker-data-70a443a5.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://bendyworks.com/blog/a-month-of-flutter-stream-transforms-and-failing-tests"&gt;Yesterday&lt;/a&gt; I left the code base with failing tests because the fixture data stored in a JSON file &lt;a href="https://github.com/flutter/flutter/issues/12999"&gt;can't be read in Flutter tests&lt;/a&gt;. Today I'm going to complete the move to streamed mock data by switching from static fixtures to dynamic factories in a...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: Stream transforms and failing tests</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Wed, 12 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-stream-transforms-and-failing-tests/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-stream-transforms-and-failing-tests/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-12-a-month-of-flutter-stream-transforms-and-failing-tests-dd5e9e65.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Now that I've got a &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-post-model-and-mock-data"&gt;Post model with mock data&lt;/a&gt; and a &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-rendering-a-list-view-with-stream-builder"&gt;StreamBuilder for rendering&lt;/a&gt;, it all needs to be wired together.&lt;/p&gt;

&lt;p&gt;The main changes I'm making are in &lt;code&gt;_MyHomePageState&lt;/code&gt; where I'm replacing the stream of &lt;code&gt;int&lt;/code&gt;s with a call to the new &lt;code&gt;_loadPosts&lt;/code&gt; method...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: rendering a ListView with StreamBuilder</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 11 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-rendering-a-list-view-with-stream-builder/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-rendering-a-list-view-with-stream-builder/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-11-a-month-of-flutter-rendering-a-list-view-with-stream-builder-d7a39f02.jpg' /&gt;&lt;/p&gt;&lt;p&gt;The data for Birb will be stored in &lt;a href="https://firebase.google.com/docs/firestore/"&gt;Firebase Cloud Firestore&lt;/a&gt;. When looking at patterns to handle getting and rendering data, I decided to go with the &lt;a href="https://docs.flutter.io/flutter/widgets/StreamBuilder-class.html"&gt;&lt;code&gt;StreamBuilder&lt;/code&gt;&lt;/a&gt; example from the &lt;a href="https://pub.dartlang.org/packages/cloud_firestore"&gt;cloud_firestore&lt;/a&gt; package documentation. I don't know how well pagination...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: post model and mock data</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Mon, 10 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-post-model-and-mock-data/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-post-model-and-mock-data/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-10-a-month-of-flutter-post-model-and-mock-data-8b25361b.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Now that there is a &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-a-list-of-posts"&gt;basic user interface&lt;/a&gt;, I'm going to create some mock data to display in it. The mock data will be stored in a JSON file and will include just the basic fields needed right now: &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;createdAt&lt;/code&gt;, &lt;code&gt;username&lt;/code&gt;, &lt;code&gt;imageUrl&lt;/code&gt;, and &lt;code&gt;text&lt;/code&gt;. For &lt;code&gt;imageUrl&lt;/code&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: extract post item widget</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sun, 09 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-extract-post-item-widget/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-extract-post-item-widget/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-09-a-month-of-flutter-extract-post-item-widget-3e99fb64.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://bendyworks.com/blog/a-month-of-flutter-a-list-of-posts"&gt;Yesterday&lt;/a&gt; I created the &lt;code&gt;PostList&lt;/code&gt; widget to display multiple posts at once. It contained the code for rendering both the list and the individual items. As the rendering logic for the individual items is going to get more complex, I'm going to extract...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: a list of posts</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sat, 08 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-a-list-of-posts/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-a-list-of-posts/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-08-a-month-of-flutter-a-list-of-posts-0c0a18be.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://bendyworks.com/blog/a-month-of-flutter-no-content-widget"&gt;Yesterday&lt;/a&gt; I created a widget to display when there are no images available. Today I'm going to create the &lt;code&gt;PostsList&lt;/code&gt; widget that will be displayed when there are images.&lt;/p&gt;

&lt;p&gt;The widget will use a &lt;a href="https://docs.flutter.io/flutter/widgets/ListView-class.html"&gt;&lt;code&gt;ListView&lt;/code&gt;&lt;/a&gt;, in part because I plan to use &lt;a href="https://firebase.google.com/docs/firestore/"&gt;Firebase Cloud Firestore&lt;/a&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: no content widget</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Fri, 07 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-no-content-widget/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-no-content-widget/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-07-a-month-of-flutter-no-content-widget-1063bc94.jpg' /&gt;&lt;/p&gt;&lt;p&gt;With any sort of content site, there is always a chance of having nothing to display. So let's create a &lt;code&gt;NoContent&lt;/code&gt; widget to use in that scenario.&lt;/p&gt;

&lt;p&gt;For this view I'm using an illustration from the &lt;a href="https://undraw.co/"&gt;amazing unDraw site&lt;/a&gt;. I've choosen the SVG version as...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: initial theme</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 06 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-initial-theme/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-initial-theme/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-06-a-month-of-flutter-initial-theme-14551121.jpg' /&gt;&lt;/p&gt;&lt;p&gt;I don't have a full theme designed yet but I am planning on going in a clean and minimalist direction. So let's take the current default design and clean it up a little.&lt;/p&gt;

&lt;p&gt;&lt;img alt="Screenshot of default Material Design" src="/assets/images/blog/extra/2018-12-06-a-month-of-flutter-initial-theme-screenshot-original.png" style="padding: 0; border: 1px solid #BDBDBD;"&gt;&lt;/p&gt;

&lt;p&gt;There are a couple of changes to the code for this theme cleanup. The first...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: upgrading to 1.0</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Wed, 05 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-upgrading-to-1-0/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-upgrading-to-1-0/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-05-a-month-of-flutter-upgrading-to-1-0-cd39708e.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Yesterday's &lt;a href="https://developers.googleblog.com/2018/12/flutter-10-googles-portable-ui-toolkit.html"&gt;announcement of Flutter 1.0&lt;/a&gt; was timed perfectly to follow up on &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-configuring-continuous-integration"&gt;configuring CI&lt;/a&gt;. Now it's easy to &lt;code&gt;flutter upgrade&lt;/code&gt; with confidence.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;flutter upgrade
Upgrading Flutter from /home/abraham/Applications/flutter...
From https://github.com/flutter...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: continuous linting</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 04 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-continuous-linting/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-continuous-linting/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-04-a-month-of-flutter-continuous-linting-254128a7.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Yesterday I &lt;a href="https://bendyworks.com/blog/a-month-of-flutter-configuring-continuous-integration"&gt;configured CI&lt;/a&gt;. Today, in step with &lt;a href="https://twitter.com/tpolansk/status/1013320378939305984"&gt;@tpolansk's advice&lt;/a&gt;, lets set up &lt;a href="https://flutter.io/docs/testing/debugging#the-dart-analyzer"&gt;linting&lt;/a&gt;. For this project we'll start with the analysis options that the Flutter team uses. To download the file I'll run the following command within the root directory...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: configuring continuous integration</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Mon, 03 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-configuring-continuous-integration/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-configuring-continuous-integration/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-03-a-month-of-flutter-configuring-continuous-integration-2bcedc4c.jpg' /&gt;&lt;/p&gt;&lt;p&gt;When starting a new project I like to automate as much as possible. One of the most important tasks is getting tests running on &lt;a href="https://en.wikipedia.org/wiki/Continuous_integration"&gt;CI&lt;/a&gt;. There are a number of great CI services but for this project I'm going with &lt;a href="https://travis-ci.org/"&gt;Travis CI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let's take a look at the configuration...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter: create the app</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sun, 02 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter-create-the-app/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter-create-the-app/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-02-a-month-of-flutter-create-the-app-65868037.jpg' /&gt;&lt;/p&gt;&lt;p&gt;The start of any &lt;a href="https://flutter.io"&gt;Flutter&lt;/a&gt; project involves installing the &lt;a href="https://flutter.io/docs/get-started/install"&gt;Flutter SDK&lt;/a&gt; and &lt;a href="https://flutter.io/docs/get-started/editor"&gt;choosing an editor&lt;/a&gt;. I'll be using the Linux flavor of the SDK and Android Studio with the Flutter and Dart plugins installed.&lt;/p&gt;

&lt;p&gt;Follow the linked instructions to &lt;a href="https://flutter.io/docs/get-started/install"&gt;install the Flutter...&lt;/a&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A month of Flutter</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Sat, 01 Dec 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-month-of-flutter/index</link>
      <guid>https://bendyworks.com/blog/a-month-of-flutter/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-12-01-a-month-of-flutter-47844be7.png' /&gt;&lt;/p&gt;&lt;p&gt;Recently Uri Shaked wrote an &lt;a href="https://medium.com/@urish/what-i-learned-from-my-blogging-every-day-challenge-45f5a3e95634"&gt;inspiring article&lt;/a&gt; about his experience publishing a blog post each day for a month. I've decided to combine his great idea with my goal of becoming a better &lt;a href="https://flutter.io"&gt;Flutter&lt;/a&gt; developer. &lt;strong&gt;For the month of December, I will be building...&lt;/strong&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Geolocation with Ionic 3</title>
      <author>noreply@bendyworks.com (Jon Major Condon)</author>
      <pubDate>Thu, 13 Sep 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/ionic-geolocation-three-ways-v3/index</link>
      <guid>https://bendyworks.com/blog/ionic-geolocation-three-ways-v3/index</guid>
      <description>&lt;![CDATA[&lt;iframe src="https://player.vimeo.com/video/288232219" width="640" height="360" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Geolocation is great for adding polish to an app and simplyfying forms. Being able to quickly and easily use it in a project makes it viable for any app. In this video, we show you how to set up Ionic 3 Geolocation. It's a fairly simple setup once...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Pre-cache for Performance</title>
      <author>noreply@bendyworks.com (Pearl Latteier)</author>
      <pubDate>Thu, 30 Aug 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/precache-for-performance/index</link>
      <guid>https://bendyworks.com/blog/precache-for-performance/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-08-30-precache-for-performance-dbca6f0c.jpg' /&gt;&lt;/p&gt;&lt;p&gt;If you're on or around tech Twitter, you've already heard: &lt;a href="https://twitter.com/hashtag/perfmatters?src=hash"&gt;#perfmatters&lt;/a&gt;. In this instance, the word on Twitter really is true. Web performance does matter. A number of &lt;a href="https://developers.google.com/web/fundamentals/performance/why-performance-matters/"&gt;recent studies&lt;/a&gt; have demonstrated that page load times have a real effect on user...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Drop 20K from your production Angular app</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 26 Jul 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/drop-20k-from-your-production-angular-app/index</link>
      <guid>https://bendyworks.com/blog/drop-20k-from-your-production-angular-app/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-07-26-drop-20k-from-your-production-angular-app-e9719058.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Replacing &lt;a href="https://www.npmjs.com/package/core-js"&gt;core-js&lt;/a&gt; with a modern reflect-metadata implementation will shave 20K off of your production &lt;a href="https://angular.io/"&gt;Angular&lt;/a&gt; bundle.&lt;/p&gt;

&lt;p&gt;Lets start with generating a new Angular app using the &lt;a href="https://cli.angular.io/"&gt;@angular/cli&lt;/a&gt;. The version we are using is &lt;code&gt;6.1.0&lt;/code&gt;.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;ng &lt;span class="nt"&gt;--version&lt;/span&gt;

&lt;span class="o"&gt;[&lt;/span&gt;snip]
...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;]]&gt;</description>
    </item>
    <item>
      <title>But First...The Weather (VIDEO)</title>
      <author>juniper@bendyworks.com (Juniper Ela)</author>
      <pubDate>Tue, 24 Jul 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/but-first-the-weather/index</link>
      <guid>https://bendyworks.com/blog/but-first-the-weather/index</guid>
      <description>&lt;![CDATA[&lt;iframe src="https://player.vimeo.com/video/281521986" width="640" height="360" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;

&lt;h1 id="a-strong-video-front-coming-in"&gt;A Strong Video Front Coming In&lt;/h1&gt;

&lt;p&gt;Bendyworks launches its newest video blog series with an intriguing discussion between Will Strinz and Juniper Ela about their work in programming concerning the weather.&lt;/p&gt;

&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/huginn/huginn"&gt;Hugin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://darksky.net/dev"&gt;Darksky / forecast.io...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;]]&gt;</description>
    </item>
    <item>
      <title>Slaying a UI Antipattern with Web Components (and TypeScript)</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 19 Jul 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/slaying-a-ui-antipattern-with-web-components-and-typescript/index</link>
      <guid>https://bendyworks.com/blog/slaying-a-ui-antipattern-with-web-components-and-typescript/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-07-19-slaying-a-ui-antipattern-with-web-components-and-typescript-e8f033c2.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.npmjs.com/package/node-package"&gt;&lt;code&gt;&amp;lt;node-package&amp;gt;&lt;/code&gt;&lt;/a&gt; is a web component that lets you easily embed details about an &lt;a href="https://www.npmjs.com"&gt;npm&lt;/a&gt; package on your site. To use it you add a tag to your HTML and get a nice bit of UI rendered.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;node-package&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"twitter-status"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/node-package&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src="/assets/images/blog/extra/2018-07-18-node-package-0e289090.png" alt="Screenshot of the node-package component"&gt;&lt;/p&gt;

&lt;p&gt;It's a component...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Live on King Street</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Mon, 16 Jul 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/live-on-king-2018/index</link>
      <guid>https://bendyworks.com/blog/live-on-king-2018/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-07-16-live-on-king-2018-f336742d.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Bendyworks' downtown office is the perfect viewing spot for Live On King Street concerts, and this year we're continuing our tradition of partnering with local non-profits to help them raise money. Tickets will be sold at the door and online (links...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Using Capacitor to Build and Distribute an Elm App</title>
      <author>noreply@bendyworks.com (Will Strinz)</author>
      <pubDate>Fri, 13 Jul 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/capacitor-elm/index</link>
      <guid>https://bendyworks.com/blog/capacitor-elm/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-07-13-capacitor-elm-5c00aa6a.png' /&gt;&lt;/p&gt;&lt;p&gt;In &lt;a href="https://bendyworks.com/blog/ionic-4-elm"&gt;Web Components with Ionic 4 and Elm: Promises and Pitfalls&lt;/a&gt; I looked at building an Elm app using the new Ionic 4 web components. Despite some rough edges and places where the libraries didn't do an especially good job of sharing control of the DOM...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A Tale of Four Components</title>
      <author>noreply@bendyworks.com (Pearl Latteier)</author>
      <pubDate>Fri, 06 Jul 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/tale-of-four-components/index</link>
      <guid>https://bendyworks.com/blog/tale-of-four-components/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-07-06-tale-of-four-components-7f6944a9.jpg' /&gt;&lt;/p&gt;&lt;p&gt;There is more than one way to write a web component. You can build a component from scratch or you can rely on one of a growing number of web component libraries. Libraries are great: they handle both the dullest and the trickiest parts, protecting...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Web Components with Ionic 4 and Elm: Promises and Pitfalls</title>
      <author>noreply@bendyworks.com (Will Strinz)</author>
      <pubDate>Fri, 15 Jun 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/ionic-4-elm/index</link>
      <guid>https://bendyworks.com/blog/ionic-4-elm/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-06-15-ionic-4-elm-6f4034bf.png' /&gt;&lt;/p&gt;&lt;p&gt;Although no firm date has been set, the release of the next version of the &lt;a href="http://ionicframework.com/"&gt;Ionic&lt;/a&gt; framework is approaching. One of the most exciting changes is the shift to using &lt;a href="https://www.webcomponents.org/"&gt;web components&lt;/a&gt; built with &lt;a href="https://stenciljs.com/"&gt;Stencil&lt;/a&gt; for the "core" of the framework. This promises to free...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Heading to We RISE Tech Conference</title>
      <author>noreply@bendyworks.com (Pearl Latteier)</author>
      <pubDate>Wed, 13 Jun 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/we-rise-tech-conference/index</link>
      <guid>https://bendyworks.com/blog/we-rise-tech-conference/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-06-13-we-rise-tech-conference-ef356a51.png' /&gt;&lt;/p&gt;&lt;p&gt;I'm thrilled to report that next week I'm heading to the second annual &lt;a href="https://werise.tech/"&gt;We RISE Tech Conference&lt;/a&gt; in Atlanta. We RISE, hosted by &lt;a href="https://www.meetup.com/Women-Who-Code-Atlanta/"&gt;Women Who Code Atlanta&lt;/a&gt;, features talks by women and their allies of all genders on software development, UX/UI, community...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>PRPL on Rails Part 3: Service Workers</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 01 May 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/prpl-on-rails-part-3-service-worker/index</link>
      <guid>https://bendyworks.com/blog/prpl-on-rails-part-3-service-worker/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-05-01-prpl-on-rails-part-3-service-worker-930a9b71.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This is the third of a three-part series on speeding up your Rails application using techniques from the &lt;a href="https://developers.google.com/web/fundamentals/performance/prpl-pattern/"&gt;PRPL pattern&lt;/a&gt;. Part 1 covers &lt;a href="/blog/prpl-on-rails-part-1-code-splitting"&gt;code splitting&lt;/a&gt;, part 2 shows you how to &lt;a href="/blog/prpl-on-rails-part-2-optimize-rendering"&gt;optimize rendering&lt;/a&gt;, and this part demonstrates pre-caching and runtime caching...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>PRPL on Rails Part 2: Optimize Rendering</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 26 Apr 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/prpl-on-rails-part-2-optimize-rendering/index</link>
      <guid>https://bendyworks.com/blog/prpl-on-rails-part-2-optimize-rendering/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-04-26-prpl-on-rails-part-2-optimize-rendering-5d0d5a7f.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This is the second of a three-part series on speeding up your Rails application using techniques from the &lt;a href="https://developers.google.com/web/fundamentals/performance/prpl-pattern/"&gt;PRPL pattern&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id="performance-matters"&gt;Performance Matters&lt;/h2&gt;

&lt;p&gt;In our &lt;a href="/blog/prpl-on-rails-part-1-code-splitting"&gt;previous post&lt;/a&gt;, we talked about improving your page load time by splitting your into code bundles and...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>PRPL on Rails Part 1: Code Splitting</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 24 Apr 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/prpl-on-rails-part-1-code-splitting/index</link>
      <guid>https://bendyworks.com/blog/prpl-on-rails-part-1-code-splitting/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-04-24-prpl-on-rails-part-1-code-splitting-948ea269.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This is the first of a three-part series on speeding up your Rails application load time using techniques from the &lt;a href="https://developers.google.com/web/fundamentals/performance/prpl-pattern/"&gt;PRPL pattern&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id="performance-matters"&gt;Performance Matters&lt;/h2&gt;

&lt;p&gt;According to a &lt;a href="https://www.doubleclickbygoogle.com/articles/mobile-speed-matters/"&gt;Google study&lt;/a&gt;, the average website takes 19 seconds to load on a mobile phone over...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Awesome times at RailsConf</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Mon, 23 Apr 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/awesome-times-at-railsconf/index</link>
      <guid>https://bendyworks.com/blog/awesome-times-at-railsconf/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-04-23-awesome-times-at-railsconf-5fef1f17.jpg' /&gt;&lt;/p&gt;&lt;p&gt;We had a wonderful time at RailsConf last week. Great people, top-notch content, inspiring ideas, and good fun.&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/blog/extra/2018-04-23-bendyworkers-15c3d144.gif" alt="Bendyworkers having fun"&gt;&lt;/p&gt;

&lt;h2 id="prpl-on-rails-workshop"&gt;PRPL on Rails workshop&lt;/h2&gt;

&lt;p&gt;If you couldn't make it to our workshop, &lt;a href="https://www.notion.so/RailsConf-PRPL-on-Rails-470694f92d76434cb996967bb216b689"&gt;PRPL on Rails&lt;/a&gt;, all of the resources are online. You can work through...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Bendyworkers Head to RailsConf</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Fri, 13 Apr 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyworkers-head-to-railsconf/index</link>
      <guid>https://bendyworks.com/blog/bendyworkers-head-to-railsconf/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-04-13-bendyworkers-head-to-railsconf-981a4ae8.png' /&gt;&lt;/p&gt;&lt;p&gt;We are thrilled to be leading a workshop at RailsConf next week. The workshop, called PRPL on Rails, will demonstrate how to bring the performance lessons from the PRPL pattern (Push, Render, Pre-cache, Lazy load) to Rails apps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://railsconf.com/program/workshops#session-586"&gt;Join us at RailsConf...&lt;/a&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>JSON API Phase 3: API Server</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Tue, 13 Mar 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/json-api-phase-3-api-server/index</link>
      <guid>https://bendyworks.com/blog/json-api-phase-3-api-server/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-03-13-json-api-phase-3-api-server-15b7f91d.png' /&gt;&lt;/p&gt;&lt;!--lint disable no-duplicate-headings--&gt;

&lt;p&gt;&lt;strong&gt;UPDATED MAR 2020:&lt;/strong&gt; Updated code samples to eliminate deprecation warnings for current version of Mongoose, fixed a test name, and adjusted database code to resolve a race condition.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id="developing-an-api-with-express-and-swagger"&gt;Developing an API with Express and Swagger&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="/blog/json-api-phase-1-setup/"&gt;Phase 1: Setting...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;]]&gt;</description>
    </item>
    <item>
      <title>JSON API Phase 2: API Design</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Wed, 28 Feb 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/json-api-phase-2-api-design/index</link>
      <guid>https://bendyworks.com/blog/json-api-phase-2-api-design/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-02-28-json-api-phase-2-api-design-373b27d2.png' /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;UPDATED MAR 2020:&lt;/strong&gt; Updated indentation in YAML code.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id="designing-your-api-with-swagger-and-json-api"&gt;Designing your API with Swagger and JSON API&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="/blog/json-api-phase-1-setup/"&gt;Phase 1: Setting up your projects&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Phase 2: Designing your API with Swagger and JSON API (this post)&lt;/li&gt;
  &lt;li&gt;&lt;a href="/blog/json-api-phase-3-api-server/"&gt;Phase 3: Developing an API with Express...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;]]&gt;</description>
    </item>
    <item>
      <title>JSON API Phase 1: Setup</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Mon, 19 Feb 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/json-api-phase-1-setup/index</link>
      <guid>https://bendyworks.com/blog/json-api-phase-1-setup/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-02-19-json-api-phase-1-setup-03f4443e.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;UPDATED MAR 2020:&lt;/strong&gt; Updated versions of assumed software and the nvm install command, and moved some Swagger setup steps forward from part 3 to allow swagger to work with the referenced version of Node.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id="setting-up-your-projects"&gt;Setting up your projects&lt;/h2&gt;

&lt;p&gt;Welcome! Today you...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>PRPL on Rails Workshop at RailsConf</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 13 Feb 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/prpl-on-rails-workshop-at-railsconf/index</link>
      <guid>https://bendyworks.com/blog/prpl-on-rails-workshop-at-railsconf/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-02-13-prpl-on-rails-workshop-at-railsconf-981a4ae8.png' /&gt;&lt;/p&gt;&lt;p&gt;First we had full stack Rails. Then we had Rails APIs powering Single Page Applications. Now take it to the next level with PRPL Rails. The PRPL (Push, Render, Pre-cache, Lazy-load) pattern condenses the best practices for fast Progressive Web Apps...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Ground Is Shifting</title>
      <author>juniper@bendyworks.com (Juniper Ela)</author>
      <pubDate>Fri, 02 Feb 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-ground-is-shifting/index</link>
      <guid>https://bendyworks.com/blog/the-ground-is-shifting/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-02-02-the-ground-is-shifting-a3988523.png' /&gt;&lt;/p&gt;&lt;p&gt;Smartphones and their apps have been around for almost a decade now.  The traditional smartphone app, while a convenient tool, still suffers from its original core flaw: it needs to be downloaded.  Traditional apps are increasingly expensive and complicated...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Build a Web Component with Nutmeg</title>
      <author>noreply@bendyworks.com (Pearl Latteier)</author>
      <pubDate>Mon, 22 Jan 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/build-a-web-component-with-nutmeg/index</link>
      <guid>https://bendyworks.com/blog/build-a-web-component-with-nutmeg/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-01-22-build-a-web-component-with-nutmeg-ece36b7e.png' /&gt;&lt;/p&gt;&lt;p&gt;You're in love with web components. I know. So am I. Let's not waste time rehearing their benefits and get right to building one. In a &lt;a href="/blog/native-web-components"&gt;previous post&lt;/a&gt;, I wrote about building a web component from scratch. This time I'll use &lt;a href="https://nutmeg.tools"&gt;Nutmeg&lt;/a&gt;, a tool (developed...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Introducing Intersection Observer</title>
      <author>noreply@bendyworks.com (Pearl Latteier)</author>
      <pubDate>Thu, 04 Jan 2018 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/introducing-intersection-observer/index</link>
      <guid>https://bendyworks.com/blog/introducing-intersection-observer/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2018-01-04-introducing-intersection-observer-3ea06de7.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Have you written JavaScript to enable infinite scrolling or to lazy-load images that appear below the fold?&lt;/p&gt;

&lt;p&gt;If you're like me, you did this by listening for scroll events and requesting an element's &lt;code&gt;scrollTop&lt;/code&gt; property or calling &lt;code&gt;getBoundingClientRect...&lt;/code&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Joyful Tech: Angular, Node.js, Performance, and Bad Ideas</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Fri, 03 Nov 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/joyful-tech-44/index</link>
      <guid>https://bendyworks.com/blog/joyful-tech-44/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-11-03-joyful-tech-44-3d9af336.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Here at Bendyworks our mission statement is to &lt;em&gt;share joy and success in our craft&lt;/em&gt; so every once in a while we like to highlight tech news that makes us joyful. Here are some interesting things we saw from Oct 27th through Nov 3rd.&lt;/p&gt;

&lt;h2 id="version-500-of-angular-now-availableangulario"&gt;&lt;a href="https://blog.angular.io/version-5-0-0-of-angular-now-available-37e414935ced"&gt;Version 5.0.0 of...&lt;/a&gt;&lt;/h2&gt;]]&gt;</description>
    </item>
    <item>
      <title>Google Closure Guide: Compiling Without Errors</title>
      <author>peter@bendyworks.com (Peter Schuck)</author>
      <pubDate>Mon, 30 Oct 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/google-closure-no-compile-errors/index</link>
      <guid>https://bendyworks.com/blog/google-closure-no-compile-errors/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-10-30-google-closure-no-compile-errors-4e3ef534.jpg' /&gt;&lt;/p&gt;&lt;h2 id="google-closure-compiler"&gt;Google Closure Compiler&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://developers.google.com/closure/compiler/"&gt;Google Closure Compiler&lt;/a&gt; is an excellent tool for compiling a huge JavaScript &lt;a href="https://en.wikipedia.org/wiki/Single-page_application"&gt;Single Page Application&lt;/a&gt; to a &lt;a href="http://blog.mgechev.com/2016/07/21/even-smaller-angular2-applications-closure-tree-shaking/"&gt;ridiculously small&lt;/a&gt; production size. Unfortunately, Google Closure's power to produce small production JavaScript is inversely...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Joyful Tech: GraphQL, Chrome Security, and Firebug</title>
      <author>peter@bendyworks.com (Peter Schuck)</author>
      <pubDate>Fri, 27 Oct 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/joyful-tech-43/index</link>
      <guid>https://bendyworks.com/blog/joyful-tech-43/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-10-27-joyful-tech-43-268a0748.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Here at Bendyworks our mission statement is to &lt;em&gt;share joy and success in our craft&lt;/em&gt; so every once in a while we like to highlight tech news that makes us joyful. Here are some interesting things we saw from Oct 21st through Oct 27th.&lt;/p&gt;

&lt;h2 id="saying-goodbye-to-firebughttpshacksmozillaorg201710saying-goodbye-to-firebug"&gt;&lt;a href="https://hacks.mozilla.org/2017/10/saying-goodbye-to-firebug/"&gt;Saying Goodbye...&lt;/a&gt;&lt;/h2&gt;]]&gt;</description>
    </item>
    <item>
      <title>Getting started with Webpack: Source Maps</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Wed, 25 Oct 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/getting-started-with-webpack-source-maps/index</link>
      <guid>https://bendyworks.com/blog/getting-started-with-webpack-source-maps/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-10-25-getting-started-with-webpack-source-maps-cca465da.jpg' /&gt;&lt;/p&gt;&lt;p&gt;With the rise of &lt;a href="https://developers.google.com/web/fundamentals/primers/service-workers/"&gt;Service Workers&lt;/a&gt; and performance improvements like &lt;a href="https://code.facebook.com/posts/557147474482256/this-browser-tweak-saved-60-of-requests-to-facebook/"&gt;&lt;code&gt;cache-control: immutable&lt;/code&gt;&lt;/a&gt; becoming critical for modern applications. Tooling is increasingly essential for deploying and updating production code in safe and consistent ways.&lt;/p&gt;

&lt;p&gt;As tooling...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Ionic Eddystone Endeavor</title>
      <author>noreply@bendyworks.com (Ryan Corbin)</author>
      <pubDate>Mon, 23 Oct 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-ionic-eddystone-endeavor/index</link>
      <guid>https://bendyworks.com/blog/the-ionic-eddystone-endeavor/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-10-23-the-ionic-eddystone-endeavor-cc9d4885.jpg' /&gt;&lt;/p&gt;&lt;p&gt;For as long as they've been around I've been interested in &lt;a href="https://en.wikipedia.org/wiki/Bluetooth_low_energy_beacon"&gt;beacons&lt;/a&gt;. Advancing the promise of the traditional RFID, beacons have the advantage of replacing the costly RFID scanner, which kept RFID out of the hands of the general public, with a simple...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Getting started with Webpack: Dev Server</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 19 Oct 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/getting-started-with-webpack-dev-server/index</link>
      <guid>https://bendyworks.com/blog/getting-started-with-webpack-dev-server/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-10-19-getting-started-with-webpack-dev-server-315474c2.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Developers want to move fast. 🚀 🚀 🚀 Manually triggering a rebuild of your source code after ever little change is slow and annoying. With the &lt;a href="https://webpack.js.org/"&gt;Webpack&lt;/a&gt; &lt;a href="https://webpack.js.org/configuration/dev-server/"&gt;Dev Server&lt;/a&gt; and Webpack watch we can greatly improve our code, build, try cycles. We'll use the existing...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Ionic Lazy Loading Bonuses</title>
      <author>noreply@bendyworks.com (Ryan Corbin)</author>
      <pubDate>Tue, 10 Oct 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/ionic-lazy-loading-bonuses/index</link>
      <guid>https://bendyworks.com/blog/ionic-lazy-loading-bonuses/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Ionic Lazy Loading is a meaty topic.  There are a ton of options and with the proper configuration you can cause your loading to happen in just about any order you want.  New to Ionic 3, Lazy Loading won’t reduce the workload, but it will allow you...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Getting started with Webpack: TypeScript</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 28 Sep 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/getting-started-with-typescript-and-webpack/index</link>
      <guid>https://bendyworks.com/blog/getting-started-with-typescript-and-webpack/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-09-28-getting-started-with-typescript-and-webpack-85b473da.jpg' /&gt;&lt;/p&gt;&lt;p&gt;If you're starting a new web project these days, someone on your team is probably pushing for &lt;a href="https://webpack.js.org/"&gt;Webpack&lt;/a&gt; and &lt;a href="https://www.typescriptlang.org/"&gt;TypeScript&lt;/a&gt;. Let's kick off with a little what's what.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript&lt;/strong&gt; is a typed superset of JavaScript that compiles to plain JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Webpack&lt;/strong&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Bendyworks Featured on Madison Noteworthy</title>
      <author>noreply@bendyworks.com (Ashley Powell)</author>
      <pubDate>Tue, 26 Sep 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyworks-madison-noteworthy/index</link>
      <guid>https://bendyworks.com/blog/bendyworks-madison-noteworthy/index</guid>
      <description>&lt;![CDATA[&lt;iframe width="1170" height="658" src="https://www.youtube.com/embed/BO2ZUt0qGwQ" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;We were SO excited to be featured by &lt;a href="http://madisonnoteworthy.com/" title="Madison Noteworthy: INSPIRE, INFORM and EDUCATE Madison entrepreneurs through video"&gt;madisonNoteworthy&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;"On this madisonNoteworthy &lt;a href="http://madisonnoteworthy.com/portfolio/feature-episode-bendyworks/" title="Bendyworks Feature Episode on madisonNoteworthy"&gt;FEATURE EPISODE&lt;/a&gt;, we highlight Bendyworks, a web and mobile app software development company located in downtown Madison, Wisconsin. &lt;a href="http://madisonnoteworthy.com/welcome-new-madison-noteworthy-2/" title="Brandon Williams interview with himself"&gt;Brandon Williams&lt;/a&gt; sits down with...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Most Innovative Company Finalists... Again!</title>
      <author>noreply@bendyworks.com (Ashley Powell)</author>
      <pubDate>Thu, 31 Aug 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/most-innovative-company-finalist-again/index</link>
      <guid>https://bendyworks.com/blog/most-innovative-company-finalist-again/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-08-31-most-innovative-company-finalist-again-79517151.png' /&gt;&lt;/p&gt;&lt;p&gt;For the second year in a row, we are a finalist for the Most Innovative Company Award, given by the &lt;a href="http://greatermadisonchamber.com/"&gt;Greater Madison Chamber of Commerce&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We are so excited to join the ranks of great companies that are making waves in Madison and Beyond.  The other...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Bendyworks Earns Gold from Bike League</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Thu, 17 Aug 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyworks-earns-gold-bike-league/index</link>
      <guid>https://bendyworks.com/blog/bendyworks-earns-gold-bike-league/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-08-17-bendyworks-earns-gold-bike-league-844d49a0.jpg' /&gt;&lt;/p&gt;&lt;p&gt;We're thrilled to announce that the &lt;a href="http://bikeleague.org/"&gt;League of American Bicyclists&lt;/a&gt; awarded us the Gold level as a &lt;a href="http://bikeleague.org/business"&gt;Bicycle Friendly Business&lt;/a&gt;! We've worked hard to make our workplace friendly to bicyclists of all sorts, and special thanks goes to &lt;a href="/blog/authors/ryan_corbin"&gt;Ryan Corbin&lt;/a&gt;, our Bicycle...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>You Know, For Kids</title>
      <author>noreply@bendyworks.com (Ashley Powell)</author>
      <pubDate>Mon, 07 Aug 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/you-know-for-kids/index</link>
      <guid>https://bendyworks.com/blog/you-know-for-kids/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-08-07-you-know-for-kids-e6cde766.jpg' /&gt;&lt;/p&gt;&lt;p&gt;One of the core values at Bendyworks is to do whatever we can to bring underrepresented groups into tech. It fits well with our mission statement: SHARE JOY and SUCCESS in our CRAFT.&lt;/p&gt;

&lt;p&gt;Over the past year or so, we've jumped at opportunities to talk...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Bendyworks Conference Roadshow Late 2017</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Fri, 28 Jul 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-bendyworks-conference-roadshow-late-2017/index</link>
      <guid>https://bendyworks.com/blog/the-bendyworks-conference-roadshow-late-2017/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-07-28-the-bendyworks-conference-roadshow-late-2017-0e8b3aec.jpg' /&gt;&lt;/p&gt;&lt;!--lint disable no-duplicate-headings--&gt;

&lt;p&gt;We're ending 2017 with another strong conference showing. Bendyworkers are giving 21 presentations at 15 events in 10 cities and 1 ocean. Topics include Web Components, Twitter API, Progressive Web Apps, Material Design, salary negotiation and Google...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Building Dynamic Forms in Ionic 2</title>
      <author>noreply@bendyworks.com (James Corey)</author>
      <pubDate>Tue, 25 Jul 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/building-dynamic-forms-in-ionic-2/index</link>
      <guid>https://bendyworks.com/blog/building-dynamic-forms-in-ionic-2/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-07-25-building-dynamic-forms-in-ionic-2-2ed06317.png' /&gt;&lt;/p&gt;&lt;p&gt;At Bendyworks we've been working on growing our in-house expertise in Ionic.  In this blog I'm going to go over one of the more complex form structures available in Ionic 2, displaying dynamic options, and show you how to implement it!&lt;/p&gt;

&lt;h2 id="form-needs"&gt;Form Needs&lt;/h2&gt;]]&gt;</description>
    </item>
    <item>
      <title>Elm on Rails 5.1 with Webpacker</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Mon, 15 May 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/elm-on-rails-5-1-webpacker/index</link>
      <guid>https://bendyworks.com/blog/elm-on-rails-5-1-webpacker/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-05-15-elm-on-rails-5-1-webpacker-cc51c2d8.png' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/tags/elm/"&gt;Elm&lt;/a&gt;, the new hotness in front-end programming, is now (almost) officially supported in Rails 5.1 via the &lt;code&gt;webpacker&lt;/code&gt; gem. The &lt;a href="http://elm-lang.org/"&gt;Elm language&lt;/a&gt; provides strong type-checking in an immutable, functional programming language that compiles down to JavaScript...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Make a Native Web Component with Custom Elements v1 and Shadow DOM v1</title>
      <author>noreply@bendyworks.com (Pearl Latteier)</author>
      <pubDate>Thu, 04 May 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/native-web-components/index</link>
      <guid>https://bendyworks.com/blog/native-web-components/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-05-04-native-web-components-80f1a357.png' /&gt;&lt;/p&gt;&lt;p&gt;Say you have a little form or widget that you use in several different places across your website or in several different projects. You want all the instances to have consistent style and behavior, but you also want them to have some flexibility. Maybe...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Video Messaging in Rails</title>
      <author>noreply@bendyworks.com (James Corey)</author>
      <pubDate>Wed, 15 Mar 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/video-messaging-in-rails/index</link>
      <guid>https://bendyworks.com/blog/video-messaging-in-rails/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-03-15-video-messaging-in-rails-0e2806d0.jpg' /&gt;&lt;/p&gt;&lt;p&gt;We've been working with our friends at the &lt;a href="http://www.chinsup.org"&gt;Chins Up Foundation&lt;/a&gt; to develop an innovative application connecting youth with college athletes through a pen-pal mentorship program.  Recently, we were requested to add video messaging to the application...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>We ♥ Progressive Web Apps II</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 07 Mar 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/we-heart-pwas-part-2/index</link>
      <guid>https://bendyworks.com/blog/we-heart-pwas-part-2/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-03-07-we-heart-pwas-part-2-89f51091.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Back in December, we &lt;a href="/blog/we-heart-progressive-web-apps/"&gt;raved about Progressive Web Apps&lt;/a&gt; – modern web apps that have native mobile features like instant loading, homescreen icons, offline access, and push notifications.&lt;/p&gt;

&lt;p&gt;Now you want to make one, right? Well, okay! We're going to show...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Bendyworks Conference Roadshow Early 2017</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 21 Feb 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-bendyworks-conference-roadshow-early-2017/index</link>
      <guid>https://bendyworks.com/blog/the-bendyworks-conference-roadshow-early-2017/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-02-21-the-bendyworks-conference-roadshow-early-2017-7cc64da8.jpg' /&gt;&lt;/p&gt;&lt;!--lint disable no-duplicate-headings--&gt;

&lt;p&gt;We're kicking off 2017 with a bang. Six Bendyworkers are giving 17 presentations at 13 events in 10 cities in 4 countries and 1 ocean over 6 months. Topics include JavaScript, IoT, immutability, salary, Elm, and the Twitter API. Come and say hi.&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Using HdrHistogram with Ruby</title>
      <author>peter@bendyworks.com (Peter Schuck)</author>
      <pubDate>Tue, 14 Feb 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/using-hdr-histogram-in-ruby/index</link>
      <guid>https://bendyworks.com/blog/using-hdr-histogram-in-ruby/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-02-14-using-hdr-histogram-in-ruby-e66eb7c7.png' /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;TL:DR&lt;/strong&gt; &lt;a href="https://github.com/slact/hdr_histogram_ruby"&gt;HdrHistogram&lt;/a&gt; is a fast and lightweight tool to record a &lt;a href="https://en.wikipedia.org/wiki/Histogram"&gt;histogram&lt;/a&gt; of your applications performance. It also corrects for the problem of &lt;a href="#coordinated_omission"&gt;Coordinated Omission&lt;/a&gt;. To install it run &lt;code&gt;gem install HdrHistogram&lt;/code&gt;&lt;/p&gt;

&lt;h2 id="what-is-hdrhistogram"&gt;What is HdrHistogram?&lt;/h2&gt;

&lt;p&gt;HdrHistogram is a...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Building A Slack Bot With Elixir Part 2</title>
      <author>noreply@bendyworks.com (Will Strinz)</author>
      <pubDate>Mon, 13 Feb 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/building-a-slackbot-in-elixir-part-2/index</link>
      <guid>https://bendyworks.com/blog/building-a-slackbot-in-elixir-part-2/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-02-13-building-a-slackbot-in-elixir-part-2-c353a8d3.png' /&gt;&lt;/p&gt;&lt;p&gt;In the &lt;a href="https://bendyworks.com/blog/building-a-slackbot-in-elixir-part-1/"&gt;first part&lt;/a&gt; of this tutorial, we covered the basics of defining, running, and testing a web server in Elixir using Plug and Cowboy. In this part of the tutorial, we'll build on that groundwork to create a Slack bot that fetches and sends out...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Webpack v2 Quick Start</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Wed, 08 Feb 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/webpack-v2-quick-start/index</link>
      <guid>https://bendyworks.com/blog/webpack-v2-quick-start/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-02-08-webpack-v2-quick-start-7be56d30.png' /&gt;&lt;/p&gt;&lt;p&gt;With Webpack 2.x out of the release client phase, we're here with a quick start guide to get your development project running. This guide will guide you through a minimal setup where you will configure &lt;code&gt;webpack&lt;/code&gt; and it's &lt;code&gt;webpack-dev-sever&lt;/code&gt;. The configuration...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Not At All Definitive Guide To Opening PDF Files In Ionic 2</title>
      <author>noreply@bendyworks.com (Ryan Corbin)</author>
      <pubDate>Wed, 08 Feb 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-not-at-all-definitive-guide-to-opening-pdf-files-in-ionic-2/index</link>
      <guid>https://bendyworks.com/blog/the-not-at-all-definitive-guide-to-opening-pdf-files-in-ionic-2/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Opening PDF’s inside an application is tricky sometimes, but the beauty of Ionic is that a solution is never far out of reach.  Despite that bit of enthusiasm the landscape for this problem is often hard to navigate.  After a project where we had to...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Tragedy of Maybe and Ruby</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Thu, 02 Feb 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/tragedy-maybe-monad-ruby/index</link>
      <guid>https://bendyworks.com/blog/tragedy-maybe-monad-ruby/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;"How is this different from nil?" is the inevitable question I get from rubyists upon learning about the Maybe monad. Until a flash of inspiration the other day, I didn't quite have a good explanation for this question. Sure, I had &lt;em&gt;an&lt;/em&gt; explanation,...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Installing Ruby on Rails Edge with Bundler</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 31 Jan 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/installing-ruby-on-rails-edge-with-bundler/index</link>
      <guid>https://bendyworks.com/blog/installing-ruby-on-rails-edge-with-bundler/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-01-31-installing-ruby-on-rails-edge-with-bundler-026915a7.png' /&gt;&lt;/p&gt;&lt;p&gt;Sometimes you want to check out the latest commits to Ruby on Rails before it's made into an official release. Generally installing Rails is as simple as &lt;code&gt;gem install rails&lt;/code&gt; but getting the latest code committed to the &lt;a href="https://github.com/rails/rails"&gt;rails/rails master branch&lt;/a&gt; is a...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Programmatically accessing ClojureScripts Externs Inference</title>
      <author>peter@bendyworks.com (Peter Schuck)</author>
      <pubDate>Thu, 26 Jan 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/externs-clojurescript/index</link>
      <guid>https://bendyworks.com/blog/externs-clojurescript/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;strong&gt;TLDR&lt;/strong&gt;: As of release &lt;a href="https://github.com/clojure/clojurescript/releases/tag/r1.9.456"&gt;&lt;strong&gt;1.9.456&lt;/strong&gt;&lt;/a&gt; ClojureScript can &lt;a href="https://clojurescript.org/guides/externs"&gt;infer externs&lt;/a&gt; preventing the clobbering of third party JavaScript libraries. We can retrieve the inferred externs programmatically which allows us to create our own custom externs file.&lt;/p&gt;

&lt;h2 id="what-are-externs"&gt;What are externs...&lt;/h2&gt;]]&gt;</description>
    </item>
    <item>
      <title>Building A Slack Bot With Elixir Part 1</title>
      <author>noreply@bendyworks.com (Will Strinz)</author>
      <pubDate>Mon, 09 Jan 2017 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/building-a-slackbot-in-elixir-part-1/index</link>
      <guid>https://bendyworks.com/blog/building-a-slackbot-in-elixir-part-1/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2017-01-09-building-a-slackbot-in-elixir-part-1-c353a8d3.png' /&gt;&lt;/p&gt;&lt;p&gt;Having started out as a Rails shop, Bendyworks is always on the lookout for new tools that give use the same combination of power and developer friendliness. We've been watching Elixir grow in popularity in the last few years, and are attracted to...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Bendyworks Featured in Widen Connectivity Report</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Wed, 28 Dec 2016 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyworks-featured-widen-connectivity-report/index</link>
      <guid>https://bendyworks.com/blog/bendyworks-featured-widen-connectivity-report/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2016-12-28-bendyworks-featured-widen-connectivity-report-3d880e67.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.widen.com/?utm_source=Bendyworks&amp;amp;utm_medium=blog"&gt;Widen&lt;/a&gt;, a &lt;a href="https://en.wikipedia.org/wiki/Digital_asset_management"&gt;digital asset management&lt;/a&gt; product company, knows what it takes to keep companies connected. Their software allows geographically, departmentally, and skillfully diverse individuals at companies collaborate and share photos, illustrations, videos...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Optimizing Your CI and WebPack Builds</title>
      <author>noreply@bendyworks.com (Valerie Burzynski)</author>
      <pubDate>Tue, 06 Dec 2016 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/optimizing-ci-and-webpack/index</link>
      <guid>https://bendyworks.com/blog/optimizing-ci-and-webpack/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2016-12-06-optimizing-ci-and-webpack-0087087b.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Recently, I was running into issues where the builds for a Node project were becoming painfully slow. Local development builds would take well over a minute or more. The CI builds on Jenkins would take at least eight and a half minutes, but would usually...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>We ♥ Progressive Web Apps</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Thu, 01 Dec 2016 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/we-heart-pwas/index</link>
      <guid>https://bendyworks.com/blog/we-heart-pwas/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2016-12-01-we-heart-pwas-5cd7521c.jpg' /&gt;&lt;/p&gt;&lt;p&gt;This fall, we’ve had the great fortune to learn and speak about Progressive Web Apps at &lt;a href="/blog/the-bendyworks-conference-roadshow-2016"&gt;conferences around the world&lt;/a&gt;. We think PWAs are pretty PWAsome! In this post we’ll tell you why, and in a future missive we’ll delve into the technical features...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Elm for the Frontend, Right Now (Updated for Elm 0.18)</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Wed, 23 Nov 2016 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/elm-frontend-right-now-updated-for-0-18/index</link>
      <guid>https://bendyworks.com/blog/elm-frontend-right-now-updated-for-0-18/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;The following article was &lt;a href="/blog/elm-frontend-right-now/"&gt;originally written&lt;/a&gt; in July 2015 for the 0.16 release of the Elm programming language. It has been rewritten here in November 2016 to comply with the syntactic and semantic changes of Elm 0.18. Enjoy!&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;a href="https://changelog.com/" title="The Changelog Web Page"&gt;The Changelog&lt;/a&gt; recently...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Bendyworks Featured in WI Real Estate Blog</title>
      <author>noreply@bendyworks.com (Ashley Powell)</author>
      <pubDate>Wed, 02 Nov 2016 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyworks-featured-in-wi-real-estate/index</link>
      <guid>https://bendyworks.com/blog/bendyworks-featured-in-wi-real-estate/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;We had a &lt;a href="http://www.wisconsinrealestate.com/articles/bendyworks-adapts-to-your-needs-while-building-powerful-software-for-your-business"&gt;great article&lt;/a&gt; written in Wisconsin Real Estate, about how the way we do business creates a powerful result for our clients.  Check it out!&lt;/p&gt;

]]&gt;</description>
    </item>
    <item>
      <title>The Bendyworks Conference Roadshow 2016</title>
      <author>noreply@bendyworks.com (Abraham Williams)</author>
      <pubDate>Tue, 06 Sep 2016 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-bendyworks-conference-roadshow-2016/index</link>
      <guid>https://bendyworks.com/blog/the-bendyworks-conference-roadshow-2016/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2016-09-06-the-bendyworks-conference-roadshow-2016-c88813e0.jpg' /&gt;&lt;/p&gt;&lt;!-- lint disable no-duplicate-headings--&gt;

&lt;p&gt;The fall is always a busy time of year. Visiting family, pressing cider, eating pie. Here at Bendyworks we are rapidly rolling into full conference season. Check out these presentations coming to conferences near you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; 4 Bendyworkers giving...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>August Bendynews!</title>
      <author>noreply@bendyworks.com (Ashley Powell)</author>
      <pubDate>Thu, 01 Sep 2016 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/august-bendynews/index</link>
      <guid>https://bendyworks.com/blog/august-bendynews/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2016-09-01-august-bendynews-7c528a60.jpg' /&gt;&lt;/p&gt;&lt;p&gt;It seems like Bendyworkers are always out and about doing amazing things in the Madison community and beyond.  I thought I’d start sharing what we’re up to and where we’ve been.  It’s exciting stuff!&lt;/p&gt;

&lt;p&gt;This has been a busy couple of weeks: it was Madison...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Parallelizing HTTP Requests in Clojure</title>
      <author>peter@bendyworks.com (Peter Schuck)</author>
      <pubDate>Tue, 05 Jul 2016 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/parallelizing-http-requests-clojure/index</link>
      <guid>https://bendyworks.com/blog/parallelizing-http-requests-clojure/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;We’ve been working our way through &lt;em&gt;&lt;a href="http://www.braveclojure.com/"&gt;Clojure for the Brave and True&lt;/a&gt;&lt;/em&gt; and enjoyed solving &lt;a href="http://www.braveclojure.com/zombie-metaphysics/#Exercises"&gt;Exercise 2 from Chapter 10&lt;/a&gt; so much that we’d like to share our solution with you!&lt;/p&gt;

&lt;h2 id="the-problem"&gt;The problem&lt;/h2&gt;

&lt;p&gt;For context, the exercise asks us to consume some data from an API...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Leveling up Clojure’s Hash Maps</title>
      <author>peter@bendyworks.com (Peter Schuck)</author>
      <pubDate>Fri, 18 Dec 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/leveling-clojures-hash-maps/index</link>
      <guid>https://bendyworks.com/blog/leveling-clojures-hash-maps/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;strong&gt;TLDR&lt;/strong&gt;: We implemented the Lean &lt;a href="https://en.wikipedia.org/wiki/Hash_array_mapped_trie"&gt;Hash-Array Mapped Trie&lt;/a&gt; (HAMT) in ClojureScript (see here: &lt;a href="https://github.com/bendyworks/lean-map"&gt;https://github.com/bendyworks/lean-map&lt;/a&gt;) and have seen performance improvements of 2x in iteration, 2–4x in hashing the map, and an order of magnitude in equality...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Meetings and You</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Wed, 28 Oct 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/meetings-and-you/index</link>
      <guid>https://bendyworks.com/blog/meetings-and-you/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;a href="https://twitter.com/twopoint718"&gt;Chris Wilson&lt;/a&gt; sent out a short missive back when he was a Bendyworker titled “Meetings and You.” In it, he offers a “refresher on Meetings 101.” In the interest of improving meetings everywhere, here it is reproduced (with permission) in its entirety...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A tale of two selectors in HTML and CSS</title>
      <author>peter@bendyworks.com (Peter Schuck)</author>
      <pubDate>Mon, 19 Oct 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-tale-of-two-selectors/index</link>
      <guid>https://bendyworks.com/blog/a-tale-of-two-selectors/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;In the course of normal web development we're used to encountering weird quirks of various browsers, but this one left us flabbergasted. The root of the problem was using &lt;code&gt;document.querySelector&lt;/code&gt;s for HTML elements with &lt;code&gt;id&lt;/code&gt;s that had leading numbers....&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Rails Enum is a Sharp Knife</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Tue, 18 Aug 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/rails-enum-sharp-knife/index</link>
      <guid>https://bendyworks.com/blog/rails-enum-sharp-knife/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;When we say something "is a sharp knife," we mean that it is eminently valuable if used correctly, and exceptionally hazardous when wielded incorrectly or without effective training. It's similar to the Principle of Least Astonishment, but with a harmful...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Elm for the Frontend, Right Now</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Wed, 01 Jul 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/elm-frontend-right-now/index</link>
      <guid>https://bendyworks.com/blog/elm-frontend-right-now/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: This article was written for Elm 0.16 and is now out of date. Many of the concepts discussed in this article were removed in the upgrade to 0.17, and some of the Elm syntax was changed in the move to 0.18. Please read the &lt;a href="/blog/elm-frontend-right-now-updated-for-0-18/"&gt;article we rewrote for...&lt;/a&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Using Linux C APIs in Swift: Glob</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Thu, 25 Jun 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/using-linux-c-apis-in-swift-glob/index</link>
      <guid>https://bendyworks.com/blog/using-linux-c-apis-in-swift-glob/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2015-06-25-using-linux-c-apis-in-swift-glob-7d1c7d61.png' /&gt;&lt;/p&gt;&lt;p&gt;With Apple's announcement that &lt;a href="https://developer.apple.com/swift/blog/?id=29"&gt;Swift is coming to Linux&lt;/a&gt;, it's time to think about how Swift can be leveraged as a &lt;a href="https://en.wikipedia.org/wiki/System_programming_language"&gt;system language&lt;/a&gt; rather than simply an app language.&lt;/p&gt;

&lt;p&gt;In order to function as a systems language, we need an easy interface to the primitives...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>AngularJS and Rails Donuts</title>
      <author>noreply@bendyworks.com (Will Strinz)</author>
      <pubDate>Fri, 19 Jun 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/angularjs-rails-donuts/index</link>
      <guid>https://bendyworks.com/blog/angularjs-rails-donuts/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2015-06-19-angularjs-rails-donuts-95977a70.png' /&gt;&lt;/p&gt;&lt;p&gt;Interested in mocking up a modern-looking interface to some data? Using AngularJS to interact with an existing Rails project makes it easy to go from a plain old CRUD app to a modern, surprisingly full-featured UI.&lt;/p&gt;

&lt;h2 id="cruddy-angular-donuts"&gt;CRUDdy Angular Donuts&lt;/h2&gt;
&lt;p&gt;For instructive...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Haskell's New Packaging Tool, "Stack"</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Mon, 15 Jun 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/haskells-new-packaging-tool-stack/index</link>
      <guid>https://bendyworks.com/blog/haskells-new-packaging-tool-stack/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2015-06-15-haskells-new-packaging-tool-stack-ed3a40da.png' /&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="FPComplete home page" href="https://www.fpcomplete.com"&gt;FPComplete&lt;/a&gt; &lt;a title="Announcing First Public Beta of Stack" href="https://www.fpcomplete.com/blog/2015/06/announcing-first-public-beta-stack"&gt;recently announced&lt;/a&gt; a new tool for working with Haskell projects, &lt;a href="https://github.com/commercialhaskell/stack"&gt;stack&lt;/a&gt;. Stack is a direct response to &lt;a title="Haskell User Survey Results" href="https://www.fpcomplete.com/blog/2015/05/thousand-user-haskell-survey"&gt;a big reported thorn in the side&lt;/a&gt; of anyone using Haskell, namely, &lt;a title='"Cabal Hell" search results' href="https://www.google.com/#q=cabal+hell"&gt;working with cabal&lt;/a&gt;. There have been previous efforts in this area. The...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Scenic Route to Becoming a Designer: A Story of Leveraging One's Life Journeys</title>
      <author>noreply@bendyworks.com (Kelly Rauwerdink)</author>
      <pubDate>Mon, 13 Apr 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/scenic-route-becoming-designer-story-leveraging-ones-life-journeys/index</link>
      <guid>https://bendyworks.com/blog/scenic-route-becoming-designer-story-leveraging-ones-life-journeys/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2015-04-13-scenic-route-becoming-designer-story-leveraging-ones-life-journeys-01983b0d.png' /&gt;&lt;/p&gt;&lt;style&gt;
.post-content figure, .post-content .aligncenter { text-align: center; margin: 0 auto; display: block; }
&lt;/style&gt;

&lt;p&gt;My interest and exposure in design started from a young age. My father and mother have been running a sign company for 40 years. They make hand...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Cut &amp; Paste Rich Text with Pandoc and Markdown</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Fri, 10 Apr 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/cut-paste-rich-text-pandoc-markdown/index</link>
      <guid>https://bendyworks.com/blog/cut-paste-rich-text-pandoc-markdown/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;I love the plain-text goodness of &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt; for taking notes and writing documentation. Most of the tooling in my world plays nicely with it and so &lt;em&gt;almost&lt;/em&gt; all is well. GitHub will render Markdown READMEs and other documents handsomely. Heck, they even...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Frank on Fire: Getting Started with Sinatra and Ember-CLI</title>
      <author>noreply@bendyworks.com (Will Strinz)</author>
      <pubDate>Tue, 27 Jan 2015 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/frank-fire-sinatra-ember-cli/index</link>
      <guid>https://bendyworks.com/blog/frank-fire-sinatra-ember-cli/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2015-01-27-frank-fire-sinatra-ember-cli-8a1a31ab.png' /&gt;&lt;/p&gt;&lt;p&gt;Here at Bendyworks, we've noticed Ember.js's growing adoption in the front-end community and have found that it strikes a good balance between flexibility and adherence to battle tested architectural practices.&lt;/p&gt;

&lt;p&gt;Ember-CLI takes things one step further...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Writing a Haskell API Server, Part 4</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Tue, 23 Dec 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/haskell-api-server-4/index</link>
      <guid>https://bendyworks.com/blog/haskell-api-server-4/index</guid>
      <description>&lt;![CDATA[&lt;h2 id="show-me-the-code"&gt;Show me the code!&lt;/h2&gt;

&lt;p&gt;If you’ve been following along with the blog posts (parts: &lt;a href="/actually-using-the-database/" title="Actually Using the Database"&gt;one&lt;/a&gt;, &lt;a href="/haskell-api-server-2/" title="Making the Domain Work for You"&gt;two&lt;/a&gt;, and &lt;a href="/authentication-via-haskell/" title="Guarantee Authentication via Haskell’s Type System"&gt;three&lt;/a&gt;) then you’ll know quite a few details about how the project works. The last piece, obviously, is how it all fits together. So we’re open sourcing  the...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Guarantee Authentication via Haskell's Type System</title>
      <author>noreply@bendyworks.com (Jon Childress)</author>
      <pubDate>Mon, 15 Dec 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/authentication-via-haskell/index</link>
      <guid>https://bendyworks.com/blog/authentication-via-haskell/index</guid>
      <description>&lt;![CDATA[&lt;h1 id="writing-a-haskell-api-server-part-3"&gt;Writing a Haskell API Server, Part 3&lt;/h1&gt;

&lt;p&gt;In &lt;a href="https://bendyworks.com/actually-using-the-database/"&gt;part 1&lt;/a&gt; of our series on writing a JSON API in Haskell, &lt;a href="https://bendyworks.com/author/chriswilson/"&gt;Chris&lt;/a&gt; and I discussed fully utilizing the database in an application. In &lt;a href="https://bendyworks.com/haskell-api-server-2/"&gt;part 2&lt;/a&gt; we proceeded to closely mirror our domain logic using Haskell &lt;em&gt;types&lt;/em&gt; and...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Writing a Haskell API Server, Part 2</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Thu, 11 Dec 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/haskell-api-server-2/index</link>
      <guid>https://bendyworks.com/blog/haskell-api-server-2/index</guid>
      <description>&lt;![CDATA[&lt;h1 id="making-the-domain-work-for-you"&gt;Making the Domain Work for You&lt;/h1&gt;

&lt;p&gt;Back in &lt;a href="https://bendyworks.com/actually-using-the-database/" title="Part 1"&gt;part 1&lt;/a&gt; we spent a fair amount of time working to make sure that as much of the low-level data logic of our Haskell api server was kept in the database as possible. Things like auto-incrementing ids, created_at...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Caravan: Ruby API Versioning &amp; Enforcement</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Tue, 02 Dec 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/caravan-ruby-api-versioning-enforcement/index</link>
      <guid>https://bendyworks.com/blog/caravan-ruby-api-versioning-enforcement/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-12-02-caravan-ruby-api-versioning-enforcement-6f9afa28.png' /&gt;&lt;/p&gt;&lt;p&gt;So you’ve built a Ruby API. Awesome sauce! You’ve set yourself up for success whether you build a rich client-side JavaScript app or native app. Hell, you could even shove it into a much larger Service-Oriented Architecture cluster. Nice.&lt;/p&gt;

&lt;p&gt;But something...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Actually Using the Database</title>
      <author>noreply@bendyworks.com (Jon Childress)</author>
      <pubDate>Thu, 13 Nov 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/actually-using-the-database/index</link>
      <guid>https://bendyworks.com/blog/actually-using-the-database/index</guid>
      <description>&lt;![CDATA[&lt;h1 id="writing-a-haskell-api-server-part-1"&gt;Writing a Haskell API Server, Part 1&lt;/h1&gt;

&lt;p&gt;&lt;a href="http://github.com/twopoint718"&gt;Chris Wilson&lt;/a&gt;‘s and my mission for Bendyworks was ostensibly simple: build a secure database-backed API server in Haskell. We didn’t expect to be treading new-ish ground. When we began architecting, we could’ve...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Iconic Madison – Free Icon Set</title>
      <author>noreply@bendyworks.com (Kelly Rauwerdink)</author>
      <pubDate>Fri, 24 Oct 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-iconic-madison/index</link>
      <guid>https://bendyworks.com/blog/the-iconic-madison/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-10-24-the-iconic-madison-63c9a6d8.png' /&gt;&lt;/p&gt;&lt;p&gt;As a treat to the upcoming homecoming, Bendyworks would like to issue our very own Madison themed icon set for all of you to enjoy. We tried to capture the nature of our fine city in twelve icons. This is inspired by the sights and places in between...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>2014 Rails Rumble</title>
      <author>noreply@bendyworks.com (Mic Funk)</author>
      <pubDate>Sun, 19 Oct 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/2014-rails-rumble/index</link>
      <guid>https://bendyworks.com/blog/2014-rails-rumble/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;We just completed the 2014 Rails Rumble. We built an app called &lt;a href="http://gatherings.io"&gt;Gatherings&lt;/a&gt; for coordinating Game and TV viewing nights with friends.&lt;/p&gt;

&lt;p&gt;More details coming soon!&lt;/p&gt;
]]&gt;</description>
    </item>
    <item>
      <title>The Old and the New: SOAP and Ember.js</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Thu, 11 Sep 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/old-new-soap-ember-js/index</link>
      <guid>https://bendyworks.com/blog/old-new-soap-ember-js/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-09-11-old-new-soap-ember-js-cc633294.png' /&gt;&lt;/p&gt;&lt;p&gt;We don’t always get to choose the technologies we have to deal with everyday. I, for one, would love to be using an iPhone 9 right now, but it seems Apple hasn’t yet invented it. Despite it being 2014, some of us have to deal with SOAP every day and...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Two Keynote tips that everyone should know</title>
      <author>noreply@bendyworks.com (Matt Gauger)</author>
      <pubDate>Fri, 15 Aug 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/two-keynote-tips-that-everyone-should-know/index</link>
      <guid>https://bendyworks.com/blog/two-keynote-tips-that-everyone-should-know/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;As a frequent speaker, I hook my laptop up to strange projectors that my laptop has never seen before. I also need to get my presentation working quickly as any delay or perceived technical problems set a poor tone for the presentation and stress me...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Transducers: Clojure's Next Big Idea</title>
      <author>peter@bendyworks.com (Peter Schuck)</author>
      <pubDate>Thu, 14 Aug 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/transducers-clojures-next-big-idea/index</link>
      <guid>https://bendyworks.com/blog/transducers-clojures-next-big-idea/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-08-14-transducers-clojures-next-big-idea-4e3464b0.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Recently Rich Hickey &lt;a href="http://blog.cognitect.com/blog/2014/8/6/transducers-are-coming"&gt;announced&lt;/a&gt; transducers for Clojure, the next big idea in Clojure after &lt;a href="http://clojure.com/blog/2012/05/08/reducers-a-library-and-model-for-collection-processing.html"&gt;reducers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In Clojure, we often work with &lt;a href="http://clojure.org/data_structures#Data%20Structures-Collections"&gt;collections&lt;/a&gt; in various types of &lt;a href="http://clojure.org/sequences"&gt;sequences&lt;/a&gt; (lazy or not), and &lt;a href="http://clojure.com/blog/2013/06/28/clojure-core-async-channels.html"&gt;core.async channels&lt;/a&gt;. The workhorse functions in Clojure...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Why We Can't Wait for Madison+ Ruby</title>
      <author>noreply@bendyworks.com (Amy Unger)</author>
      <pubDate>Mon, 11 Aug 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/why-we-cant-wait-for-madison-ruby/index</link>
      <guid>https://bendyworks.com/blog/why-we-cant-wait-for-madison-ruby/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;August in Madison always brings a buzz of excitement for Madison+ Ruby. In just 10 days we will welcome members of the international Ruby community to our hometown (we’re honored!).&lt;/p&gt;

&lt;p&gt;Madison+ Ruby has set a high bar for Ruby conferences ever since...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>BendyConf: Tech Education for the Rest of Us</title>
      <author>noreply@bendyworks.com (Glynnis Ritchie)</author>
      <pubDate>Wed, 06 Aug 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyconf-tech-education-for-the-rest-of-us/index</link>
      <guid>https://bendyworks.com/blog/bendyconf-tech-education-for-the-rest-of-us/index</guid>
      <description>&lt;![CDATA[&lt;iframe src="//player.vimeo.com/video/100324068" width="500" height="281" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href="http://vimeo.com/100324068"&gt;BendyConf 2014: "Tech Education for the Rest of Us" by Betsy Lorton&lt;/a&gt; from &lt;a href="http://vimeo.com/bendyworks"&gt;Bendyworks&lt;/a&gt; on &lt;a href="https://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://devbootcamp.com/"&gt;Dev Bootcamp&lt;/a&gt; is one of many programs to crop up  in the last few years offering an intense, immersive educational setting where those with or without experience...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Tessel: A First Look at JavaScript on Hardware</title>
      <author>noreply@bendyworks.com (Matt Gauger)</author>
      <pubDate>Mon, 04 Aug 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/tessel-first-look-javascript-on-hardware/index</link>
      <guid>https://bendyworks.com/blog/tessel-first-look-javascript-on-hardware/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-08-04-tessel-first-look-javascript-on-hardware-d2f5ce41.jpg' /&gt;&lt;/p&gt;&lt;p&gt;When a small red circuit board called the Tessel appeared on a crowd-funding site over a year ago, its promise to bring simplicity to hardware hacking caught my eye. It’s now on the market and, with a project percolating in my mind, I ordered one to...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Externally Embedding Ember</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Wed, 30 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/externally-embedding-ember/index</link>
      <guid>https://bendyworks.com/blog/externally-embedding-ember/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;We’ve been playing around with &lt;a href="http://emberjs.com"&gt;Ember&lt;/a&gt; since before it was extracted from &lt;a href="http://sproutcore.com"&gt;SproutCore&lt;/a&gt;, and it wasn’t until recently that we got this unusual request from one of our clients: “Can you embed an Ember app in an external page like you would Google Analytics...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>BendyConf: A Paean To Plain Text</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Wed, 30 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyconf-a-paean-to-plain-text/index</link>
      <guid>https://bendyworks.com/blog/bendyconf-a-paean-to-plain-text/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;a href="http://vimeo.com/99659930"&gt;BendyConf 2014: “A Paean To Plain Text” by Chris Wilson&lt;/a&gt; from &lt;a href="http://vimeo.com/bendyworks"&gt;Bendyworks&lt;/a&gt; on &lt;a href="https://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this day and age of rich documents with multimedia features, what can we say about plain text? Is there any place for it any longer?&lt;/p&gt;

&lt;p&gt;In this &lt;del&gt;talk&lt;/del&gt; poem Chris suggests...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>BendyConf: Bad Estimating Games</title>
      <author>noreply@bendyworks.com (Rachel Keranen)</author>
      <pubDate>Tue, 29 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyconf-bad-estimating-games/index</link>
      <guid>https://bendyworks.com/blog/bendyconf-bad-estimating-games/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-07-29-bendyconf-bad-estimating-games-1da31cc2.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Estimation is a crucial but challenging element to managing any software project. Without estimates, we can’t say what stories (or features, in our lingo) are in scope or not in scope for a given development phase. At the same time, the process of...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>BendyConf: One Art Please</title>
      <author>noreply@bendyworks.com (Rachel Keranen)</author>
      <pubDate>Mon, 28 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyconf-one-art-please/index</link>
      <guid>https://bendyworks.com/blog/bendyconf-one-art-please/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;A guy walks into a web shop.&lt;/p&gt;

&lt;p&gt;I’m thinking of starting a travel blog,” he says.&lt;/p&gt;

&lt;p&gt;“I’m sure you’ll need a logo.”&lt;/p&gt;

&lt;p&gt;“Oh, a logo? Can you make me one of those?”&lt;/p&gt;

&lt;p&gt;And so begins the act of arting, as Bendyworks designer Kelly Rauwerdink calls it, a black...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A Non-SEO’s View of MozCon: Day Three</title>
      <author>noreply@bendyworks.com (Rachel Keranen)</author>
      <pubDate>Fri, 25 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-non-seos-view-of-mozcon-day-three/index</link>
      <guid>https://bendyworks.com/blog/a-non-seos-view-of-mozcon-day-three/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-07-25-a-non-seos-view-of-mozcon-day-three-b41b61f0.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;I’m not an SEO. Until MozCon, I didn’t realize SEO (Search Engine Optimization) could be used as a job title. I knew that keywords and links are important for building site traffic, but meeting over a thousand people at MozCon whose entire careers...&lt;/em&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Why Clojure?</title>
      <author>noreply@bendyworks.com (Devin Walters)</author>
      <pubDate>Wed, 23 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/why-clojure/index</link>
      <guid>https://bendyworks.com/blog/why-clojure/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-07-23-why-clojure-049d1281.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Clojure has been growing in popularity since its first major release in 2008. If you or your company is interested in understanding the value of Clojure at a high level, read on.&lt;/p&gt;

&lt;p&gt;Clojure might be the answer if:&lt;/p&gt;

&lt;h3 id="your-existing-application-is-written-in-java"&gt;Your existing application is written...&lt;/h3&gt;]]&gt;</description>
    </item>
    <item>
      <title>A Non-SEO’s View of MozCon: Day Two</title>
      <author>noreply@bendyworks.com (Rachel Keranen)</author>
      <pubDate>Wed, 23 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-non-seos-view-of-mozcon-day-two/index</link>
      <guid>https://bendyworks.com/blog/a-non-seos-view-of-mozcon-day-two/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-07-23-a-non-seos-view-of-mozcon-day-two-b41b61f0.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;I’m not an SEO. Until MozCon, I didn’t realize SEO (Search Engine Optimization) could be used as a job title. I knew that keywords and links are important for building site traffic, but meeting over a thousand people at MozCon whose entire careers...&lt;/em&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>A Non-SEO's View of MozCon: Day One</title>
      <author>noreply@bendyworks.com (Rachel Keranen)</author>
      <pubDate>Tue, 22 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/a-non-seos-view-of-mozcon-day-one/index</link>
      <guid>https://bendyworks.com/blog/a-non-seos-view-of-mozcon-day-one/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-07-22-a-non-seos-view-of-mozcon-day-one-b41b61f0.jpg' /&gt;&lt;/p&gt;&lt;p&gt;I’m not an SEO. Until MozCon, I didn’t realize SEO (Search Engine Optimization) could be used as a job title. I knew that keywords and links are important for building site traffic, but meeting over a thousand people at MozCon whose entire careers...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>"Technology is a black box to me."</title>
      <author>noreply@bendyworks.com (Cea Stapleton)</author>
      <pubDate>Mon, 21 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/technology-is-a-black-box-to-me/index</link>
      <guid>https://bendyworks.com/blog/technology-is-a-black-box-to-me/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-07-21-technology-is-a-black-box-to-me-6afaddf2.png' /&gt;&lt;/p&gt;&lt;h1 id="stuff"&gt;Stuff&lt;/h1&gt;

&lt;p&gt;When we speak to prospective clients or when we explain what we do to people we meet, they often tell us that they don’t understand technology or software. We hear a range of comments from, “I don’t know that much about tech” to “I’m so software...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Ruby? Rails? Ruby on Rails?</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Fri, 18 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/ruby-rails-ruby-on-rails/index</link>
      <guid>https://bendyworks.com/blog/ruby-rails-ruby-on-rails/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-07-18-ruby-rails-ruby-on-rails-45b00b4c.jpg' /&gt;&lt;/p&gt;&lt;blockquote&gt;
  &lt;p&gt;This post is one in a series of blog posts that answer some of the most common questions we get from prospective and current clients. All of the posts in this series are under the &lt;a href="https://bendyworks.com/tag/questions/" title="Questions tag"&gt;Questions tag&lt;/a&gt; if you want to view more like this.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As a consultancy...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>BendyConf: Introduction To Firefox OS</title>
      <author>noreply@bendyworks.com (Will Strinz)</author>
      <pubDate>Tue, 15 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyconf-introduction-to-firefox-os/index</link>
      <guid>https://bendyworks.com/blog/bendyconf-introduction-to-firefox-os/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Josh’s BendyConf talk introduced us to Firefox OS, an open source, web focused mobile operating system developed by Mozilla. Although it has been available for more than a year, this June marked the release of version 2.0, making now a good time to...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>BendyConf: Share, Learn, Enjoy</title>
      <author>noreply@bendyworks.com (Cea Stapleton)</author>
      <pubDate>Wed, 09 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyconf-share-learn-enjoy/index</link>
      <guid>https://bendyworks.com/blog/bendyconf-share-learn-enjoy/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;We believe it’s important that companies provide a forum for employees to share their passions, learn about a diverse array of topics, and enjoy the company of their coworkers. For us at Bendyworks, a big way we do that is through our internal conference...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Velocity and Working Software</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Tue, 08 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/velocity-and-working-software/index</link>
      <guid>https://bendyworks.com/blog/velocity-and-working-software/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-07-08-velocity-and-working-software-d1db6cf2.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Four inches per minute. Two hundred forty miles per seven years. One and a half millimeters per second. Even without something to compare to, most would consider this an inordinately slow pace. And yet this is the average velocity of an engineering...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>BendyConf: The Internet Is Your New Database</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Wed, 02 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bendyconf-the-internet-is-your-new-database/index</link>
      <guid>https://bendyworks.com/blog/bendyconf-the-internet-is-your-new-database/index</guid>
      <description>&lt;![CDATA[&lt;iframe width="420" height="315" src="https://www.youtube.com/embed/4WbITDfZooE" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;

&lt;p&gt;In his talk &lt;em&gt;The Internet Is Your New Database,&lt;/em&gt; Will laid bare the ideas behind the &lt;em&gt;semantic web.&lt;/em&gt; While usually shrouded in misunderstanding, the semantic web has &lt;em&gt;lots&lt;/em&gt; of cool ideas packed in it.&lt;/p&gt;

&lt;h2 id="triples"&gt;Triples&lt;/h2&gt;

&lt;p&gt;Will started with the simple notion of a...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Towards Safe, Welcoming Conferences and Communities</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Tue, 01 Jul 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/towards-safe-welcoming-conferences-and-communities/index</link>
      <guid>https://bendyworks.com/blog/towards-safe-welcoming-conferences-and-communities/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;For a while now, Bendyworks has offered its employees an annual budget of $1,000 for attending conferences. Travel, lodging, tickets… if it relates to attending a conference, we’ve got our team covered. And if a Bendyworker is speaking at the conference...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Music atop the MMoCA</title>
      <author>noreply@bendyworks.com (Rachel Keranen)</author>
      <pubDate>Wed, 25 Jun 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/music-atop-the-mmoca/index</link>
      <guid>https://bendyworks.com/blog/music-atop-the-mmoca/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-06-25-music-atop-the-mmoca-3ec80b81.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Can’t get enough summer tunes? We certainly can’t, and so we’ve partnered with a number of local businesses to bring more music al fresco to our fine city.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/events/793120597378380/?ref=22"&gt;ELEVATE&lt;/a&gt;, a free concert on the roof of the Madison Museum of Contemporary Art, places beautiful...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Swift Syntax Highlighting Workaround for Blogging</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Mon, 09 Jun 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/swift-syntax-highlighting-workaround-for-blogging/index</link>
      <guid>https://bendyworks.com/blog/swift-syntax-highlighting-workaround-for-blogging/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Since Swift was announced less than one week ago, we as a community can’t reasonably expect syntax rules to be pulled into popular highlighting libraries like &lt;a href="http://pygments.org" title="Pygments"&gt;Pygments&lt;/a&gt; yet (though it’s certainly already in the works). You’ll notice in our most recent...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Unit Testing in Swift</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Fri, 06 Jun 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/unit-testing-in-swift/index</link>
      <guid>https://bendyworks.com/blog/unit-testing-in-swift/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-06-06-unit-testing-in-swift-52ce106e.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Swift, being all the rage these last four days, has definitely livened up our programming chat room quite a bit. With cautious optimism, we (Betsy and Brad) delved into the Xcode beta, curious about the state of testing with Swift. For the purposes...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Conference Review: BayHac 2014</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Tue, 27 May 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/conference-review-bayhac-2014/index</link>
      <guid>https://bendyworks.com/blog/conference-review-bayhac-2014/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-05-27-conference-review-bayhac-2014-ef992a1f.png' /&gt;&lt;/p&gt;&lt;p&gt;I recently attended &lt;a href="http://www.haskell.org/haskellwiki/BayHac2014"&gt;BayHac 2014&lt;/a&gt;, the Bay Area Haskell Hackathon, and I wanted to cover some of my impressions from the conference. I’m breaking it down by the days and the things that I attended. There’s a ton more on the event page linked above for...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Keeping up with Bendyworks</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Fri, 23 May 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/keeping-up-with-bendyworks/index</link>
      <guid>https://bendyworks.com/blog/keeping-up-with-bendyworks/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-05-23-keeping-up-with-bendyworks-826976f8.jpg' /&gt;&lt;/p&gt;&lt;p&gt;In our neighborhood spring has arrived. For us here in Wisconsin, that means we crawl out of our frost caves and igloos and offer sacrifices of cheese to the Sky-serpent so that he regurgitates Sky-orb for the summer. Also there’s lots of road construction...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Sponsorship spotlight: Ashe Dryden and Diversity in Tech</title>
      <author>noreply@bendyworks.com (Glynnis Ritchie)</author>
      <pubDate>Mon, 17 Mar 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/sponsorship-spotlight-ashe-dryden-and-diversity-in-tech/index</link>
      <guid>https://bendyworks.com/blog/sponsorship-spotlight-ashe-dryden-and-diversity-in-tech/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-03-17-sponsorship-spotlight-ashe-dryden-and-diversity-in-tech-1831bc50.jpg' /&gt;&lt;/p&gt;&lt;p&gt;Throughout the year, Bendyworks contributes to a number of community-based events including meet-ups, conferences, and even a summer concert series that takes place just outside our office on King Street. This year we’re also sponsoring individuals...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Sharing lessons learned</title>
      <author>noreply@bendyworks.com (Amy Unger)</author>
      <pubDate>Tue, 11 Mar 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/sharing-lessons-learned/index</link>
      <guid>https://bendyworks.com/blog/sharing-lessons-learned/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-03-11-sharing-lessons-learned-7867c6de.png' /&gt;&lt;/p&gt;&lt;p&gt;There are always many projects happening at Bendyworks, and while we’re a curious and talkative bunch, often our developers and designers don’t have the full picture of what’s happening in other projects. Our main way of sharing project knowledge has...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>UW Big Data Event presents Storm</title>
      <author>noreply@bendyworks.com (Matt Gauger)</author>
      <pubDate>Mon, 24 Feb 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/uw-big-data-event-presents-storm/index</link>
      <guid>https://bendyworks.com/blog/uw-big-data-event-presents-storm/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2014-02-24-uw-big-data-event-presents-storm-4f76a595.jpg' /&gt;&lt;/p&gt;&lt;p&gt;After hearing from a friend in the Madison &lt;a href="http://www.meetup.com/BigDataMadison/%E2%80%8E"&gt;Big Data Meetup&lt;/a&gt; that Twitter would be sending its engineers to the UW Madison CS Department to talk about Apache &lt;a href="http://storm.incubator.apache.org/"&gt;Storm&lt;/a&gt;, a group of Bendyworkers bundled up against the cold and made the short trek to the UW...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Single Responsibility Principle &amp; iOS</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Wed, 05 Feb 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/single-responsibility-principle-ios/index</link>
      <guid>https://bendyworks.com/blog/single-responsibility-principle-ios/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;strong&gt;View Controllers in iOS: we need to talk. You are—without a shadow of a doubt—the worst offender of the Single Responsibility Principle, and that needs to stop.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id="first-some-background"&gt;First, some background&lt;/h2&gt;

&lt;p&gt;The Single Responsibility Principle or SRP, is defined by Robert...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>From Ruby to Haskell, Part 3: Lazy Evaluation</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Sun, 26 Jan 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/from-ruby-to-haskell-part-3-lazy-evaluation/index</link>
      <guid>https://bendyworks.com/blog/from-ruby-to-haskell-part-3-lazy-evaluation/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;One of the defining characteristics of Haskell— that you often see listed in what sets it apart from other languages— is that it is the only common language that’s &lt;em&gt;lazy&lt;/em&gt;. In fact, laziness has been &lt;a href="https://www.google.com/url?q=https%3A%2F%2Fwww.simple-talk.com%2Fopinion%2Fgeek-of-the-week%2Fsimon-peyton-jones-geek-of-the-week%2F&amp;amp;sa=D&amp;amp;sntz=1&amp;amp;usg=AFQjCNE8WeNgZquUC5OqseKqp8zcnQ6xwQ"&gt;cited&lt;/a&gt; as the feature that keeps Haskell functionally...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Migrationless Migration</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Thu, 16 Jan 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-migrationless-migration/index</link>
      <guid>https://bendyworks.com/blog/the-migrationless-migration/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;I’ve been reading the excellent blog &lt;a href="http://www.revision-zero.org/logical-data-independence"&gt;Revision-Zero&lt;/a&gt; lately, and just a whole bunch of other relational &lt;a href="https://www.google.com/?q=C.J.%20Date"&gt;algebra stuff&lt;/a&gt;. If I may impose upon you for a minute, relational algebra is one of those things that, like linear algebra, is a shining intellectual...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>2014 Letterpress cards with Flying Rabbit Press</title>
      <author>noreply@bendyworks.com (Glynnis Ritchie)</author>
      <pubDate>Fri, 03 Jan 2014 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/2014-letterpress-cards-with-flying-rabbit-press/index</link>
      <guid>https://bendyworks.com/blog/2014-letterpress-cards-with-flying-rabbit-press/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;a href="http://vimeo.com/83288024"&gt;Happy New Year, from Bendyworks and Flying Rabbit Press&lt;/a&gt; from &lt;a href="http://vimeo.com/bendyworks"&gt;Bendyworks&lt;/a&gt; on &lt;a href="https://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This year we went analog with our holiday card. We got our hands dirty with Kate Clapper of Flying Rabbit Press to document the unique process that is letterpress–from...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Get your very own Bendyworks 2014 desktop calendar</title>
      <author>noreply@bendyworks.com (Glynnis Ritchie)</author>
      <pubDate>Tue, 17 Dec 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/get-your-very-own-bendyworks-2014-desktop-calendar/index</link>
      <guid>https://bendyworks.com/blog/get-your-very-own-bendyworks-2014-desktop-calendar/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;In an industry where paper feels like an artifact of a bygone era, we decided a little tactility and handmade detail would be a welcome change of pace. After months of illustrating and distilling Bendyworks’ values into some sparkly copywriting, we...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Join us for Global Day of Code Retreat!</title>
      <author>noreply@bendyworks.com (Matt Gauger)</author>
      <pubDate>Tue, 10 Dec 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/join-us-for-global-day-of-code-retreat/index</link>
      <guid>https://bendyworks.com/blog/join-us-for-global-day-of-code-retreat/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Mark your calendars! Bendyworks will be hosting the Global Day of Code Retreat on Saturday, December 14th. What’s a code retreat, you ask?&lt;/p&gt;

&lt;p&gt;A code retreat is a programming event that focuses on honing your skills. You take time out from your usually...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Design Support for Wisconsin Media Lab</title>
      <author>noreply@bendyworks.com (Kelly Rauwerdink)</author>
      <pubDate>Fri, 06 Dec 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/design-support-for-wisconsin-media-lab/index</link>
      <guid>https://bendyworks.com/blog/design-support-for-wisconsin-media-lab/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;A fresh perspective is critical to taking design from good to great. An outsider can give input to help tweak elements until all the images dazzle and animations flow smoothly.&lt;/p&gt;

&lt;p&gt;That’s what Mic and I did for the Wisconsin Media Lab’s &lt;a href="http://wimedialab.org/biographies"&gt;Wisconsin Biographies&lt;/a&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>ON AN ON B-Sides: Ghosts</title>
      <author>noreply@bendyworks.com (Rachel Keranen)</author>
      <pubDate>Wed, 04 Dec 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/on-an-on-b-sides-ghosts/index</link>
      <guid>https://bendyworks.com/blog/on-an-on-b-sides-ghosts/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;It’s a foggy week here in Madison, folks. We’re all about matching our music to our mood, which meant it was perfect that Jonk Music posted this video of Ghosts from last month’s B-Sides with &lt;a href="http://itsonanon.bandcamp.com/"&gt;ON AN ON&lt;/a&gt;. No matter the weather where you are, take a listen...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>What can SQL do for you?</title>
      <author>noreply@bendyworks.com (Rachel Keranen)</author>
      <pubDate>Mon, 02 Dec 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/what-can-sql-do-for-you/index</link>
      <guid>https://bendyworks.com/blog/what-can-sql-do-for-you/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2013-12-02-what-can-sql-do-for-you-7c5d89cd.png' /&gt;&lt;/p&gt;&lt;p&gt;What can SQL do for you? Chris shares his thoughts on &lt;a href="http://thechangelog.com/rails-and-sql-relationship-status/?utm_source=buffer&amp;amp;utm_campaign=Buffer&amp;amp;utm_content=buffer0e755&amp;amp;utm_medium=twitter"&gt;the changelog&lt;/a&gt; on how to take full advantage of relational databases:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Where is the place that I can look and see a coherent overview of the parts of my system? In conventional Rails, I think...&lt;/p&gt;
&lt;/blockquote&gt;]]&gt;</description>
    </item>
    <item>
      <title>B-Sides: ON AN ON</title>
      <author>noreply@bendyworks.com (Rachel Keranen)</author>
      <pubDate>Mon, 18 Nov 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/b-sides-on-an-on/index</link>
      <guid>https://bendyworks.com/blog/b-sides-on-an-on/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Chicago-based ON AN ON was named the number one band to see at SXSW 2013 by Time magazine. We couldn’t make it to Austin to verify that ourselves, but we’ve been playing them over the communal Bendywaves this past week in anticipation for their appearance...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>No one knows everything, and that's okay</title>
      <author>noreply@bendyworks.com (Glynnis Ritchie)</author>
      <pubDate>Fri, 15 Nov 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/no-one-knows-everything-and-thats-okay/index</link>
      <guid>https://bendyworks.com/blog/no-one-knows-everything-and-thats-okay/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;As Bendyworks’ latest apprentice it’s easy to forget that no one knows everything. My journey as a developer began just 20 months ago, and with a background in French language and photography, it hasn’t always felt like the easiest transition. However...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Bwoken 2 Beta Released</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Fri, 13 Sep 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bwoken-2-beta-released/index</link>
      <guid>https://bendyworks.com/blog/bwoken-2-beta-released/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;In response to a &lt;a href="https://github.com/bendyworks/bwoken/pull/21"&gt;great discussion&lt;/a&gt; in the bwoken issues forum, I’m happy to announce the first beta of bwoken version 2! The major change, which justified the major version bump, is that bwoken is no longer invoked with &lt;code&gt;rake&lt;/code&gt; but instead with &lt;code&gt;bwoken&lt;/code&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>ConcertCam</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Fri, 09 Aug 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/concertcam/index</link>
      <guid>https://bendyworks.com/blog/concertcam/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Imagine yourself at a concert on the streets of Madison, a block away from the Wisconsin State Capitol (known for, &lt;a href="http://en.wikipedia.org/wiki/Wisconsin_State_Capitol"&gt;among&lt;/a&gt; &lt;a href="http://www.reuters.com/article/2011/03/12/us-wisconsin-protests-idUSTRE72B2AN20110312"&gt;other&lt;/a&gt; &lt;a href="http://www.thedailypage.com/video/article.php?article=40496"&gt;things&lt;/a&gt;, being the largest granite dome in the world), listening to &lt;a href="http://www.willyporter.com/"&gt;Willy Porter&lt;/a&gt;, and waiting for the headliner—&lt;a href="http://www.erichutchinson.com/"&gt;Eric Hutchinson&lt;/a&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Improv at Bendyworks</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Mon, 15 Jul 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/improv-at-bendyworks/index</link>
      <guid>https://bendyworks.com/blog/improv-at-bendyworks/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2013-07-15-improv-at-bendyworks-176bf3bf.jpg' /&gt;&lt;/p&gt;&lt;p&gt;When you’re pitched a four dimensional water bottle, a baby’s first mace, or completely opaque windshields, you might want to stop and wonder how you found yourself in that position. While this isn’t exactly a common situation at Bendyworks, it certainly...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>It's Growth Day at Bendyworks</title>
      <author>noreply@bendyworks.com (Matt Gauger)</author>
      <pubDate>Fri, 21 Jun 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/its-growth-day-at-bendyworks/index</link>
      <guid>https://bendyworks.com/blog/its-growth-day-at-bendyworks/index</guid>
      <description>&lt;![CDATA[&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;[Bendyworks&lt;/td&gt;
      &lt;td&gt;Growth Day]&lt;a href="http://vimeo.com/54385663"&gt;1&lt;/a&gt; from &lt;a href="http://vimeo.com/user2049680"&gt;StoryFirst Media&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Here at Bendyworks we take Fridays for personal, professional and company growth. We think growth days are vital to stay engaged with the open source community...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Announcing B-Sides</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Mon, 15 Apr 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/announcing-b-sides/index</link>
      <guid>https://bendyworks.com/blog/announcing-b-sides/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Bendyworks is happy to announce that we’ve partnered with some great folks to bring you more access to the Madison music scene.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.majesticmadison.com"&gt;The Majestic Theatre&lt;/a&gt; has been bringing national touring acts to our area for the last five years and has supported the...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Give Yourself a Security Makeover</title>
      <author>noreply@bendyworks.com (Joe Nelson)</author>
      <pubDate>Fri, 12 Apr 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/give-yourself-a-security-makeover/index</link>
      <guid>https://bendyworks.com/blog/give-yourself-a-security-makeover/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;While visiting Twilio for a day on my two-week &lt;a href="http://blog.begriffs.com/2013/03/the-pilgrimage-begins.html"&gt;programming pilgrimage&lt;/a&gt; I learned that I’ve been pretty insecure. Joël Franusic (&lt;a href="https://twitter.com/jf"&gt;@jf&lt;/a&gt;) explained that I needed a security makeover. You probably do too! So let’s get started. Follow the suggestions as you...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Lists out of lambdas and boxes out of functions</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Sat, 06 Apr 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/lists-out-of-lambdas-and-boxes-out-of-functions/index</link>
      <guid>https://bendyworks.com/blog/lists-out-of-lambdas-and-boxes-out-of-functions/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;There’s a cool article by Steve Losh called &lt;a href="http://stevelosh.com/blog/2013/03/list-out-of-lambda/"&gt;List out of Lambda&lt;/a&gt; that reminded me, in a really good way, of a section in SICP. If you want to read the boiled-down scheme version that’s in SICP, here it is: &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_sec_2.1.3"&gt;SICP section 2.1.3&lt;/a&gt;. What follows is my paraphrasing...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>From Ruby to Haskell, Part 2: Similarity, Refactoring, and Patterns</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Fri, 05 Apr 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/from-ruby-to-haskell-part-2-similarity-refactoring-and-patterns/index</link>
      <guid>https://bendyworks.com/blog/from-ruby-to-haskell-part-2-similarity-refactoring-and-patterns/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;It has been a while since I last wrote one of these posts and I didn’t want to leave people sitting by their computer desks forever, waiting with bated breath for the next one to pop up in your Google Reader feed (…whispers from the Internet…), okay...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>You Don't Know Your Visitors, So Stop Pretending</title>
      <author>noreply@bendyworks.com (Joe Nelson)</author>
      <pubDate>Mon, 11 Feb 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/you-dont-know-your-visitors-so-stop-pretending/index</link>
      <guid>https://bendyworks.com/blog/you-dont-know-your-visitors-so-stop-pretending/index</guid>
      <description>&lt;![CDATA[&lt;h1 id="part-1-what-is-analytics-really"&gt;Part 1: What is analytics really?&lt;/h1&gt;

&lt;p&gt;Web analytics should hurt a little. Not just the pain of seeing your low traffic revealed in hard numbers, but the realization that you don’t really know your visitors.&lt;/p&gt;

&lt;p&gt;We programmers tend to be preoccupied by our...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Styleguide Rails</title>
      <author>noreply@bendyworks.com (Joe Nelson)</author>
      <pubDate>Fri, 01 Feb 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/styleguide-rails/index</link>
      <guid>https://bendyworks.com/blog/styleguide-rails/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;You might as well learn it now, because you’ll be using it in 6 months. &lt;a href="https://github.com/begriffs/styleguide_rails" title="Styleguide Rails"&gt;Styleguide rails&lt;/a&gt; is a cool gem that builds a living, breathing styleguide for your site. You can add it to your project really easily (let’s just do it right now):&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;]]&gt;</description>
    </item>
    <item>
      <title>Programming Pilgrimage</title>
      <author>noreply@bendyworks.com (Joe Nelson)</author>
      <pubDate>Tue, 15 Jan 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/programming-pilgrimage/index</link>
      <guid>https://bendyworks.com/blog/programming-pilgrimage/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img style="float: left;" alt="Pilgrim" src="/assets/images/blog/extra/2013-01-15-pilgrim.jpg"&gt;In August 2012 I resolved to become a world-class web developer in one year and to share my progress and discoveries along the way. I challenged myself with the task of learning a new programming topic every two weeks, blogging about what I learned...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Playoff Radio Spot</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Sat, 12 Jan 2013 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/playoff-radio-spot/index</link>
      <guid>https://bendyworks.com/blog/playoff-radio-spot/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Bendyworks origins in Madison, WI means that we are football fans. With Green Bay in the playoffs we were able to try out a new advertising medium.&lt;/p&gt;

&lt;p&gt;Take a listen to our ad below or listen to WIBA AM or FM during today’s game.&lt;/p&gt;
]]&gt;</description>
    </item>
    <item>
      <title>Customer Quote: Centro</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Wed, 12 Dec 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/customer-quote-centro/index</link>
      <guid>https://bendyworks.com/blog/customer-quote-centro/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;“Centro’s experience with Bendyworks was very positive. The developers we worked with were able to jump right into a complex code base and quickly contribute quality code to an ongoing project. Everyone was smart, pragmatic, and fun to work with.”...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>From Ruby to Haskell, Part 1: Testing</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Wed, 05 Dec 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/from-ruby-to-haskell-part-1-testing/index</link>
      <guid>https://bendyworks.com/blog/from-ruby-to-haskell-part-1-testing/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;You read that right. Or maybe, if you read it as “stop using Ruby and start using Haskell”, you read it wrong. I’m going to show you why I find Haskell to be utterly fascinating and eminently practical.&lt;/p&gt;

&lt;p&gt;Foremost, I want to collect some bits and pieces...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Getting Plan 9 running on the Raspberry Pi</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Fri, 30 Nov 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/getting-plan-9-running-on-the-raspberry-pi/index</link>
      <guid>https://bendyworks.com/blog/getting-plan-9-running-on-the-raspberry-pi/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2012-11-30-getting-plan-9-running-on-the-raspberry-pi-3fdf1884.png' /&gt;&lt;/p&gt;&lt;h2 id="more-unix-than-unix"&gt;More Unix than Unix&lt;/h2&gt;

&lt;p&gt;Do you like Unix? Do you &lt;em&gt;really&lt;/em&gt; like Unix? Well, what if I told you there’s a little-known operating system out there that’s &lt;em&gt;more&lt;/em&gt; Unix than even Unix is. Cool, right?&lt;/p&gt;

&lt;p&gt;Well it is true! &lt;a href="http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs"&gt;Plan 9&lt;/a&gt; occupies an interesting niche in the...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Testing Security with Brakeman</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Fri, 09 Nov 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/testing-security-with-brakeman/index</link>
      <guid>https://bendyworks.com/blog/testing-security-with-brakeman/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Security in web applications is not something developers discuss often enough – some think of it as a taboo subject, or something the NOC guys have to deal with. Some treat security as a post deployment afterthought. Sometimes little thought is given...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Isthmus: Bendyworks' Big Idea</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Thu, 18 Oct 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-isthmus-bendyworks-big-idea/index</link>
      <guid>https://bendyworks.com/blog/the-isthmus-bendyworks-big-idea/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Madison’s Weekly Newspaper, Isthmus, &lt;a href="http://www.thedailypage.com/isthmus/article.php?article=38036"&gt;picked up a story&lt;/a&gt; from local freelance journalist &lt;a href="http://meisenstories.net"&gt;Marc Eisen&lt;/a&gt;. The story, one in a series on Madison’s Next Economy, focuses on Brad Grzesiak’s idea of creating a tech corridor on the East Side of Madison.&lt;/p&gt;

&lt;p&gt;Several...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>OMG! Rails Rumble!</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Wed, 17 Oct 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/omg-rails-rumble/index</link>
      <guid>https://bendyworks.com/blog/omg-rails-rumble/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Last weekend, three Bendyworkers and a Swink-person (Swink-ee?) participated in the &lt;a href="http://railsrumble.com/"&gt;Rails Rumble&lt;/a&gt;, a competition to build a web application in just 48 hours. Rather than hacking on the backend like I usually do, I ended up almost exclusively forging...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Moldover: Godfather of Controllerists</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Wed, 10 Oct 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/moldover-godfather-of-controllerists/index</link>
      <guid>https://bendyworks.com/blog/moldover-godfather-of-controllerists/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Last night I was able to attend a workshop at Madison Media Institute featuring &lt;a href="http://moldover.com"&gt;Moldover&lt;/a&gt; and his &lt;a href="http://twitter.com/jremsikjr/status/255857203418890240/photo/1/large"&gt;crazy custom mixers&lt;/a&gt; and modified instruments such as &lt;a href="http://twitter.com/jremsikjr/status/255857280048840704/photo/1/large"&gt;the Robocaster&lt;/a&gt;. At the end of the night I was so impressed I twisted his arm until he came to Bendyworks...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Cthulhuian Document Preparation With Troff</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Sat, 06 Oct 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/cthulhuian-document-preparation-with-troff/index</link>
      <guid>https://bendyworks.com/blog/cthulhuian-document-preparation-with-troff/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;img src='https://bendyworks.com/assets/images/blog/2012-10-06-cthulhuian-document-preparation-with-troff-87a5f0fd.jpg' /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; If you are looking for a lightweight document preparation system in the style of LaTeX, try out &lt;code&gt;troff&lt;/code&gt; which is probably already on your system.&lt;/p&gt;

&lt;h2 id="intro"&gt;Intro&lt;/h2&gt;

&lt;p&gt;Lurking deep in UNIX, even on your shiny new Mac, is the eldritch horror of troff. It waits...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Don't Say 'Emacs' or 'Vi'</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Fri, 28 Sep 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/dont-say-emacs-or-vi/index</link>
      <guid>https://bendyworks.com/blog/dont-say-emacs-or-vi/index</guid>
      <description>&lt;![CDATA[&lt;h2 id="a-brief-tour-of-some-other-editors"&gt;A brief tour of some &lt;em&gt;other&lt;/em&gt; editors&lt;/h2&gt;

&lt;p&gt;Quick, think of your favorite &lt;code&gt;$EDITOR&lt;/code&gt;. If you’re anything like me or the people I work with, you’ve got a horse in this race. And again, if you’re anything like myself or my comrades, you’ll probably say &lt;em&gt;Emacs&lt;/em&gt; or...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Version Control for Poetic Time Travelers</title>
      <author>noreply@bendyworks.com (Joe Nelson)</author>
      <pubDate>Fri, 31 Aug 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/version-control-for-poetic-time-travelers/index</link>
      <guid>https://bendyworks.com/blog/version-control-for-poetic-time-travelers/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Matthew McCullough (&lt;a href="http://twitter.com/matthewmccull"&gt;@matthewmccull&lt;/a&gt;) leads Git workshops across the world. He recently visited Madison, Wisconsin to discuss and demonstrate advanced topics such as rerere merging, the reflog, interactive rebase, cherry-pick, show-branch, branch filtering...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Your Papers, Please</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Sun, 26 Aug 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/your-papers-please/index</link>
      <guid>https://bendyworks.com/blog/your-papers-please/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Sometimes a line of discussion will open up into areas of unexpected intensity. Suddenly people are vehement and they won’t let go. When that happens, it’s interesting, and it might mean something.&lt;/p&gt;

&lt;p&gt;This happened at &lt;a href="http://http://madisonruby.org/" target="_new"&gt;Madison Ruby&lt;/a&gt; (&lt;a href="https://twitter.com/madisonruby" target="_new"&gt;#MadisonRuby&lt;/a&gt;) during...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>RailsBridge: a Difference That Makes A Difference</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Sun, 19 Aug 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/railsbridge-a-difference-that-makes-a-difference/index</link>
      <guid>https://bendyworks.com/blog/railsbridge-a-difference-that-makes-a-difference/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;So, &lt;a href="http://www.madisonruby.org/"&gt;there’s this conference in town this week&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It’s going to be damned good: attend if you can. One of the most remarkable parts of it is the &lt;strong&gt;RailsBridge Women’s Outreach Workshop&lt;/strong&gt; being offered on Wednesday evening and during the day on Thursday....&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>The Hidden Life of Stylesheet Preprocessing</title>
      <author>noreply@bendyworks.com (Joe Nelson)</author>
      <pubDate>Sat, 28 Jul 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/the-hidden-life-of-stylesheet-preprocessing/index</link>
      <guid>https://bendyworks.com/blog/the-hidden-life-of-stylesheet-preprocessing/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Like any piece of art, a stylesheet should be indivisible and bold, but natural. It should arrive to the browser in one elegant file, a succinct connection between page semantics and presentation. Preprocessing distances a stylesheet from the Sturm...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Growth day happenings – Friday the 13th</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Thu, 19 Jul 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/growth-day-happenings-friday-the-13th/index</link>
      <guid>https://bendyworks.com/blog/growth-day-happenings-friday-the-13th/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;(This is the first of a recurring series describing our work during most, if not all, growth days at Bendyworks. Note that we won’t do growth day on Friday the 20th, because it’s &lt;a href="http://uxmad.com" target="_new"&gt;UXMad&lt;/a&gt;.)&lt;/p&gt;

&lt;h2 id="whats-a-growth-day"&gt;What’s a “Growth Day”?&lt;/h2&gt;

&lt;p&gt;Bendyworks invests in our developers...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Don't Play CSS Tetris</title>
      <author>noreply@bendyworks.com (Joe Nelson)</author>
      <pubDate>Fri, 13 Jul 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/don-t-play-css-tetris/index</link>
      <guid>https://bendyworks.com/blog/don-t-play-css-tetris/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;“Want to see the future?” Dale Sande (&lt;a href="https://twitter.com/anotheruiguy/"&gt;@anotheruiguy&lt;/a&gt;) leaned toward me with a conspiratorial gleam in his eye. His laptop was crowded with code and design layouts. He proceeded to show me that I have been doing CSS all wrong.&lt;/p&gt;

&lt;p&gt;My first mistake is using...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>What are we doing over the next few weeks? 2012-07-09</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Tue, 10 Jul 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/what-are-we-doing-over-the-next-few-weeks-2012-07-09/index</link>
      <guid>https://bendyworks.com/blog/what-are-we-doing-over-the-next-few-weeks-2012-07-09/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;What’s coming up the rest of the month?&lt;/p&gt;

&lt;p&gt;The major event is clearly &lt;a href="http://www.uxmad.com/" target="_new"&gt;UXMAD&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/blog/extra/2012-07-10-ux_mad_2012_poster-6ab6b223.jpg" alt="uxmad poster"&gt;&lt;/p&gt;

&lt;p&gt;This is a premier user experience conference for a decidedly less than premium price. Thursday the 19th there will be hands-on workshops; Friday the 20th and Saturday the...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Bwoken Version 1.1 Released</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Thu, 05 Jul 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/bwoken-version-1-1-released/index</link>
      <guid>https://bendyworks.com/blog/bwoken-version-1-1-released/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Version 1.1 of Bwoken has just been released! This feature release includes the ability to run UIAutomation tests on a device rather than the simulator, in addition to a number of internal improvements to Bwoken.&lt;/p&gt;

&lt;p&gt;Developers we come across have always...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Respond With An Explanation</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Sat, 23 Jun 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/respond-with-an-explanation/index</link>
      <guid>https://bendyworks.com/blog/respond-with-an-explanation/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Using &lt;code&gt;respond_to&lt;/code&gt; and &lt;code&gt;respond_with&lt;/code&gt; is, as Rails tends to be, Convention Over Configuration™. This is a wonderful thing, but proficiency requires an understanding of these conventions which, in the case of &lt;code&gt;respond_with&lt;/code&gt;, may be less than intuitive. What...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Craftsman Swap Podcast</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Tue, 22 May 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/craftsman-swap-podcast/index</link>
      <guid>https://bendyworks.com/blog/craftsman-swap-podcast/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Bendyworkers &lt;a href="https://bendyworks.com/workers#devin"&gt;Devin&lt;/a&gt; and &lt;a href="https://bendyworks.com/workers#chris"&gt;Chris&lt;/a&gt; were recently interviewed on the &lt;a href="http://thinkrelevance.com/blog/tags/podcast"&gt;Relevance podcast&lt;/a&gt;. They sat down to speak with &lt;a href="http://thinkrelevance.com/team/members/craig-andera"&gt;Craig Andera&lt;/a&gt;, &lt;a href="http://thinkrelevance.com/team/members/jared-pace"&gt;Jared Pace&lt;/a&gt;, and &lt;a href="http://thinkrelevance.com/team/members/alan-dipert"&gt;Alan Dipert&lt;/a&gt; of Relevance, on the topic of our recent &lt;a href="http://en.wikipedia.org/wiki/Software_craftsmanship"&gt;craftsman swap&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Back in March, Chris Wilson visited Durham...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Introducing Bwoken</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Thu, 26 Apr 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/introducing-bwoken/index</link>
      <guid>https://bendyworks.com/blog/introducing-bwoken/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Bwoken is a UIAutomation test runner for both iPhone and iPad, which lets you write your tests in CoffeeScript, then run them in bulk from the command line. Watch the video, then head on over to its &lt;a href="http://bendyworks.github.com/bwoken"&gt;homepage!&lt;/a&gt;&lt;/p&gt;

]]&gt;</description>
    </item>
    <item>
      <title>Local development team grows with new Bendyworks mentorship program</title>
      <author>noreply@bendyworks.com (Matt Gauger)</author>
      <pubDate>Wed, 11 Apr 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/local-development-team-grows-with-new-bendyworks-mentorship-program/index</link>
      <guid>https://bendyworks.com/blog/local-development-team-grows-with-new-bendyworks-mentorship-program/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;The software industry faces a pressing issue: we just can’t find enough seasoned developers.&lt;/p&gt;

&lt;p&gt;Universities may produce excellent computer scientists, but recent grads are typically short on practical knowledge and experience.&lt;/p&gt;

&lt;p&gt;Regardless of pedigree...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>George Boole Returned As a Zombie and is Gnawing on My Brain</title>
      <author>noreply@bendyworks.com (Chris Wilson)</author>
      <pubDate>Fri, 17 Feb 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/george-boole-returned-as-a-zombie-and-is-gnawing-on-my-brain/index</link>
      <guid>https://bendyworks.com/blog/george-boole-returned-as-a-zombie-and-is-gnawing-on-my-brain/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;This is about that oft-neglected corner of programming, the humble boolean. Perhaps, by thinking about what’s going on in many boolean expressions, we can iron out his quickly-forking complexity. And, oh, what luck! Here’s a slab of boolean logic that...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Mobile and Professionalism for Students</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Tue, 14 Feb 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/mobile-and-professionalism-for-students/index</link>
      <guid>https://bendyworks.com/blog/mobile-and-professionalism-for-students/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Yesterday, at the request of their teacher &lt;a href="http://pages.cs.wisc.edu/~suman/"&gt;Suman Banerjee&lt;/a&gt;, I presented a view of what it’s like to be a professional programmer to a class of Computer Sciences students at the University of Wisconsin–Madison. The focus of the talk was “Mobile &amp;amp; Professionalism...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>All You Need is love.travis-ci.org</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Tue, 07 Feb 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/all-you-need-is-love-travis-ci-org/index</link>
      <guid>https://bendyworks.com/blog/all-you-need-is-love-travis-ci-org/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Today marks a milestone for the Travis CI project: it launched a crowd-funding campaign titled &lt;a href="https://love.travis-ci.org"&gt;love.travis-ci.org&lt;/a&gt; to finance a slew of new features. Among the planned additions are private build support, pre-tested Github pull requests, build artifacts...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Giving back to the community</title>
      <author>noreply@bendyworks.com (Matt Gauger)</author>
      <pubDate>Fri, 03 Feb 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/giving-back-to-the-community/index</link>
      <guid>https://bendyworks.com/blog/giving-back-to-the-community/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Here’s how Bendyworks has given back to the community in the past week:&lt;/p&gt;

&lt;p&gt;Jim recorded an interview with the fine folks at EngineYard about our experiences working with them. Look for the link to the audio soon!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sapling.wufoo.com/forms/madison-ruby-2012-registration-form/"&gt;Madison Ruby registration&lt;/a&gt; and &lt;a href="https://sapling.wufoo.com/forms/madison-ruby-conference-call-for-proposals/"&gt;Call for...&lt;/a&gt;&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>UIAutomation and Pusher</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Wed, 01 Feb 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/uiautomation-and-pusher/index</link>
      <guid>https://bendyworks.com/blog/uiautomation-and-pusher/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;a href="http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/Built-InInstruments/Built-InInstruments.html#//apple_ref/doc/uid/TP40004652-CH6-SW75"&gt;UIAutomation&lt;/a&gt; is Apple’s answer to integration tests. It allows you to drive and run assertions against your application using a javascript library that interacts with user interface elements. It’s great to have such a powerful tool, but what if you...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>ConciseKit</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Wed, 01 Feb 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/concisekit/index</link>
      <guid>https://bendyworks.com/blog/concisekit/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This article was cross-posted from Brad’s personal blog: &lt;a href="http://www.namingthingsishard.com/2012/01/31/concisekit.html"&gt;Naming Things is Hard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Over the last month at Bendyworks, I’ve been pairing with &lt;a href="http://twitter.com/JaymesWaters"&gt;Jaymes&lt;/a&gt; on our latest initiative: adding iOS development to our repertoire. As a Ruby developer learning...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Our first iOS app</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Mon, 30 Jan 2012 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/our-first-ios-app/index</link>
      <guid>https://bendyworks.com/blog/our-first-ios-app/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;We just launched our first iOS app: &lt;a href="http://itunes.apple.com/us/app/travisci/id496877270"&gt;TravisCI&lt;/a&gt;! It lets you browse and view live updates of builds submitted to &lt;a href="http://travis-ci.org"&gt;Travis-CI.org&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We chose to build a native front end to Travis CI in order to hone our iOS skills while working with a RESTful &lt;span class="caps"&gt;API&lt;/span&gt;. During...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>My Bendyworks Apprenticeship</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Fri, 02 Dec 2011 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/my-bendyworks-apprenticeship/index</link>
      <guid>https://bendyworks.com/blog/my-bendyworks-apprenticeship/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;I started at Bendyworks on July 18, 2011 as an apprentice. On my first day, &lt;a href="https://bendyworks.com/workers#stephen"&gt;Stephen Anderson&lt;/a&gt; and I dove right into pressing client work. We always &lt;a href="http://en.wikipedia.org/wiki/Pair_programming"&gt;pair program&lt;/a&gt; at Bendyworks so I was never “stuck” or “lost.” However, Bendyworks prides itself on using...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>From 0 to 1 Million in 6 Hours</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Tue, 22 Feb 2011 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/from-0-to-1-million-in-6-hours/index</link>
      <guid>https://bendyworks.com/blog/from-0-to-1-million-in-6-hours/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Having an office less than a block away from a protest that’s making &lt;a href="http://english.aljazeera.net/news/americas/2011/02/20112201564409366.html"&gt;international&lt;/a&gt; &lt;a href="http://www.bbc.co.uk/news/world-us-canada-12517062"&gt;headlines&lt;/a&gt; gave us a unique opportunity: use our technology prowess to experience live events in a new way. So what did we do? We wrote a site using Rails, WebSockets...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>HTML5, AJAX, IE, and Shivs</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Mon, 15 Nov 2010 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/html5-ajax-ie-and-shivs/index</link>
      <guid>https://bendyworks.com/blog/html5-ajax-ie-and-shivs/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Standard procedure for using HTML5 on IE is to use a library like &lt;a href="http://code.google.com/p/html5shim/"&gt;html5shim&lt;/a&gt;, &lt;a href="http://code.google.com/p/html5shiv/"&gt;html5shiv&lt;/a&gt;, or &lt;a href="http://www.modernizr.com/"&gt;Modernizr&lt;/a&gt;. These tools are, in general, quite great. We at Bendyworks tend to use Modernizr.&lt;/p&gt;

&lt;p&gt;Unfortunately, something happens when you combine HTML5 elements...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>AtaconApp, Facilitating Conference Participation</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Thu, 04 Nov 2010 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/ataconapp-facilitating-conference-participation/index</link>
      <guid>https://bendyworks.com/blog/ataconapp-facilitating-conference-participation/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Over the course of 48 hours, Stephen, Brad, Nick and Jaymes cranked out one of the 180 web applications to hit the Internet thanks to the &lt;a href="http://railsrumble.com"&gt;Rails Rumble&lt;/a&gt;. The result of their efforts is &lt;a href="http://ataconapp.com"&gt;AtaconApp&lt;/a&gt;, an app to facilitate conference participation.&lt;/p&gt;

&lt;p&gt;Starting...&lt;/p&gt;]]&gt;</description>
    </item>
    <item>
      <title>Script to Use Gems Locally, but Not on Heroku</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Mon, 11 Oct 2010 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/script-to-use-gems-locally-but-not-on-heroku/index</link>
      <guid>https://bendyworks.com/blog/script-to-use-gems-locally-but-not-on-heroku/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;We’ve already blogged about how heroku and bundler occasionally don’t play nice. Instead of describing an elaborate checklist that doesn’t work in all cases, just do two things.&lt;/p&gt;

&lt;p&gt;First, make your Gemfile look something like this:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="ss"&gt;:rubygems&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;]]&gt;</description>
    </item>
    <item>
      <title>Excluding Dev and Test Gems from Heroku</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Mon, 11 Oct 2010 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/excluding-dev-and-test-gems-from-heroku/index</link>
      <guid>https://bendyworks.com/blog/excluding-dev-and-test-gems-from-heroku/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Check out our &lt;a href="/news/script-to-use-gems-locally-but-not-on-heroku"&gt;newer blog article&lt;/a&gt; that shows a better method of excluding dev and test gems from heroku.&lt;/p&gt;

&lt;p&gt;Heroku is awesome. Bundler is awesome. Combining the two… not always awesome. Are you getting this when pushing to Heroku?&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;You have modified...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;]]&gt;</description>
    </item>
    <item>
      <title>Our Presentations</title>
      <author>noreply@bendyworks.com (Brad Grzesiak)</author>
      <pubDate>Tue, 31 Aug 2010 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/our-presentations/index</link>
      <guid>https://bendyworks.com/blog/our-presentations/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;We’re making an effort to post all of our presentations online. Thanks to the magic of &lt;a href="http://github.com/mojombo/jekyll"&gt;jekyll&lt;/a&gt;, &lt;a href="http://github.com/schacon/showoff"&gt;showoff&lt;/a&gt; (sometimes… otherwise probably Keynote), and &lt;a href="http://github.com"&gt;github&lt;/a&gt;, you can now &lt;a href="http://bendyworks.github.com/"&gt;review our talks&lt;/a&gt;!&lt;/p&gt;

]]&gt;</description>
    </item>
    <item>
      <title>BarCampMadison</title>
      <author>noreply@bendyworks.com (Bendyworks)</author>
      <pubDate>Fri, 27 Aug 2010 00:00:00 +0000</pubDate>
      <link>https://bendyworks.com/blog/barcampmadison/index</link>
      <guid>https://bendyworks.com/blog/barcampmadison/index</guid>
      <description>&lt;![CDATA[&lt;p&gt;Greetings and salutations! Welcome to Bendyworks’ blog. We’ll try to keep this up-to-date with our learnings and happenings. First up: &lt;a href="http://www.barcampmadison.org"&gt;BarCampMadison&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/BarCamp"&gt;BarCamp&lt;/a&gt;, in general, is a type of unconference, where the speakers are not determined ahead of time...&lt;/p&gt;]]&gt;</description>
    </item>
  </channel>
</rss>
