• Home

  • Custom Ecommerce
  • Application Development
  • Database Consulting
  • Cloud Hosting
  • Systems Integration
  • Legacy Business Systems
  • Security & Compliance
  • GIS

  • Expertise

  • About Us
  • Our Team
  • Clients
  • Blog
  • Careers

  • VisionPort

  • Contact
  • RailsConf 2012: Day Three

    Steph Skardal

    By Steph Skardal
    April 25, 2012

    It’s Day 3 of RailsConf 2012 here in Austin Texas. Check out my posts from Day 1 and Day 2.

    RailsConf 5k

    To kick off the day, I ran the low-key RailsConf 5k along the lake here in Austin. I’m glad that this event was organized — I think it’s good to take a mental break from all the conference activities.

    RubyRogues

    This morning kicked off with a RubyRogues live session. The topic for today’s podcast was a discussion about what Rails developers care about and/or should care about. I thought that the answers apply to developers in general. Below are some of the topics covered in the talk.

    • James Edward Gray II

      • James focused on the point that experimentation is important and to perceive all code as experimental.
    • Avdi Grimm

      • Avdi’s main argument was a suggestion to practice deliberate and mindful coding. While he believes that there is a place for the “shut up and code” mentality in some projects depending on risk, it’s not acceptable to have this perspective when it comes to community sharing of knowledge.
      • Avdi recommends that exercising introspection by reviewing your code and explaining it to someone else (how and why) will make you a better programmer and communicator. …

    conference ruby rails

    RailsConf 2012: Day Two

    Steph Skardal

    By Steph Skardal
    April 24, 2012

    I’m here in Austin for Day 2 of RailsConf 2012. Here’s a quick run-down of a few talks I attended today. Read about a couple of sessions I attended on Day 1 here.

    Let’s Make the Web Faster

    One of the talks I attended on Day 2 was Let’s Make the Web Faster — tips from the trenches @ Google by Ilya Grigorik. Ilya works on the MTWF (make the web faster) team at Google; one of their goals is not only to make Google’s web applications faster, but also to make a bigger impact on web performance by developing and contributing to tools. I found a few main takeaways from Ilya’s talk:

    • Navigation Timing Spec: The navigation timing spec defining an interface for web applications to access timing information related to navigation and elements. You can look at this timing information by checking out the performance object in a console:

      Example output of navigation timing spec data.

    • Site Speed Tools in Google Analytics: Google Analytics now has elements of the page speed broken down that allows you to compare page load times and examine what the bottlenecks in the system are. To get there, you go to Content => Site Speed => Page Timings in Google Analytics. You can also measure and …


    conference performance ruby rails

    Using CarrierWave without an ORM in Spree

    Mike Farmer

    By Mike Farmer
    April 24, 2012

    I was recently adding some settings to Spree (an open source Ruby on Rails ecommerce framework) using Spree’s built-in preferences system and found myself needing to upload an image as part of the settings. Our application was already using CarrierWave to handle some other uploads and wanted to use it to handle the uploading for my current image as well. Since the only setting I was setting was the image and there would only ever be one image, I didn’t want to tie the setting to ActiveRecord. So I did some reading and found that you can tie a CarrierWave to a class without an ORM. The documentation on this is very sparse so I resorted to reading through the code to figure out how to get it working. After hours of playing with it I finally got it working. With the current movement in the Rails community to move more toward an Object Oriented approach to building applications, I’ve decided to document this here so that others will be able to quickly tie CarrierWave uploaders to their non-persisted classes.

    The uploader I’ll be working on is to add a banner to the checkout process in Spree (0.60.x). The idea is to store the image url in Spree::Config (the general preferences mechanism …


    ruby rails

    RailsConf 2012: Day One

    Steph Skardal

    By Steph Skardal
    April 23, 2012

    Today kicks off the official first day of RailsConf 2012, in Austin, Texas (yesterday RailsConf unofficially kicked off with Ignite Rails). This is my fourth RailsConf, and I’ve found that I get increasingly more out of each one as my time working with Rails has accumulated.

    The morning started with a keynote by DHH. DHH talked about progress and keeping an interest in something because it continues to make progress. Initially, the Rails community had a negative reaction to progress like Ruby 1.9, Rails 3, the Asset Pipeline and CoffeeScript, but after the initial learning curve, the new tools and progress was appreciated by the community. DHH talked about how there have been many studies on what prevents people from progressing, and one of those causes is loss aversion, meaning that people hate losing or failing enough that it prevents them from advancing. To me, the point of his talk was to prepare everyone for Rails 4 and how it will challenge and break things. Rails 4 is admittedly not coming out anytime soon, so he didn’t touch on any specifics.

    Using Backbone.js with Rails

    One session talk I attended was Using Backbone.js with Rails by Sarah Mei of Pivotal Labs. Backbone is …


    conference javascript rails

    Byte-swap an entire file using perl

    David Christensen

    By David Christensen
    April 20, 2012

    I recently needed to byte-swap an input file, and came up with an easy way with perl:

    $ perl -0777ne 'print pack(q{V*},unpack(q{N*},$_))' inputfile > outputfile

    This will byte-swap 4-byte sequences.  If you need to byte-swap 2-byte sequences, you can just adjust the formats for pack/unpack to the lower-case version like so:

    $ perl -0777ne 'print pack(q{v*},unpack(q{n*},$_))' inputfile > outputfile

    (Of course there are more efficient ways to handle this, but for a quick and dirty job this may just be what you need.)

    We use the -0777 option to ensure perl reads the input file in its entirety and doesn’t affect newlines, etc.


    perl

    Deconstructing an OO Blog Designs in Ruby 1.9

    Brian Buchalter

    By Brian Buchalter
    April 20, 2012

    I’ve become interested in Avdi Grimm’s new book Object on Rails, however I found the code to be terse. Avdi is an expert Rubyist and he makes extensive use of Ruby 1.9 with minimal explanation. In all fairness, he lobbies you to buy Peter Cooper’s Ruby 1.9 Walkthrough. Instead of purchasing the videos, I wanted to try and deconstruct them myself.

    In his first chapter featuring code, Mr. Grimm creates a Blog and Post class. For those of you who remember the original Rails blog demo, the two couldn’t look more different.

    Blog#post_source

    In an effort to encourage Rails developers to think about relationships between classes beyond ActiveRecord::Relation, he creates his own interface for defining how a Blog should interact with a “post source”.

    # from http://objectsonrails.com/#sec-5-2
    class Blog
      # ...
      attr_writer :post_source
      
      private
      def post_source
        @post_source ||= Post.public_method(:new)
      end
    end

    The code above defines the Blog class and makes available post_source= via the attr_writer method. Additionally, it defines the attribute reader as a private method. The idea being that a private method can be changed without breaking the class’s API. If we decide we want …


    ruby

    UTOSC, here I come

    Josh Tolley

    By Josh Tolley
    April 19, 2012

    Recently the Utah Open Source Foundation announced their schedule for this year’s UTOSC, scheduled for May 3-5 at Utah Valley University. I’m not sure I’ve ever before felt sufficiently ambitious to submit two talk proposals for a conference, but I did this time, and both were accepted, so I’ll give one talk on database constraints, from simple to complex, and another on geospatial data visualization such as we’ve been doing a whole lot of lately. Jon Jensen will also be there with two talks of his own, one on website performance and the other a “screen vs. tmux faceoff”. We use screen pretty heavily company-wide, but I’ve wanted to learn tmux for quite a while, so this one is on my list to see.

    DATABASE CONSTRAINTS

    Database constraints are something I’ve always strongly encouraged, and my commitment to clearly constrained data has become more complete recently after a few experiences with various clients and inconsistent data. The idea of a database constraint is to ensure all stored data meets certain criteria, such as that a matching record exists in another table, or the “begin” date is prior to the “end date”, or even simply that a particular field is not empty. Applications …


    conference

    Integrating Propel ORM

    Terry Grant

    By Terry Grant
    April 18, 2012

    Propel ORM Integration

    Most of us have worked in environments that are organized in an less than desirable manner. A common recurring problem is the organization and communication between the business logic and the database model. One helpful methodology to help with a problem like this is implementing an ORM (Object-Relational Mapping) system. There are many to choose from, but I would like to discuss use and integration of Propel ORM.

    Propel is currently only used in PHP, but supports many different databases. Currently Propel supports the following databases: MySQL, Postgres, Sqlite, MsSQL, and Oracle.

    Installation and Setup

    The main point of this post is to show how easily you can start integrating an ORM into your working environment. The explanation and examples below assume that you have installed the correct packages and configured Propel to work with your environment properly.

    The Propel website offers great documentation on how to do that:

    Installation

    Configuration

    Integration

    After you have set everything up, in particular the build.properties file, you can now generate your schema.xml file. This generated file describes your database in XML, everything form datatypes …


    database php
    Previous page • Page 148 of 223 • Next page