MacRuby

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    MacRuby - Presentation Transcript

    1. MacRuby raleigh.rb April 21, 2009 Sean Johnson Snooty Monkey, LLC
    2. first = Job.find_by_company('Clemson University') second = Job.find_by_company('Strategic Technologies') startup = Company.new('Venetica') Company.find_by_name('IBM').acquire(startup) startup2 = Company.new(:name => '3volve Technology, LLC') startup2.destroy startup3 = Company.new(:name => 'Snooty Monkey, LLC') me.career.to_s
    3. Product.create(:name => 'Virtual Access', :price => 50000, :platform => WIN32) Product.create(:name => 'Jasper', :price => 35000, :platform => JAVA) Product.create(:name => 'VeniceBridge', :price => 70000, :platform => J2EE) Product.create(:name => 'IBM OmniFind Yahoo Edition', :price => 0, :platform => J2EE) Product.create(:name => 'Live Syllabus', :price => 0, :platform => RUBY_ON_RAILS) Product.create(:name => 'BubbleTimer', :price => 20, :platform => RUBY_ON_RAILS) Product.create(:name => 'NewsMilk iPhone', :price => 0, :platform => IPHONE) Product.create(:name => 'WinTheTrophy', :price => 0, RUBY_ON_RAILS) Product.create(:name => 'Time Portal', :price => 35, MAC_RUBY) me.products.to_s
    4. O Ruby, Ruby, wherefore art thou Ruby?
    5. YARV Rubinius MRI JRuby IronRuby MacRuby
    6. Cocoa is better than Java. It’s 60% chocolatier.
    7. cocoa = ruby_on_rails if you.online? cocoa = ruby_libraries if you.skool == old cocoa = j2ee if you.wear?(suits) cocoa = dot_net if you.evil? cocoa.analogy.to_s
    8. 1985
    9. 1985 NeXTSTEP OPENSTEP
    10. 1985 NeXTSTEP OPENSTEP 1996
    11. 1985 NeXTSTEP OPENSTEP 1996 BSD Mach Kernal + OPENSTEP Cocoa = Mac OS X
    12. 1985 NeXTSTEP OPENSTEP 1996 Cocoa BSD Mach Kernal + OPENSTEP Cocoa Foundation AppKit = Mac OS X
    13. Cocoa in 60 seconds
    14. Typed Cocoa in 60 seconds
    15. Typed Late bound Cocoa in 60 seconds
    16. Typed true == YES Late bound Cocoa in 60 seconds
    17. Typed true == YES Late bound false == NO Cocoa in 60 seconds
    18. Typed true == YES Late bound false == NO garbage == collected Cocoa in 60 seconds
    19. Typed true == YES Late bound false == NO garbage == collected it’s complicated Cocoa in 60 seconds
    20. Typed true == YES Late bound Object == NSObject false == NO garbage == collected it’s complicated Cocoa in 60 seconds
    21. String == NSString Typed true == YES Late bound Object == NSObject false == NO garbage == collected it’s complicated Cocoa in 60 seconds
    22. String == NSString Typed Hash == NSMutableDictionary true == YES Late bound Object == NSObject false == NO garbage == collected it’s complicated Cocoa in 60 seconds
    23. String == NSString Typed wordy Hash == NSMutableDictionary true == YES Late bound Object == NSObject false == NO garbage == collected it’s complicated Cocoa in 60 seconds
    24. String == NSString Typed wordy Hash == NSMutableDictionary true == YES camelCased Late bound Object == NSObject false == NO garbage == collected it’s complicated Cocoa in 60 seconds
    25. String == NSString Typed wordy Hash == NSMutableDictionary true == YES camelCased Late bound Array == NSMutableArray Object == NSObject false == NO garbage == collected it’s complicated Cocoa in 60 seconds
    26. String == NSString Typed wordy Hash == NSMutableDictionary true == YES camelCased Late bound Array == NSMutableArray Object == NSObject nil can do some crazy shit false == NO garbage == collected it’s complicated Cocoa in 60 seconds
    27. init returns self String == NSString Typed wordy Hash == NSMutableDictionary true == YES camelCased Late bound Array == NSMutableArray Object == NSObject nil can do some crazy shit false == NO garbage == collected it’s complicated Cocoa in 60 seconds
    28. init returns self String == NSString Typed wordy Hash == NSMutableDictionary true == YES camelCased Late bound Array == NSMutableArray Object == NSObject nil can do some crazy shit false == NO garbage == collected it’s complicated my_object.method1.method2(arg1, arg2) Cocoa in 60 seconds
    29. init returns self String == NSString Typed wordy Hash == NSMutableDictionary true == YES camelCased Late bound Array == NSMutableArray Object == NSObject nil can do some crazy shit false == NO garbage == collected it’s complicated my_object.method1.method2(arg1, arg2) [[myObject message1] message2: arg1 label2: arg2]; Cocoa in 60 seconds
    30. init returns self String == NSString Typed wordy Hash == NSMutableDictionary true == YES camelCased Late bound Array == NSMutableArray Object == NSObject nil can do some crazy shit false == NO garbage == collected it’s complicated my_object.method1.method2(arg1, arg2) [[myObject message1] message2: arg1 label2: arg2]; my_object.method1.method2(arg1, :label2 => arg2) Cocoa in 60 seconds
    31. native numbers, strings, arrays, hashes MacRuby in 60 seconds
    32. Everything is an NSObject native numbers, strings, arrays, hashes MacRuby in 60 seconds
    33. Everything is an NSObject garbage == collected native numbers, strings, arrays, hashes MacRuby in 60 seconds
    34. Everything is an NSObject [obj setLame: YES] == obj.lame(false) garbage == collected native numbers, strings, arrays, hashes MacRuby in 60 seconds
    35. Everything is an NSObject [obj setLame: YES] == obj.lame(false) [obj isLame] == obj.lame? garbage == collected native numbers, strings, arrays, hashes MacRuby in 60 seconds
    36. Everything is an NSObject [obj setLame: YES] == obj.lame(false) [obj isLame] == obj.lame? garbage == collected framework ‘foundation’ framework ‘Cocoa’ native numbers, strings, arrays, hashes MacRuby in 60 seconds
    37. wrappers Everything is an NSObject [obj setLame: YES] == obj.lame(false) [obj isLame] == obj.lame? garbage == collected framework ‘foundation’ framework ‘Cocoa’ native numbers, strings, arrays, hashes MacRuby in 60 seconds
    38. wrappers Everything is an NSObject [obj setLame: YES] == obj.lame(false) [obj isLame] == obj.lame? garbage == collected framework ‘foundation’ framework ‘Cocoa’ native numbers, strings, arrays, hashes [[myObject message1] message2: arg1 label2: arg2]; MacRuby in 60 seconds
    39. wrappers Everything is an NSObject [obj setLame: YES] == obj.lame(false) [obj isLame] == obj.lame? garbage == collected framework ‘foundation’ framework ‘Cocoa’ native numbers, strings, arrays, hashes [[myObject message1] message2: arg1 label2: arg2]; my_object.method1.method2(arg1, :label2 => arg2) MacRuby in 60 seconds
    40. wrappers Everything is an NSObject [obj setLame: YES] == obj.lame(false) [obj isLame] == obj.lame? garbage == collected framework ‘foundation’ framework ‘Cocoa’ native numbers, strings, arrays, hashes [[myObject message1] message2: arg1 label2: arg2]; my_object.method1.method2(arg1, :label2 => arg2) my_object.method1.method2(arg1, label2:arg2) MacRuby in 60 seconds
    41. In the beginning...
    42. macruby.org
    43. Install
    44. Hello, I’m a Mac
    45. But...Cocoa is lame!
    46. Cocoa vs. Ruby wordy expressive initWithContentRect:style game.bets.last.valid? Mask:backing:defer:scree n:
    47. Cocoa vs. Ruby wordy expressive initWithContentRect:style game.bets.last.valid? Mask:backing:defer:scree n:
    48. HotCocoa::Mapping.map(:button => :NSButton) do def init_with_options(button, options) button.initWithFrame options.delete(:frame) end end require 'hotcocoa' include HotCocoa button :frame => [0,0,20,100] HotCocoa Constructors
    49. HotCocoa::Mapping.map(:button => :NSButton) do defaults :bezel => :rounded, :frame => DefaultEmptyRect, :layout => {} end require 'hotcocoa' include HotCocoa b = button HotCocoa Defaults
    50. HotCocoa::Mapping.map(:button => :NSButton) do constant :state, { :on => NSOnState, :o => NSOState, :mixed => NSMixedState } end require 'hotcocoa' include HotCocoa button :state => :on HotCocoa Constants
    51. HotCocoa::Mapping.map(:button => :NSButton) do custom_methods do def bezel=(value) setBezelStyle(value) end def on? state == NSOnState end end end require 'hotcocoa' include HotCocoa go_button = button :state => on puts 'yeah!' if go_button.on? HotCocoa Methods
    52. HotCocoa /Developer/Examples/Ruby/MacRuby/HotCocoa /Library/Frameworks/MacRuby.framework/Versions/ 0.4/usr/lib/ruby/1.9.1/hotcocoa/mappings
    53. You got Chocolate in my Peanut Butter!
    54. MacRuby 0.4 (March) Xcode Templates Embed MacRuby HotCocoa coverage / HotCocoa::Graphics Threaded GC Control Ruby Runtime from Obj-C API
    55. MacRuby 0.5 YARV LLVM Faster I/O on CFStream Pass RubySpec
    56. @macruby #ruby-osx macruby-devel@macosforge.org http://macruby.org/trac/report
    57. Mac iPhone Ruby on Rails Product Design/Mgmt. snootymonkey.com sean@snootymonkey.com

    + snootymonkeysnootymonkey, 7 months ago

    custom

    664 views, 3 favs, 0 embeds more stats

    My MacRuby talk to the raleigh.rb user group on Apr more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 664
      • 664 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 24
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories