{"id":294,"date":"2009-03-14T16:01:46","date_gmt":"2009-03-15T00:01:46","guid":{"rendered":"http:\/\/jaredrobinson.com\/blog\/?p=294"},"modified":"2009-03-14T16:01:46","modified_gmt":"2009-03-15T00:01:46","slug":"mwrc-saturday-evening-lightning-talks","status":"publish","type":"post","link":"https:\/\/jaredrobinson.com\/blog\/mwrc-saturday-evening-lightning-talks\/","title":{"rendered":"mwrc: Saturday evening Lightning Talks"},"content":{"rendered":"<p>Binary Lottery code &#8212; how he wrote the app.<\/p>\n<p>Mhong &#8211; Event Machine. require &#8216;eventmachine&#8217; module. `EM.run { block }` takes<br \/>\nover your ruby, and nothing after that block will be run.<\/p>\n<p>There&#8217;s EM::PeriodicTimer and single-fire timers: `EM.add_timer(2) { block }`<br \/>\nTo use EM in your web-app, `require &#8216;thin&#8217;` or spin up a new thread and use<br \/>\n`EM.run`. `EM.HttpRequest.new &#8230; EM.system () &#8230; { if status.exitstatus == 0<br \/>\n&#8230;  end }`. Message queues, etc. Looks cool.<\/p>\n<p>Dana Gray &#8211; regular expressions. &#8220;it&#8217;s been two days since my last regular<br \/>\nexpression&#8221;. She went over the basics of regular expression string matches. How<br \/>\nto match word chars, positional anchors, capturing and non-capturing<br \/>\nparenthesis, grouping, character classes. Don&#8217;t fear regex, embrace regex.<\/p>\n<p>Jake Cahoon from the Utah Valley Ruby Users Group. He used a slightly<br \/>\nmonkey-patched &#8216;feedzirra&#8217; module to pull tweets using Ruby code. Finshed<br \/>\nwriting the code at 2 A.M. this morning. Now it pulls tweets and puts them into<br \/>\nIRC.  His code is on http:\/\/pastie.org<\/p>\n<p>MerbCamp videos from last year are online. How to do Rack testing. with require<br \/>\n&#8216;rackbox\/spec&#8217;. He wrote three apps that echo text in three different<br \/>\nframeworks (sinatra, merb, rails), and showed the tests running against each.<br \/>\nAll in five minutes.<\/p>\n<p>Sockets and Ruby.<br \/>\n`require &#8216;socket&#8217;; client = TCPSocket.net(&#8221;, 6789); client.write(&#8220;Hello!&#8221;);`<br \/>\n&#8230;<br \/>\n`server = TCPServer.new(&#8216;127.0.0.1&#8217;, 6789); client = server.accept; client.recv(500);`<\/p>\n<p>MongoDB &#8211; a document oriented data store. Supports native Ruby objects. Has<br \/>\nfull index support. Uses memory mapped files for speed. Has a file storage API.<br \/>\nWill support sharding soon. Best use cases: Most web apps, caching (memcachedb<br \/>\n+ indexes), when you need high scaleability. Worst case use cases:<br \/>\nTransactional systems, data warehouses. Why should you use it? Fast! No<br \/>\nmigrations, ever. Replaces memcached &#038; tokyo. Has great Ruby support, and it&#8217;s<br \/>\nnot mySQL. http:\/\/mongodb.org<\/p>\n<p>It&#8217;s easy to contribute RSpecs to Rubiniess. One presenter showed how.<\/p>\n<p>Brian Marick: How to learn from the screw-ups of the past. He&#8217;s been involved<br \/>\nin three movements in computer programming in the past 20 years. First, it was<br \/>\nlisp, which was going to take over the world, but died when it failed in the<br \/>\ncommercial world. Second was ???, and third is Ruby. He thinks &#8220;agile&#8221; is in<br \/>\ntrouble like lisp was in trouble. Agile was founded by people who like to<br \/>\nprogram. The key thing that was missing from agile is solidarity of action. He<br \/>\nran out of time to complete his thoughts.<\/p>\n<p>Coby R. announced the LA Ruby Conf &#8211; April 4th, 2009<\/p>\n<p>Justin Graham showed a working example of Adhearsion (the Ruby telephone<br \/>\nframework for Asterik).<\/p>\n<p>Pat Eyler &#8211; Ruby Brigades. You should participate in your local Ruby Brigade so that you can strengthen the community. It&#8217;s a chance to grow and learn. The best way to learn is to teach others. Simply show up. It&#8217;s discouraging when someone organizes a group and no one shows up. Get on the mailing list. Don&#8217;t just subscribe. Ask questions. Answer questions. Be involved. Give a lightning talk at the meeting.<\/p>\n<p>There are two types of meetings: Ones that are a launchpad, and ones that are a destination. Don&#8217;t let your meetings become a destination. Make the world a better place.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Binary Lottery code &#8212; how he wrote the app. Mhong &#8211; Event Machine. require &#8216;eventmachine&#8217; module. `EM.run { block }` takes over your ruby, and nothing after that block will be run. There&#8217;s EM::PeriodicTimer and single-fire timers: `EM.add_timer(2) { block }` To use EM in your web-app, `require &#8216;thin&#8217;` or spin up a new thread &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/jaredrobinson.com\/blog\/mwrc-saturday-evening-lightning-talks\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;mwrc: Saturday evening Lightning Talks&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[20,21],"class_list":["post-294","post","type-post","status-publish","format-standard","hentry","category-programming","tag-mtnwestrubyconf","tag-mwrc"],"_links":{"self":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/comments?post=294"}],"version-history":[{"count":6,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/294\/revisions"}],"predecessor-version":[{"id":301,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/294\/revisions\/301"}],"wp:attachment":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/media?parent=294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/categories?post=294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/tags?post=294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}