Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Free The Enterprise With Ruby & Master Your Own Domain

Free The Enterprise With Ruby & Master Your Own Domain

On the heals of Luis Lavena’s RailsConf talk "Infiltrating Ruby Onto The Enterprise Death Star Using Guerilla Tactics" comes a local and frank talk about the current state of Open Source Software on Windows.

Ken Collins

April 11, 2012
Tweet

More Decks by Ken Collins

Other Decks in Technology

Transcript

  1. Congratulations! e simple fact that you are sitting here listening

    to me, means you've made a glorious contribution to Science! Tragic, but informative. $BWF+PIOTPO
  2. Dan Pink -On The Surprising Science Of Motivation TED Talk

    http:/ /is.gd/At2iVU RSA Animate http:/ /is.gd/SpuTbN
  3. Purpose 5IF ZFBSOJOH UP EP XIBU XF EP JO UIF

    TFSWJDF PG TPNFUIJOH MBSHFS UIBO PVSTFMWFT
  4. The Absolute Basics (Github) You (yes, you!) should contribute to

    open source http:/ /thechangelog.com/post/5367356233/
  5. The Absolute Basics (Github) You (yes, you!) should contribute to

    open source http:/ /thechangelog.com/post/5367356233/ Forking A Project
  6. The Absolute Basics (Github) You (yes, you!) should contribute to

    open source http:/ /thechangelog.com/post/5367356233/ Forking A Project Track Upstream Changes
  7. The Absolute Basics (Github) You (yes, you!) should contribute to

    open source http:/ /thechangelog.com/post/5367356233/ Forking A Project Track Upstream Changes Never Work On Master!
  8. The Absolute Basics (Github) You (yes, you!) should contribute to

    open source http:/ /thechangelog.com/post/5367356233/ Forking A Project Track Upstream Changes Never Work On Master! Remote Tracking Branches
  9. The Absolute Basics (Github) You (yes, you!) should contribute to

    open source http:/ /thechangelog.com/post/5367356233/ Forking A Project Track Upstream Changes Never Work On Master! Remote Tracking Branches Pull Requests
  10. OSS For The Tenderfoot Read The Manual Look For Support

    Channels Do Not Assume Critical Bugs
  11. OSS For The Tenderfoot Read The Manual Look For Support

    Channels Do Not Assume Critical Bugs Include Relevant Information
  12. OSS For The Tenderfoot Read The Manual Look For Support

    Channels Do Not Assume Critical Bugs Include Relevant Information We Like To Mentor!
  13. Associations class Client < ActiveRecord::Base has_one :address has_many :orders end

    class Address < ActiveRecord::Base belongs_to :client end class Order < ActiveRecord::Base belongs_to :client end
  14. Validations class Person < ActiveRecord::Base validates_presence_of :name end p =

    Person.new p.valid? # => false p.errors # => {:name=>["can't be blank"]} p.save # => false p.save! ActiveRecord::RecordInvalid
  15. Dirty Attributes person = Person.find_by_name('Uncle Bob') person.changed? # => false

    person.name = 'Bob' person.changed? # => true person.name_changed? # => true person.name_was # => 'Uncle Bob' person.name_change # => ['Uncle Bob', 'Bob'] person.name = 'Bill' person.name_change # => ['Uncle Bob', 'Bill'] person.save person.changed? # => false person.name_changed? # => false
  16. Migrations class AddReceiveNewsToUsers < ActiveRecord::Migration def self.up change_table :users do

    |t| t.boolean :receive_newsletter, :default => false end User.update_all :receive_newsletter => true end def self.down remove_column :users, :receive_newsletter end end
  17. SQL Server Adapter Maintainer For 4 Years Will Talk About

    3.1.x Use Rational Version Policy 2005, 2008, 2011 & Azure
  18. SQL Server Adapter Maintainer For 4 Years Will Talk About

    3.1.x Use Rational Version Policy 2005, 2008, 2011 & Azure Includes ARel Visitor
  19. SQL Server Adapter Maintainer For 4 Years Will Talk About

    3.1.x Use Rational Version Policy 2005, 2008, 2011 & Azure Includes ARel Visitor DBLIB, ODBC Connection Mode
  20. Prepared Statements SELECT TOP(1) * FROM [posts] WHERE [id] =

    1 SELECT TOP(1) * FROM [posts] WHERE [id] = 2 SELECT TOP(1) * FROM [posts] WHERE [id] = 3
  21. Prepared Statements SELECT TOP(1) * FROM [posts] WHERE [id] =

    1 SELECT TOP(1) * FROM [posts] WHERE [id] = 2 SELECT TOP(1) * FROM [posts] WHERE [id] = 3 EXEC sp_executesql N'SELECT TOP(1) * FROM [posts] WHERE [id] = @0', N'@0 int', @0 = 1 EXEC sp_executesql N'SELECT TOP(1) * FROM [posts] WHERE [id] = @0', N'@0 int', @0 = 2 EXEC sp_executesql N'SELECT TOP(1) * FROM [posts] WHERE [id] = @0', N'@0 int', @0 = 3
  22. TinyTDS Wraps FreeTDS’s Uses DBLIB Interface Converts All Data Types

    To Ruby Primitives Proper Encoding Support Highly Tested!
  23. TinyTDS Wraps FreeTDS’s Uses DBLIB Interface Converts All Data Types

    To Ruby Primitives Proper Encoding Support Highly Tested! From 2000 to Azure
  24. Rails Installer Ruby 1.8.7 Git 1.7 .3 DevKit Rails 3.0,

    SQLite3, TinyTDS Beta 2.0 Version Ruby 1.9 & Rails 3.1
  25. Going Native Rake Compiler https:/ /github.com/luislavena/rake-compiler Mimics RubyGems Build Process

    Build Extensions For Different Ruby Implementations. Build "FAT" Native Gems For Windows Users (from Linux or OSX)
  26. Going Native (TinyTDS) Git Clone The Project. $ bundle install

    && rake Download libiconv & freetds. Compile Each.
  27. Going Native (TinyTDS) Git Clone The Project. $ bundle install

    && rake Download libiconv & freetds. Compile Each. Build Ruby Gem C Extension. Statically Linked To Libs.
  28. Going Native (TinyTDS) Git Clone The Project. $ bundle install

    && rake Download libiconv & freetds. Compile Each. Build Ruby Gem C Extension. Statically Linked To Libs. Run Tests!