$30 off During Our Annual Pro Sale. View Details »

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. Free The Enterprise With Ruby & Master Your Own Domain

    Ken Collins metaskills.net
  2. 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
  3. Our Time Together

  4. Our Time Together

  5. Our Time Together

  6. Our Time Together my projects

  7. Our Time Together my projects oss windows

  8. Who Am I Again? ?

  9. Who Am I Again? @MetaSkills

  10. Who Am I Again? @MetaSkills

  11. Who Am I Again? @MetaSkills

  12. Who Am I Again? @MetaSkills

  13. Who Am I Again? @MetaSkills ...

  14. Sr. Software Engineer @ Decisiv

  15. None
  16. +BWB4DSJQU

  17. None
  18. Blog @ MetaSkills.net

  19. Freetime @ HomeMarks.com

  20. Advocate @ 757rb.org

  21. None
  22. None
  23. Dan Pink -On The Surprising Science Of Motivation TED Talk

    http:/ /is.gd/At2iVU RSA Animate http:/ /is.gd/SpuTbN
  24. Autonomy 5IF VSHF UP EJSFDU PVS PXO MJWFT

  25. Mastery 5IF EFTJSF UP HFU CFUUFS BU TPNFUIJOH UIBU NBUUFST

  26. Purpose 5IF ZFBSOJOH UP EP XIBU XF EP JO UIF

    TFSWJDF PG TPNFUIJOH MBSHFS UIBO PVSTFMWFT
  27. Autonomy Mastery Purpose

  28. Great! Sign Me Up.

  29. None
  30. The Absolute Basics (Github) You (yes, you!) should contribute to

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

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

    open source http:/ /thechangelog.com/post/5367356233/ Forking A Project Track Upstream Changes
  33. 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!
  34. 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
  35. 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
  36. OSS For The Tenderfoot

  37. OSS For The Tenderfoot Read The Manual

  38. OSS For The Tenderfoot Read The Manual Look For Support

    Channels
  39. OSS For The Tenderfoot Read The Manual Look For Support

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

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

    Channels Do Not Assume Critical Bugs Include Relevant Information We Like To Mentor!
  42. None
  43. my projects

  44. ActionMailer ActionPack ActiveModel ActiveRecord ActiveResource ActiveSupport

  45. ActionMailer ActionPack ActiveModel ActiveRecord ActiveResource ActiveSupport

  46. Powerful Models class User < ActiveRecord::Base end user = User.find(10)

    user.username # => 'metaskills' user.email # => 'ken@metaskills.net'
  47. 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
  48. 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
  49. 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
  50. 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
  51. And The List Goes On...

  52. And The List Goes On... Identity Map

  53. And The List Goes On... Identity Map Prepared Statements

  54. And The List Goes On... Identity Map Prepared Statements Etc,

    etc, etc...
  55. ActiveRecord SQL Server Adapter

  56. SQL Server Adapter

  57. SQL Server Adapter Maintainer For 4 Years

  58. SQL Server Adapter Maintainer For 4 Years Will Talk About

    3.1.x
  59. SQL Server Adapter Maintainer For 4 Years Will Talk About

    3.1.x Use Rational Version Policy
  60. SQL Server Adapter Maintainer For 4 Years Will Talk About

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

    3.1.x Use Rational Version Policy 2005, 2008, 2011 & Azure Includes ARel Visitor
  62. 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
  63. Key Adapter Features

  64. Key Adapter Features Stored Procedures

  65. Key Adapter Features Stored Procedures Views (Schema Reflection)

  66. Key Adapter Features Stored Procedures Views (Schema Reflection) Different Schemas

  67. Key Adapter Features Stored Procedures Views (Schema Reflection) Different Schemas

    Auto Reconnects
  68. Key Adapter Features Stored Procedures Views (Schema Reflection) Different Schemas

    Auto Reconnects SQL Azure
  69. Key Adapter Features Stored Procedures Views (Schema Reflection) Different Schemas

    Auto Reconnects SQL Azure http:/ /is.gd/UDdVzT
  70. Prepared Statements

  71. 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
  72. 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
  73. Prepared Statements http:/ /www.engineyard.com/blog/2011/sql-server-10xs-faster-with-rails-3-1/

  74. TinyTDS Ruby C Extension

  75. TinyTDS

  76. TinyTDS Wraps FreeTDS’s

  77. TinyTDS Wraps FreeTDS’s Uses DBLIB Interface

  78. TinyTDS Wraps FreeTDS’s Uses DBLIB Interface Converts All Data Types

    To Ruby Primitives
  79. TinyTDS Wraps FreeTDS’s Uses DBLIB Interface Converts All Data Types

    To Ruby Primitives Proper Encoding Support
  80. TinyTDS Wraps FreeTDS’s Uses DBLIB Interface Converts All Data Types

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

    To Ruby Primitives Proper Encoding Support Highly Tested! From 2000 to Azure
  82. Modern SQL Server & Rails http:/ /www.engineyard.com/blog/2011/modern-sql-server-rails/

  83. oss windows

  84. oss windows

  85. http:/ /rubyheroes.com/ Luis Lavena @luislavena Wayne E Seguin @wayneeseguin

  86. Rails Installer

  87. Rails Installer

  88. Rails Installer Ruby 1.8.7

  89. Rails Installer Ruby 1.8.7 Git 1.7 .3

  90. Rails Installer Ruby 1.8.7 Git 1.7 .3 DevKit

  91. Rails Installer Ruby 1.8.7 Git 1.7 .3 DevKit Rails 3.0,

    SQLite3, TinyTDS
  92. Rails Installer Ruby 1.8.7 Git 1.7 .3 DevKit Rails 3.0,

    SQLite3, TinyTDS Beta 2.0 Version
  93. 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
  94. (PJOH /BUJWF

  95. Going Native Rake Compiler https:/ /github.com/luislavena/rake-compiler

  96. Going Native Rake Compiler https:/ /github.com/luislavena/rake-compiler Mimics RubyGems Build Process

  97. Going Native Rake Compiler https:/ /github.com/luislavena/rake-compiler Mimics RubyGems Build Process

    Build Extensions For Different Ruby Implementations.
  98. 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)
  99. Going Native MiniPortile https:/ /github.com/luislavena/mini_portile

  100. Going Native MiniPortile https:/ /github.com/luislavena/mini_portile A Minimalistic, Simplistic And Stupid

    Implementation Of A Port/Recipe System.
  101. Going Native MiniPortile https:/ /github.com/luislavena/mini_portile A Minimalistic, Simplistic And Stupid

    Implementation Of A Port/Recipe System. For Gem Developers!!!
  102. Going Native (TinyTDS)

  103. Going Native (TinyTDS) Git Clone The Project.

  104. Going Native (TinyTDS) Git Clone The Project. $ bundle install

    && rake
  105. Going Native (TinyTDS) Git Clone The Project. $ bundle install

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

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

    && rake Download libiconv & freetds. Compile Each. Build Ruby Gem C Extension. Statically Linked To Libs.
  108. 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!
  109. AdventureWorks.Ruby

  110. AdventureWorks.Ruby

  111. AdventureWorks.Ruby

  112. AdventureWorks.Ruby

  113. AdventureWorks.Ruby On github.com/rails-sqlserver

  114. AdventureWorks.Ruby On github.com/rails-sqlserver Database Cloning

  115. AdventureWorks.Ruby On github.com/rails-sqlserver Database Cloning Rake Override Task

  116. AdventureWorks.Ruby On github.com/rails-sqlserver Database Cloning Rake Override Task Usage of

    smocript/sqlcmd
  117. None