<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:dancunning.com,2005:/technology/index</id>
  <link rel="alternate" type="text/html" href="https://dancunning.com/"/>
  <link rel="self" type="application/atom+xml" href="https://dancunning.com/technology/index.xml"/>
  <title/>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/param-accessible.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/param-accessible.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Protecting Yourself from Malicious params</title>
    <content>The issues and solutions to making your application’s handling of user parameters secure by default, before Ruby on Rails offered an out-of-the-box solution.</content>
    <updated>2012-03-14 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/working-with-web-apis.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/working-with-web-apis.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>The Tricky World of Using Web APIs</title>
    <content>When your application interacts with the web a lot can go wrong. Working with Ruby on Rails over the last five years, I’ve seen a lot of them first hand, and with this article I hope to share some of that experience and help you write more reliable, efficient and friendly code.</content>
    <updated>2012-03-15 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/ajax-toggle-buttons.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/ajax-toggle-buttons.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Ajax Toggle Buttons</title>
    <content>How to create toggle buttons using Ruby on Rails, ajax, and unobtrusive javascript. Straight-forward and boring, just how I like it.</content>
    <updated>2014-04-16 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/aws-s3-browser.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/aws-s3-browser.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Browsing Files &amp; Directories in S3</title>
    <content>Amazon’s S3 makes storing files easy but viewing directories isn’t intuitive. Let me explain how you can emulate a file structure using Plain-Old-Ruby-Objects.</content>
    <updated>2014-04-16 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/finding-your-most-active-users-with-google-analytics.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/finding-your-most-active-users-with-google-analytics.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Finding Your Most Active Users</title>
    <content>Google Analytics is normally used to track a website’s visitors and pageviews, but it can also track specific users, which can be invaluable information as you develop your customer base. Who is the most active? What are they using? Whose usage is fading?</content>
    <updated>2014-05-29 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/simple-infinite-scrolling.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/simple-infinite-scrolling.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Infinite Scrolling with AJAX</title>
    <content>Ruby on Rails and jQuery team up to allow your visitors to scroll through all your content without initially loading them all.</content>
    <updated>2014-06-16 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/technology/past-present-and-future-of-computers.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/technology/past-present-and-future-of-computers.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>The Past, Present, and Future of Computers</title>
    <content>Computers have made an undeniably permanent mark on the world, but their success wasn't gained overnight. They slowly improved what they could do, leading to advancements that led to new advancements. Let's look at how they progressed to what they are today and try to predict what they might do in the future.</content>
    <updated>2014-07-10 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/beware-active-record-callbacks.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/beware-active-record-callbacks.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Beware ActiveRecord callbacks</title>
    <content>ActiveRecord is a fantastically well-made ORM that makes working with databases a breeze, but one feature in the callback structure is incredibly bug-prone.</content>
    <updated>2014-07-17 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/economy/the-communication-age.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/economy/the-communication-age.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>The Communication Age</title>
    <content>The explosion of the Internet and mobile devices shaped a new age where people across the globe are always connected and always communicating, irreversibly changing the way we meet, work, govern, and socialize.</content>
    <updated>2014-11-04 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/mailing-lists/</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/mailing-lists/?utm_medium=atom&amp;utm_source=feed"/>
    <title>Mailing Lists</title>
    <content>Mailing lists remain an effective way for groups to communicate. We’ll explore how to implement them in your Rails application to improve its overall user-experience.</content>
    <updated>2015-02-21 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/views-mailers-directory.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/views-mailers-directory.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>views/mailers directory</title>
    <content>Avoid cluttering up app/views by moving mailer directories underneath a single parent.</content>
    <updated>2015-03-04 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/time-zones-and-datetime-select.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/time-zones-and-datetime-select.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Time Zones and datetime_select</title>
    <content>A simple fix for using datetime_select and time_zone_select together.</content>
    <updated>2015-05-12 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/form-builder-label-and-full-error-messages.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/form-builder-label-and-full-error-messages.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>f.label and errors.full_messages</title>
    <content>Why you should never use the explicit “content” parameter of label_tag or the form builder’s label method.</content>
    <updated>2015-05-18 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/economy/more-representative-democracy.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/economy/more-representative-democracy.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>A More Representative Democracy</title>
    <content>An outline for how a simple website could solve many of the problems with our current legislative systems.</content>
    <updated>2015-06-16 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/progress-bars.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/progress-bars.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Progress Bars</title>
    <content>How to create a progress bar using Ruby on Rails, AJAX, and Twitter Bootstrap.</content>
    <updated>2015-09-08 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/loading-buttons.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/loading-buttons.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Loading Buttons</title>
    <content>Converting action buttons into loading buttons is a common way for AJAX applications indicate that it’s waiting on the server to verify an action and respond.</content>
    <updated>2016-07-14 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/minimum-viable-test-suite.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/minimum-viable-test-suite.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Minimum Viable Test Suite</title>
    <content>Ensure your test suite doesn’t have any important holes in coverage by enforcing a simple rule.</content>
    <updated>2016-07-24 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/technology/how-hard-would-it-be-to.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/technology/how-hard-would-it-be-to.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>How hard would it be to …?</title>
    <content>Identifying calibrated questions aimed at software developers</content>
    <updated>2020-01-12 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/ruby-on-rails/tracking-your-aws-costs.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/ruby-on-rails/tracking-your-aws-costs.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Tracking your AWS costs</title>
    <content>Write yourself a daily, weekly, or monthly report with your AWS costs broken down more granularly than AWS’ monthly invoice.</content>
    <updated>2020-01-17 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/economy/exponentials-in-pandemics-and-innovation.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/economy/exponentials-in-pandemics-and-innovation.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>Exponentials in Pandemics and Innovation</title>
    <content>Whether inside a computer or real life, a linear system under exponential pressure crashes and fails.</content>
    <updated>2020-04-16 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
  <entry>
    <id>https://dancunning.com/technology/ios-default-browser.html</id>
    <link rel="alternate" type="text/html" href="https://dancunning.com/technology/ios-default-browser.html?utm_medium=atom&amp;utm_source=feed"/>
    <title>iOS Default Browser</title>
    <content>For years, iOS has opened links with Safari with no way for you to change it. iOS 14 finally allows setting your default browser.</content>
    <updated>2020-10-14 12:00:00 UTC</updated>
    <author>
      <name>Dan Cunning</name>
    </author>
  </entry>
</feed>
