-
Notifications
You must be signed in to change notification settings - Fork 0
/
talks.html
883 lines (827 loc) · 71.6 KB
/
talks.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en-US">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
RubyConf India 2011
</title>
<meta name="robots" content="index,follow" />
<meta name="author" content="Rajveer Singh Rathore" />
<meta name="description" content="India's second RubyConf is happening in Bangalore in May this year. RubyConf India is co-presented by ThoughtWorks and RubyCentral." />
<meta name="keywords" content="" />
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<link rel="stylesheet" href="css/screen.css" type="text/css" media="screen" /><!--[if IE ]>
<style>
ul.speakers li .spkr_desc p:first-child:first-letter {
margin: -1em 0 0 0;
height: auto;
}
</style>
<![endif]-->
<!--[if IE 6]>
<link rel="stylesheet" href="css/ie6.css" type="text/css" media="screen" />
<![endif]-->
</head>
<body>
<div class="wrapper">
<a name="top" id="top"></a>
<div id="menuContainer" class="nav">
<ul id="menu">
<li class="first" id="home">
<a href="index.html"><span>Home</span></a>
</li>
<li id="about">
<a href="about.html"><span>About</span></a>
</li>
<li id="program">
<a href="program.html"><span>Program</span></a>
</li>
<li id="talks">
<a href="talks.html"><span>Talks</span></a>
</li>
<li id="sponsors">
<a href="sponsors.html"><span>Sponsors</span></a>
</li>
<li id="registration">
<a href="registration.html"><span>Register</span></a>
</li>
<li id="twitter">
<a href="http://twitter.com/#!/rubyconfindia" target="_blank"><span>Twitter</span></a>
</li>
<li id="badges">
<a href="badges.html"><span>Badges</span></a>
</li>
<li class="last" id="contact">
<a href="contact.html"><span>Contact</span></a>
</li>
</ul>
</div>
<div class="header">
<h1 class="logo">
Ruby Conference India 2011 - Logo
</h1>
<div style="visibility:hidden">
<div class="flash_news">
<p>
<a href="speakers.html#presentation_links">RubyConf2010 presentations</a>
</p>
</div>
</div>
<div class="blurb">
<h2>
RubyConf India 2011
</h2>
<blockquote>
India's second RubyConf is happening in Bangalore in May 2011. RubyConf India is presented by the <span>Ruby Community</span> in India and supported by <a href="http://www.rubycentral.org"><span>RubyCentral</span></a> and the <span>Innovation & Technology Trust</span>.
</blockquote>
<address>
<a href="location.html" title="#1, Golf Avenue, (Adjoining KGA Golf Course), Old Airport Road, Bangalore 560 008.">Royal Orchid Hotel</a>, Bangalore
</address>
<div>
28th & 29th May
</div>
</div>
<!--div class="register">
<a href="http://rubyconfindia.doattend.com">Register Now</a>
</div-->
</div>
<div class="content wide_content">
<h2>
Keynotes
</h2>
<div class="proposals">
<p>
Here are the keynotes:
</p> <br />
<ul>
<li class="talk" id="service">
<div class="spkr_photo">
<img title="Chad Fowler" alt="Chad Fowler" src="images/speakers/chad.jpg" />
</div>
<div class="speaker">
:speaker => "Chad Fowler"
</div>
<div class="speaker_bio">
Chad Fowler is an internationally known software developer, trainer, manager, speaker, musician, organiser. Over the past decade he has worked with some of the world's largest companies and most admired software developers. He loves to program computers and, as part of his role as CTO of InfoEther, Inc., spends much of his time solving hard problems for customers in the Ruby language. He is currently the VP of Engineering at Living Social. He is co-organizer of RubyConf, RailsConf, and RailsConf Europe and author or co-author of a number of popular software books.
</div>
<div class="talk_title">
:talk => "<a href="presentations/chadFowler-service.key">Service</a>"
</div>
<div class="talk_description">
As software developers, testers, and project managers, we all make the same thing: experiences. No matter what your profession, the service you provide to your customers is what they'll remember the most. This presentation will put "service" in perspective and give you techniques to provide remarkable customer service. <br /><br />
<p>Chad's talk is available in <a href="presentations/chadFowler-service.key">Keynote</a> format (17.7 MB) and in <a href="presentations/chadFowler-service.pdf">PDF</a> format (8.4 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25406664">here</a>.</p>
</div>
</li>
<li class="talk" id="happiness-ruby-freedom-jruby">
<div class="spkr_photo">
<img title="Nick Sieger" alt="Nick Sieger" src="images/speakers/NickS.jpg" />
</div>
<div class="speaker">
:speaker => "Nick Sieger"
</div>
<div class="speaker_bio">
Nick Sieger is an engineer at Engine Yard, working on JRuby and leading the effort to make the Java Virtual Machine a robust yet easy-to-use deployment platform for Rails and Ruby web applications. He created and co-maintains the JDBC adapter for ActiveRecord that JRuby on Rails uses for database connectivity, as well as the Warbler tool and JRuby-Rack library for dealing with Java application server deployment. He maintains a blog on Ruby and JRuby-related topics <a href="http://blog.nicksieger.com/">here</a>.
</div>
<div class="talk_title">
:talk => "Happiness : Ruby :: Freedom : JRuby"
</div>
<div class="talk_description">
Happiness is an infectious feeling. When Matz set out to make himself
happy by creating Ruby, did he have any idea what he had set in
motion? And yet, here we are, a worldwide community of computer
programmers collectively discussing how to improve our own lives and
the lives of others. Inspired by Matz, we sense an opportunity to
leave the world a better place than the way we found it.<br /><br />
Closely intertwined with happiness, freedom is also infectious. The
freedom to use the best tool to solve a problem. The feeling of being
liberated from legacy code. The freedom to deploy your code anywhere.
Using JRuby enables these situations with an extremely low friction
and barrier to entry.<br /><br />
Ruby and JRuby are just programming tools. Can they really engender
and promote happiness and freedom? As inanimate bits residing on
spinning rust, perhaps not. But as the intellectual property of our
community that connects us, empowers us to solve real problems and
share our stories, the answer to that question becomes more positive.<br /><br />
<p>Video of the talk is available <a href="http://vimeo.com/25410705">here</a>.</p>
</div>
</li>
<li class="talk" id="building-rails-app-for-the-rich-client">
<div class="spkr_photo">
<img title="Yehuda Katz" alt="Yehuda Katz" src="images/speakers/yehuda.jpg" />
</div>
<div class="speaker">
:speaker => "Yehuda Katz"
</div>
<div class="speaker_bio">
Yehuda Katz is a member of the SproutCore, Ruby on Rails and jQuery Core Teams; during the daytime, he works as an architect at Strobe. Yehuda is the co-author of the best-selling "jQuery in Action", the upcoming "Rails 3 in Action", and is a contributor to "Ruby in Practice". He spends most of his time hacking on open source - his main projects, along with others, like Thor, Handlebars and Janus - or traveling the world doing evangelism work. He blogs at <a href="http://www.yehudakatz.com"> yehudakatz.com</a> and can be found on Twitter as <a href="http://twitter.com/#!/wycats"> @wycats.</a>
</div>
<div class="talk_title">
:talk => "Building Rails Apps for the Rich Client"
</div>
<div class="talk_description">
We all know that Rails is great for building traditional web applications that serve dynamic HTML pages. But more and more, people are reaching to other tools, like Node.js, when they build web applications with a lot of logic in the client. People often use the argument that when you remove the view helpers, there isn’t much of value left in Rails.<br /><br />
In fact, because the Rails framework made an early bet on the REST architecture, it is extremely productive for building applications that mostly communicate over HTTP using JSON payloads. In this talk, Yehuda will talk about what makes Rails so good as the server for rich clients, and how to structure your application to take the most advantage of these properties.
<br /><br />
<p>Video of the talk is available <a href="http://vimeo.com/25405997">here</a>.</p>
</div>
</li>
<li class="talk" id="the-good-the-bad-and-the-ugly">
<div class="spkr_photo">
<img title="Ola Bini" alt="Ola Bini" src="images/speakers/ola1.jpg" />
</div>
<div class="speaker">
:speaker => "Ola Bini"
</div>
<div class="speaker_bio">
Ola Bini works as a language geek for ThoughtWorks in Chicago. He is from Sweden, but don't hold that against him. He is one of the JRuby core developers, and has been involved in JRuby development since 2006. At one point in time, Ola got tired of all existing programming languages and decided to create his own, called Ioke. Then he did it again, and started work on Seph. He has written a book called "Practical JRuby on Rails Projects" for APress, and co-authored "Using JRuby for the Pragmatic Programmers", talked at numerous conferences, and contributed to a large number of open source projects. He is also a member of the JSR292 Expert Group. His main passion lies in expression engines and trying to figure out how to create good YAML parsers. <br />
</div>
<div class="talk_title">
:talk => "<a href="presentations/olaBini-TheGoodTheBadAndTheUgly.pdf">The Good, the Bad and the Ugly</a>"
</div>
<div class="talk_description">
Ruby turned 18 in 2011. In many countries around the world, that
means Ruby is now an adult. During the evolution of the language, there
have been many, many improvements. What started out as a small language
has grown larger. However, the more code we write in Ruby, the more we
realise that there are things that could be better. And we are
also realising that there are things that just plainly shouldn't be
there.<br /><br />
In this talk, I would like to explore some of these aspects, with
an eye towards what Ruby 2.0 will be, and what the language could look
like if you started from scratch. The Ruby language and the Ruby
ecosystem is a fantastic place to be, but the best feature of it is that
we are not afraid of evolution.<br /><br />
<p>Ola's keynote is available in <a href="presentations/olaBini-TheGoodTheBadAndTheUgly.pdf">PDF</a> format (4.7 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25409238">here</a>.</p>
</div>
</li>
<br /><br />
</ul>
</div>
<h2>
Talks
</h2>
<div class="proposals">
<p>
Here are the selected talks along with the speaker bios, in no particular order:
</p><br />
<ul>
<li class="talk" id="software-quality-and-test-strategies">
<div class="spkr_photo">
<img title="Bhavin Javia" alt="Bhavin Javia" src="images/speakers/bhavin.jpg" />
</div>
<div class="speaker">
:speaker => "Bhavin Javia"
</div>
<div class="speaker_bio">
Bhavin is an Agile Rubyist with several years of experience in designing, developing, testing and deployment of business critical applications in a wide variety of domains. He spent many years at ThoughtWorks, working and leading adoption of Ruby as a viable platform for enterprise class applications in India and abroad. A passionate proponent of Agile methodologies, he was a founding member of <a href="http://agileindia.org">ASCI</a> (Agile Software Community of India).<br />
<br />
Bhavin is the founder of <a href="http://ennova.in">Ennova India</a>, a Bangalore based startup with an aim to offer cutting-edge consulting and development services to small businesses and startups. He is also a part of the core team at <a href="http://ennova.com.au">Ennova</a> - an Australia-based startup company that is focused on providing the construction and engineering industries with great software products like <a href="http://envisionapp.com">Envision</a> and development services through <a href="http://getencode.com">Encode</a>.
</div>
<div class="talk_title">
:talk => "<a href="presentations/bj-sqts.pdf">Software Quality and Test Strategies for Ruby and Rails Applications</a>"
</div>
<div class="talk_description">
Quality is one of the most important factors in deriving business value from software. However, many teams find it difficult to incorporate the appropriate quality and testing practices into their development processes. A test strategy helps create a shared understanding of what testing will be required, and how and when it will be executed.<br />
<br />
The Ruby and Rails communities have embraced testing and code quality as core values, and a rich ecosystem of tools has developed. Despite this support, many developers and teams overlook the creation of a test strategy as it is thought to be an unnecessary overhead that is traditionally associated with formal/waterfall style development methodologies. However, a well developed Test Strategy can be the difference between great software and a maintenance nightmare.<br />
<br />
This presentation will explain the process of defining quality (internal and external) for Ruby and Rails applications including metrics and targets. It will then explain the process for creating and executing a Test Strategy that ensures the intended quality objectives are achieved. Additionally, it will explain how to align a Test Strategy with the typical practices of a team using Agile or Lean methods.<br />
<br />
Learning Outcomes:<br />
<br />
<ol class="bullet_points_talk_description">
<li>Definition of Software Quality and appropriate metrics and targets
</li>
<li>Purpose and role of Test Strategy within an Agile development environment
</li>
<li>Creation of a Test Strategy tailored to suit Ruby and Rails applications
</li>
<li>Testing tool selection within Ruby ecosystem
</li>
<li>Approach and benefits to Ruby developers focusing on code quality
</li>
</ol>
<br />
<p>Bhavin's presentation is available in <a href="presentations/bj-sqts.pdf">PDF</a> format (1.5 MB).</p>
<p>Video of part 1 of the talk is available <a href="http://vimeo.com/25409290">here</a>.</p>
<p>Video of part 2 of the talk is available <a href="http://vimeo.com/25409548">here</a>.</p>
</div>
</li>
<li class="talk" id="ruby-plus-rails-plus-your-application-minus-rails" >
<div class="spkr_photo">
<img title="Brian Guthrie" alt="Brian Guthrie" src="images/speakers/speaker_avatar.jpg" />
</div>
<div class="speaker">
:speaker => "Brian Guthrie"
</div>
<div class="speaker_bio">
Brian Guthrie has been writing bad Ruby code for five years, every line of it worse than the last. He started his Ruby career in Boston, and after joining ThoughtWorks went on to write increasingly bad Ruby code in Chicago, New York, Texas, California, and India. He is currently writing the worst Ruby code of his career in Melbourne, Australia. He is thrilled to return once more to India to share his mistakes with the vibrant Ruby community there, in the sincere and humble spirit of collective mistake-repetition avoidance.
</div>
<div class="talk_title">
:talk => "<a href="presentations/brianGuthrie-RubyPlusRailsPlusAppMinusRails.key">Ruby Plus Rails Plus Your Application Minus Rails</a>"
</div>
<div class="talk_description">
Ruby on Rails is a famously opinionated framework that handles ninety percent of the problems a typical web application faces. But what about the last ten percent? Every app has to jump off the Rails eventually, whether that means integrating with an external web service, importing data from another database, or providing enhanced search functionality. In this talk I'll lead you through some patterns for handling those cases, and discuss certain features of Rails 3 that let you leverage the best pieces of the core framework without resorting to ugly hacks. Finally we'll discuss what a new, more modular core framework means for a post-Rails world.
<br /><br />
<p>Brian's presentation is available in <a href="presentations/brianGuthrie-RubyPlusRailsPlusAppMinusRails.key">Keynote</a> format (24.4 MB) and in <a href="presentations/brianGuthrie-RubyPlusRailsPlusAppMinusRails.pdf">PDF</a> format (9.4 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25411435">here</a>.</p>
</div>
</li>
<li class="talk" id="refactoring-a-legacy-java-application-to-rails">
<div class="spkr_photo">
<img title="Nick Sieger" alt="Nick Sieger" src="images/speakers/NickS.jpg" />
</div>
<div class="speaker">
:speaker => "Nick Sieger"
</div>
<div class="speaker_bio">
Nick Sieger is an engineer at Engine Yard, working on JRuby and leading the effort to make the Java Virtual Machine a robust yet easy-to-use deployment platform for Rails and Ruby web applications. He created and co-maintains the JDBC adapter for ActiveRecord that JRuby on Rails uses for database connectivity, as well as the Warbler tool and JRuby-Rack library for dealing with Java application server deployment. He maintains a blog on Ruby and JRuby-related topics <a href="http://blog.nicksieger.com/">here</a>.
</div>
<div class="talk_title">
:talk => "<a href="presentations/nickSieger-RCIndia-RefactoringToRails.pdf">Refactoring a Legacy Java Application to Rails</a>"
</div>
<div class="talk_description">
The JRuby team has been proclaiming JRuby on Rails as the cure to legacy Java blues for years, but we've been lacking a compelling example that developers can use as a guideline for how to achieve this. We'll discuss and demonstrate three possible approaches, allowing for a minimal, medium, and large amount of reorganisation to an existing project. Each approach will build upon the previous one, showing developers how they can take an incremental approach to introducing Ruby into an existing Java environment to increase development productivity.<br /><br />
<p>Nick's presentation is available in <a href="presentations/nickSieger-RCIndia-RefactoringToRails.pdf">PDF</a> format (3.8 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25406327">here</a>.</p>
</div>
</li>
<li class="talk" id="anti-patterns-and-patterns">
<div class="spkr_photo">
<img title="Habibullah Pagarkar" alt="Habibullah Pagarkar" src="images/speakers/habib.png" />
</div>
<div class="spkr_photo">
<img title="Chirantan Mitra" alt="Chirantan Mitra" src="images/speakers/speaker_avatar.jpg" />
</div>
<div class="speaker">
:speakers => ["Chirantan Mitra", "Habibullah Pagarkar"]
</div>
<div class="speaker_bio">
Chirantan Mitra is better known as Chiku. He is a developer at ThoughtWorks with experience in working on complex domains mostly involving Ruby or C#. He has been programming since the age of nine - he loved it back then and still does so now. He conveniently forgets his Twitter handle from time to time, but remembers to <a href="https://github.com/chiku">share his code</a>.<br />
<br />
Habibullah Pagarkar is almost always known as Habib. He juggles various roles at ThoughtWorks, but is primarily a software engineer. He abhors waste and loves efficiency - not just in software. In his spare time he can be found cycling along Bangalore's Old Airport Road. He very rarely updates his <a href="http://www.cs.jhu.edu/~habib">website</a>, but regularly tweets as <a href="http://www.twitter.com/mhabibp">@mhabibp</a>
</div>
<div class="talk_title">
:talk => "<a href="presentations/habib-RailsAntipatterns.ppt">Anti-Patterns and Patterns in Rails</a>"
</div>
<div class="talk_description">
The presenters, Chiku and Habib, were team members on a distributed Agile Software project. Their job was to quickly write mission critical Rails applications, and they practiced various aspects of Continuous Delivery. Over the duration of this project, they noticed the evolution of interesting patterns that were thought to be great ideas. Many were, some weren't.<br />
<br />
Chiku and Habib will be pair-presenting their learnings in a way that mirrors the eternal tussle that a developer faces daily - convenience versus quality. One of them will assume the role of a devil and persuasively present a code-fragment that mirrored one such anti-pattern. The other will then take over as an angel and explain the problem inherent in that code-fragment, and proceed to clean it up. They will then swap roles and proceed to the next point.<br />
<br />
At the end of this presentation, the audience will have the knowledge of identifying and subsequently fixing similar manifestations of these problems in their code.
<br /><br />
<p>Habib and Chiku's presentation is available in <a href="presentations/habib-RailsAntipatterns.ppt">PPT</a> format (11.3 MB) and in <a href="presentations/habib-RailsAntipatterns.pdf">PDF</a> format (5.2 MB).</p>
<p>Code samples used in the presentation are available <a href="https://github.com/chiku/RubyConfIndia2011">here.</a></p>
<p>Video of the talk is available <a href="http://vimeo.com/25404870">here</a>.</p>
</div>
</li>
<li class="talk" id="single-web-page-apps">
<div class="spkr_photo">
<img title="Prateek Dayal" alt="Prateek Dayal" src="images/speakers/prateek.png" />
</div>
<div class="speaker">
:speaker => "Prateek Mohan Dayal"
</div>
<div class="speaker_bio">
Prateek is the technology backbone for <a href="http://supportbee.com/">SupportBee.com</a>. After graduating with a B.Tech in Electronics and Communication Engineering from IIT Guwahati, he worked with various startups in the Embedded Software domain. He left his job 4 years back to start Muziboo.com - to follow his passion for Web, Ruby On Rails and Music. Muziboo is currently on auto-pilot mode, and he is focussing fulltime on SupportBee.com. He blogs <a href="http://www.prateekdayal.net">here</a> and <a href="http://devblog.muziboo.com">here</a>
</div>
<div class="talk_title">
:talk => "<a href="presentations/prateekDayal-backbonerails-110528024926-phpapp02.key">Single page Web apps with Backbone.js and Ruby on Rails</a>"
</div>
<div class="talk_description">
jQuery is great for websites that need simple AJAX interactions and some effects (example Youtube/Flickr). However, if you want to build complex single page web applications like Gmail or Mobile Me, you need something more than jQuery. Keeping track of DOM elements to be updated in response to a particular action or result of an ajax query can become overwhelming very fast.<br />
<br />
Frameworks like Sproutcore, Cappuccino and Backbone.js provide structure to your javascript code. Backbone supplies structure to JavaScript-heavy applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions and views with declarative event handling.<br />
<br />
In this talk, we will go over building a simple Backbone.js application with Ruby on Rails backend and discuss some tricks and techniques that I have discovered while building supportbee.com. The outline of the talk is:<br />
<br />
<ol class="bullet_points_talk_description">
<li>Motivation for using a framework like Backbone.js. A quick comparison with Sproutcore and other frameworks
</li>
<li>Creating models, views and collections in backbone.js
</li>
<li>Setting up a controller to route requests (and preserve the back button behaviour)
</li>
<li>Setting up backbone.js to play nicely with Rails' ActiveRecord::Base.include_root_in_json
</li>
<li>Handlebars for templating
</li>
<li>Jammit for easily packaging all asset files (including javascript files for backbone's models, views and templates)
</li>
<li>Compiling handlebars’ template files and making them available to your code for rendering in a global variable
</li>
<li>Using as_json to customize the json serialization of Rails’ model
</li>
<li>A technique to make as_json use an included association’s as_json. The change can be seen at <a href="https://gist.github.com/437968d6a5f9cbc93a8d">here</a>
</li>
<li>Thoughts on testing a full page app. Also some thoughts on creating a restful API using restfulie
</li>
</ol>
<br />
<p>Prateek's presentation is available in <a href="presentations/prateekDayal-backbonerails-110528024926-phpapp02.key">Keynote</a> format (0.9 MB) and in <a href="presentations/prateekDayal-backbonerails-110528024926-phpapp02.pdf">PDF</a> format (0.7 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25408735">here</a>.</p>
</div>
</li>
<li class="talk" id="test-load-balancer">
<div class="spkr_photo">
<img title="Pavan Sudharshan" alt="Pavan Sudharshan" src="images/speakers/speaker_avatar.jpg" />
</div>
<div class="spkr_photo">
<img title="Janmejay Singh" alt="Janmejay Singh" src="images/speakers/janmejay.jpg" />
</div>
<div class="speaker">
:speakers => ["Janmejay Singh", "Pavan K Sudarshan"]
</div>
<div class="speaker_bio">
Janmejay (JJ) is a developer working at ThoughtWorks, Inc. in the Studios division. He has around 5 years of professional experience. He blogs <a href="http://codehunk.wordpress.com">here</a> and shares his code <a href="http://github.com/janmejay">here</a>.<br />
<br />
Pavan is a developer working at ThoughtWorks, Inc. in the Studios division. He has around 5 years of professional experience. He blogs <a href="http://pavanks.blogspot.com">here</a> and shares his code <a href="http://github.com/itspanzi">here</a>.
</div>
<div class="talk_title">
:talk => "<a href="presentations/janmejay-TLB-rocketBoosterForYourBuild.pdf">Test Load Balancer: Rocket Booster for your Build</a>"
</div>
<div class="talk_description">
<a href="http://test-load-balancer.github.com/">Test Load Balancer (TLB)</a> is a tool that can automatically partition tests into multiple subsets, each one of which can be executed in parallel. The execution can happen on different physical/virtual machines or on the same machine as different processes or threads. The more the partitions, the less the number of tests executed on each one, and since all of the partitions start at the same time (and finish almost at the same time) overall test-execution time gets divided by the number of partitions you make. Test-running is by far the longest step in most (if not all) builds, and cutting down test-running time speeds up the build and hence the feedback loop. TLB can be used for any kind of test-suite - unit, integration or functional tests.<br />
<br />
In addition to balancing, TLB does other interesting things like re-order tests within a subset (set of tests that run on a partition) before they are executed. For instance, it re-arranges tests to execute failing ones (that failed in the previous build) first, hence ensuring early feedback.<br />
<br />
Most build servers (like Hudson, Go, TeamCity, Bamboo, etc.) and even tools like capistrano/cluster-ssh provide parallel execution capability (capability to execute command(s) on different machines at the same time). However, parallelization of tests needs a tool that can decide what tests need to be run in each such parallely running process across machines. This is where TLB comes in.<br />
<br />
This talk will introduce the audience to TLB concepts and include a demo of using TLB to partition RSpec and Test::Unit suites. It'll also include a case-study on how TLB helped cut build time from approximately 70 minutes to 11 minutes (which can of course be further reduced) just by throwing more hardware at it.
<br /><br />
<p>JJ and Pavan's presentation is available in <a href="presentations/janmejay-TLB-rocketBoosterForYourBuild.pdf">PDF</a> format (1.5 MB).</p>
<p>Video of part 1 of the talk is available <a href="http://vimeo.com/25405151">here</a>.</p>
<p>Video of part 2 of the talk is available <a href="http://vimeo.com/25405339">here</a>.</p>
</div>
</li>
<li class="talk" id="coffeescript">
<div class="spkr_photo">
<img title="Nicolás Sanguinetti" alt="Nicolás Sanguinetti" src="images/speakers/nicolas.jpg" />
</div>
<div class="speaker">
:speaker => "Nicolás Sanguinetti"
</div>
<div class="speaker_bio">
Nicolás (probably better known as foca) has been working with Rails since 2006, and with Ruby since 2004. He's constantly looking for ways to improve the way we write and test web applications in a way that makes them easier to use and maintain.<br />
<br />
He contributes to a few open source projects <a href="http://github.com/foca">here</a>. He lives in Montevideo, Uruguay, where he works as an engineer for <a href="http://cuboxsa.com">Cubox</a>.
</div>
<div class="talk_title">
:talk => "<a href="presentations/nicolas-LetsHaveACupOfCoffeeScript.key">Let's have a cup of CoffeeScript</a>"
</div>
<div class="talk_description">
CoffeeScript is a great way to write javascript. It provides many abstractions that simplify the language, and a few syntax niceties that make it much less noisy than pure javascript. We'll cover the basic syntax and how it differs from regular javascript, and see some examples. Moreover, Rails 3.1 will ship with CoffeeScript by default, so this is a great time to get up to speed with it!
<br /><br />
<p>Foca's presentation is available in <a href="presentations/nicolas-LetsHaveACupOfCoffeeScript.key">Keynote</a> format (5.8 MB) and in <a href="presentations/nicolas-LetsHaveACupOfCoffeeScript.pdf">PDF</a> format (2.4 MB).</p>
<p>Video of part 1 of the talk is available <a href="http://vimeo.com/25408232">here</a>.</p>
<p>Video of part 2 of the talk is available <a href="http://vimeo.com/25408354">here</a>.</p>
</div>
</li>
<li class="talk" id="macruby">
<div class="spkr_photo">
<img title="Mark Madsen" alt="Mark Madsen" src="images/speakers/mark.jpg" />
</div>
<div class="speaker">
:speaker => "Mark Madsen"
</div>
<div class="speaker_bio">
Mark Madsen was appointed as the Chief Technology Officer of Castle Rock Research Corp. in January of 2010 but has been leading the technology group as a Director since shortly after his return to the company in 2007. Since that time Mark has grown the development team at Castle Rock from 10 developers to 100 developers spanning 2 continents and 3 cities. The expansion has provided Castle Rock with the capacity to deliver both web applications (primarily .NET and Ruby on Rails) and mobile applications (primarily iOS and Android) to their growing customer base.<br />
<br />
Mark has been involved in mobile application development since before the dawn of the iPhone (in 2007) and has built the technology group at Castle Rock with mobile in mind. This is most evident in Castle Rock's mobile educational platform, SOLARO, which launched with the iPad App Store this spring. SOLARO gives students access to a variety of standards-aligned supplemental resources through their choice of iOS, Android or Web apps.<br />
<br />
From OSX Dashboard Widgets to Industrial Process Control apps on WinMo, Mark has written code that runs on just about everything. His 15 years of software development experience and passion for building usable software is apparent in everything he does.<br />
<br />
Mark holds a degrees in Physics, then Computing Science, from the University of Alberta (after pursuing a career in computational physics and then deciding it was the "computational" part he enjoyed).
</div>
<div class="talk_title">
:talk => "<a href="presentations/markMadsen-MacRuby.key">MacRuby</a>"
</div>
<div class="talk_description">
My intent is to deliver a functional talk on MacRuby that not only introduces features and capabilities, but gives attendees a quick path to practically using MacRuby in their everyday development. I intend to go through important MacRuby specifics like working with Apple frameworks including (but not limited to) threading with GCD, data management with Core Data and Scripting Applications. During the talk, I intend to code two quick examples of everyday MacRuby while delivering tips and hints needed to quickly get running code. Attendees are encouraged to bring their laptops and code along.
<br /><br />
<p>Mark's presentation is available in <a href="presentations/markMadsen-MacRuby.key">Keynote</a> format (1.3 MB) and in <a href="presentations/markMadsen-MacRuby.pdf">PDF</a> format (1.1 MB).</p>
<p>Video of part 1 of the talk is available <a href="http://vimeo.com/25404999">here</a>.</p>
<p>Video of part 2 of the talk is available <a href="http://vimeo.com/25405106">here</a>.</p>
</div>
</li>
<li id="but-the-language-supports-it" class="talk">
<div class="spkr_photo">
<img title="Aakash Dharmadhikari" alt="Aakash Dharmadhikari" src="images/speakers/aakash.jpg" />
</div>
<div class="spkr_photo">
<img title="Niranjan Paranjape" alt="Niranjan Paranjape" src="images/speakers/niranjan.jpg" />
</div>
<div class="speaker">
:speakers => ["Niranjan Paranjape", "Aakash Dharmadhikari"]
</div>
<div class="speaker_bio">
Niranjan has spent five years writing code for a living. He started out at Infosys, wised up to the game and moved on to ThoughtWorks where he spent two pleasant years first working on Java and then on Ruby. All told, he's spent about three years building Ruby and Rails projects thus far. He left ThoughtWorks early in 2010 to co-found C42 Engineering, a boutique Ruby and Rails services firm based out of Bangalore.<br />
<br />
He is the co-author of several obscure open source projects such as Wrest, PoxPaginate and Goldberg. You can find the full list of the projects he hacks on at <a href="http://github.com/achamian">here</a> and <a href="http://github.com/c42">here</a>.<br />
<br />
Aakash has spent five years working on software projects in a variety of companies; an Indian Services giant, a Fortune 500 company and a funded product startup before moving on to co-found <a href="http://c42.in">C42 Engineering</a>, a Ruby and Rails services firm based out of Bangalore. He has worked on Ruby for the last year and a half; before that, he'd spent four years on Java. He is a committer on the <a href="http://github.com/c42/goldberg">Goldberg</a> project and his open source contribution can be found <a href="http://github.com/aakashd">here</a>.
</div>
<div class="talk_title">
:talk => "<a href="presentations/c42_engineering_niranjan_aakash_language_support_it.key">But the language supports it</a>"
</div>
<div class="talk_description">
Discussing language constructs with fellow developers in the context of solving a particular problem is something we do routinely. While most such conversations are productive and useful, a fair portion degenerate into angry brawls. A pattern we've observed in the latter situation is that a surprising number of times the argument is that, "Why shouldn't I use language feature X to achieve objective Y- after all, the language supports X."<br />
<br />
In this talk, we will cover various features provided by Ruby that, while awesome, should be used with caution. We will cover:<br />
<br />
<ol class="bullet_points_talk_description">
<li>The appropriate situation where a certain language construct should be used
</li>
<li>Situations where I've seen it misused
</li>
<li>The underlying principles that will guide you as to how to use it best.
</li>
<li>Alternative approaches that achieve the same effect
</li>
</ol><br />
Here's a brief list of language constructs we will cover:<br />
<br />
<ol class="bullet_points_talk_description">
<li>if and switch-case
</li>
<li>return
</li>
<li>raise (exceptions)
</li>
<li>private/protected methods
</li>
<li>variable method arity (includes ActiveRecord style constructors that take any number of arguments tunnelled through a hash)
</li>
<li>Class methods
</li>
<li>Inheritance
</li>
<li>Custom instance allocators as factories (overriding Class#new)
</li>
<li>Re-opening classes, especially classes from the core libs
</li>
<li>eval
</li>
</ol>
<br />
<p>Niranjan and Aakash's presentation is available in <a href="presentations/c42_engineering_niranjan_aakash_language_support_it.key">Keynote</a> format (5.5 MB) and in <a href="presentations/c42_engineering_niranjan_aakash_language_support_it.pdf">PDF</a> format (0.6 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25409741">here</a>.</p>
</div>
</li>
<li class="talk" id="high-throughput-web-service-clients">
<div class="spkr_photo">
<img title="Sherin C" alt="Sherin C" src="images/speakers/sherin.png" />
</div>
<div class="speaker">
:speaker => "Sherin C"
</div>
<div class="speaker_bio">
Sherin is an Engineering Lead at MobME Wireless Solutions Pvt. Ltd. Sherin has 3+ years of programming experience in Ruby/Python, integrating various services from India's largest telecom operators Airtel and Vodafone. This at scale, for VAS(value-added-service) products with over 4+ million subscribers.
</div>
<div class="talk_title">
:talk => "<a href="presentations/sherinC-DesigningHighThroughputWebServiceClients.key">Designing High Throughput Web Service Clients</a>"
</div>
<div class="talk_description">
Consuming web services is an inexorable practice nowadays. You could be eating your own dogfood(internal) or a third partys'(external). The consuming process can be modelled either as multi-threaded or event driven. Ruby accommodates either way with stable library support(eventmachine, threadpool) and implementations(JRuby, Ruby-1.8 or 1.9).<br />
<br />
This talk will:<br />
<br />
<ol class="bullet_points_talk_description">
<li>Weigh the tradeoffs in choosing a model by detailing an implementation each in:<br />
-- JRuby (threadpool without GIL)<br />
-- Ruby 1.8, 1.9 (eventmachine and threadpool with GIL)
</li>
<li>Dispel misconceptions regarding choice of synchronous or asynchronous I/O
</li>
</ol>
<br />
<p>Sherin's presentation is available in <a href="presentations/sherinC-DesigningHighThroughputWebServiceClients.key">Keynote</a> format (9.8 MB) and in <a href="presentations/sherinC-DesigningHighThroughputWebServiceClients.pdf">PDF</a> format (1.8 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25405507">here</a>.</p>
</div>
</li>
<li class="talk" id="writing-compilers-the-easy-way">
<div class="spkr_photo">
<img title="Vishnu Gopal" alt="Vishnu Gopal" src="images/speakers/vishnu.png" />
</div>
<div class="speaker">
:speaker => "Vishnu Gopal"
</div>
<div class="speaker_bio">
Vishnu is the CTO of MobME Wireless Solutions Pvt. Ltd and has been a developer for 10+ years. He has worked at SlideShare Inc. in its early years, building the backend, and then moved on to do a degree in HCI from University College, London. He now heads a team of 40 Ruby developers working in the mobile core network sector. He still programs more than his job description warrants.
</div>
<div class="talk_title">
:talk => "<a href="presentations/vishnuGopal-easy-compilers-with-ruby-and-treetop.pdf">Writing Compilers the Easy Way</a>"
</div>
<div class="talk_description">
The Dragon Book by Aho and Ullman teaches many great things about writing compilers and parsers. But writing a compiler from scratch is often a daunting step for a fledgling programmer. Yet, compilers are useful little things that extend our craft in surprising ways. Ruby provides wonderfully accessible libraries to dive into compiler construction and the talk will focus on one of them: Treetop<br />
<br />
The talk will detail the construction of a simple filter language and using Treetop to parse grammar and interpret it, and then make it work. Treetop makes it very simple and intuitive to add new operators and new syntax, and the talk will walk through the addition of a new operator to the language. Towards the end, a simple cross-compiler will be discussed that translates our filter language into fast C.
<br /><br />
<p>Vishnu's presentation is available in <a href="presentations/vishnuGopal-easy-compilers-with-ruby-and-treetop.pdf">PDF</a> format (2.2 MB).</p>
<p>Video of part 1 of the talk is available <a href="http://vimeo.com/25406454">here</a>.</p>
<p>Video of part 2 of the talk is available <a href="http://vimeo.com/25406549">here</a>.</p>
</div>
</li>
<li class="talk" id="rubyizing-dev-and-ops">
<div class="spkr_photo">
<img title="Yashasree Barve" alt="Yashasree Barve" src="images/speakers/yashasree.jpg" />
</div>
<div class="speaker">
:speaker => "Yashasree Barve"
</div>
<div class="speaker_bio">
Yashasree Barve has been working at Tata Consultancy Services for the last 13 years as a technologist. She has worked as a developer, designer and architect across multiple domains such as Insurance, Retail, and Hi Tech using various front-end technologies such as Java, Java 2 Platform, Enterprise Edition (J2EE), Ruby, Ruby on Rails, and so on. She switched from Java to Ruby around 3.5 years back, and is now enjoying her work in the field of Ruby development. She has been a part of and in awe of the journey of her development group towards Ruby adoption. She has also been instrumental in bringing together the Rubyists in TCS through a community, and periodic Ruby Roundtables. Apart from Ruby, she is passionate about Agile methodology and Open Source. Her other interests are Web 2.0, Enterprise 2.0, Emergent Design and Evolutionary Architecture.
</div>
<div class="talk_title">
:talk => "<a href="presentations/yashasree-Rubyizing the Devs and Ops of an Enterprise 1.0.ppt">Rubyizing the Dev and Ops in an Enterprise</a>"
</div>
<div class="talk_description">
This talk will highlight the story of an Enterprise that adopted Ruby and Rails as its preferred technology for development in its quest of being Agile over the last four years. This step brought in a makeover in the way the development team functioned as well as the way the operations performed their job.<br />
<br />
I would love to share my experience when the development teams embraced Ruby and Rails. The dev teams imbibed and personified the DRY concept by building and institutionalizing enterprise wide gems and plug-ins such as LDAP Management, Single Sign On, Authentication and Authorization, Usage Tracking. The team created an app that allows bootstrapping a new ruby application with enterprise specific plug-ins, configuring Continuous Integration, and deploying to shared dev box in minutes. The dev teams got hooked on to the engineering practices such as automation testing, automated deployments utilizing the power of Rails framework and components such as Capistrano. The adoption of Ruby truly changed the thinking and functioning of the dev teams.<br />
<br />
I would also like to talk about how the operations teams opened their world to open source, specifically Ruby. After the initial resistance to open source, the Ops teams now love the Ruby and Rails infrastructure. Ruby gives them immense opportunity to maximise automation, monitoring and management of applications. The Ops team is now inching towards one click deployment of applications across environments, surely a dream come true in any enterprise.
<br /><br />
<p>Yashasree's presentation is available in <a href="presentations/yashasree-Rubyizing the Devs and Ops of an Enterprise 1.0.ppt">PPT</a> format (1.7 MB) and in <a href="presentations/yashasree-Rubyizing the Devs and Ops of an Enterprise 1.0.pdf">PDF</a> format (2.7 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25408482">here</a>.</p>
</div>
</li>
<li class="talk" id="deciphering-ruby-object-model">
<div class="spkr_photo">
<img title="Karthik Sirasanagandla" alt="Karthik Sirasanagandla" src="images/speakers/karthikp.png" />
</div>
<div class="speaker">
:speaker => "Karthik Sirasanagandla"
</div>
<div class="speaker_bio">
Karthik Sirasanagandla is an application developer at ThoughtWorks India. Karthik has over 5.5 years of experience, primarily in Java/J2EE Platform. In his current capacity, he works on both development and deployment of a JRuby on Rails application; this experience has transitioned him from being a hard-core Java techie to a passionate Ruby programmer. An avid reader of both technical and non-technical books, he also occasionally blogs <a href="http://kartzontech.blogspot.com">here</a>.
</div>
<div class="talk_title">
:talk => "<a href="presentations/karthikS-DecipheringtheROM.pptx">Deciphering The Ruby Object Model</a>"
</div>
<div class="talk_description">
By personal experience, while transitioning from the world of Java to the world of Ruby, I felt great pain and agony, whenever I read statements like "Everything in Ruby is an object; classes themselves are objects". It took me more than a while to get it all right. I am of the belief that the experience is the same for many who transitioned to the Ruby platform. If you didn't experience this...lucky you! My reason for this experience is that during the early days of learning Ruby, I felt that the Ruby Object Model is some advanced topic as it is comes under Ruby Meta-programming, and that I can do away with it until I'm more than an intermediate level Ruby developer. In reality, though, any decent programming in Ruby meant understanding rightly - the Ruby Object Model. Understanding the Ruby Object Model helps not just in learning Meta-programming, but also improves code design with enriched knowledge and appreciations of the object model.<br />
<br />
In my presentation, I intend to talk about the Ruby Object Model, elaborating on the concepts of visualizing classes and objects in Ruby, how they are different from Java, method look-ups in Ruby, class/static methods in Java/C# vs. the ones in Ruby, mixins over inheritence and composition etc. All these concepts will be communicated by means of code snippets and no-nonsense visuals (object-like diagrams).
<br /><br />
<p>Karthik's presentation is available in <a href="presentations/karthikS-DecipheringtheROM.pptx">PPTX</a> format (0.2 MB) and in <a href="presentations/karthikS-DecipheringtheROM.pdf">PDF</a> format (0.8 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25410417">here</a>.</p>
</div>
</li>
<li id="continuous-delivery-in-ruby" class="talk">
<div class="spkr_photo">
<img title="Brian Guthrie" alt="Brian Guthrie" src="images/speakers/speaker_avatar.jpg" />
</div>
<div class="spkr_photo">
<img title="Srushti Ambekallu" alt="Srushti Ambekallu" src="images/speakers/srushti.JPG" />
</div>
<div class="speaker">
:speakers => ["Srushti Ambekallu", "Brian Guthrie"]
</div>
<div class="speaker_bio">
Srushti Ambekallu has been involved in all areas of a project lifecycle - inception, development, business analysis (& even a bit of project management, but don't hold it against him), all the way to deployment. He has worked with multinational companies & startups. He spent the first few years working on .Net & Java and Ruby projects at ThoughtWorks before moving on to co-found <a href="http://c42.in">C42 Engineering</a>, a Ruby consultancy based out of Bangalore where he now works as a developer. He's worked with Ruby for a year and a half now.<br />
<br />
As far as open source is concerned, he is the author of <a href="http://github.com/srushti/xstream-net">XStream.net</a> & <a href="http://github.com/c42/goldberg">Goldberg</a> and has contributed features and bug fixes to other projects like Mogli & the Mail gem.<br />
<br />
Brian Guthrie has been writing bad Ruby code for five years, every line of it worse than the last. He started his Ruby career in Boston, and after joining ThoughtWorks went on to write increasingly bad Ruby code in Chicago, New York, Texas, California, and India. He is currently writing the worst Ruby code of his career in Melbourne, Australia. He is thrilled to return once more to India to share his mistakes with the vibrant Ruby community there, in the sincere and humble spirit of collective mistake-repetition avoidance.
</div>
<div class="talk_title">
:talk => "<a href="presentations/brianGuthrie-ContinuousDelivery.key">Continuous Delivery in Ruby</a>"
</div>
<div class="talk_description">
The Ruby community has driven a lot of technical innovation in deployment and configuration management over the last few years, and so the idea of delivering high-quality software rapidly should be familiar to most of us. But although our tools are state-of-the-art, getting them to work together properly can be surprisingly frustrating. In this talk, I'll explain how to implement a high-quality rapid build and deploy process using standard CI tools, Bundler, RVM, and Capistrano. I'll also discuss how to coach your developers, QAs, and client to be "production-ready, any time."
<br /><br />
<p>Brian and Srushti's presentation is available in <a href="presentations/brianGuthrie-ContinuousDelivery.key">Keynote</a> format (14.5 MB) and in <a href="presentations/brianGuthrie-ContinuousDelivery.pdf">PDF</a> format (7.3 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25410072">here</a>.</p>
</div>
</li>
<li id="memory-is-the-new-disk" class="talk">
<div class="spkr_photo">
<img title="Bratish Goswami" alt="Bratish Goswami" src="images/speakers/bratish.jpg" />
</div>
<div class="speaker">
:speaker => "Bratish Goswami"
</div>
<div class="speaker_bio">
Bratish works as a senior software engineer at <a href="http://www.castlerockresearch.in/">Castle Rock Research</a>, Kolkata, India. Born and brought up in Kolkata, Bratish received his master's degree in Computer Science from Beneras Hindu University, Varanasi, India, and started working as a software professional thereafter. As a passionate programmer and an opensource evangelist he tried and tasted lots of programming languages in his student-hood and finally settled with Ruby in his career. Other than computer technology, his other interests include painting, literature, movies, music and photography. His blog can be found <a href="http://blog.bratish.com/">here</a> and can be reached at bratishgoswami AT gmail DOT com or bgoswami AT crri DOT co DOT in.<br />
</div>
<div class="talk_title">
:talk => "<a href="presentations/bratishG-MemoryIsTheNewDiskSayHelloToRedis.pdf">Memory Is The New Disk, Say Hello To Redis</a>"
</div>
<div class="talk_description">
Redis is a fast, in memory, persistent key/value store. It is often referred to as a remote data structure server, since keys can contain strings, hashes, lists, sets and sorted sets.<br />
<br />
The first part of the talk will walk the audience through the basic features of Redis, starting from the installation to the supported data structures and the simple command set to manipulate them along with some stats related to them. Through its Ruby port Redis-rb, Redis datatypes resemble datatypes of Ruby, which makes it very natural to the Ruby programmer to use it. The simplicity and the power of Redis with Ruby will be discussed in this part. This will include a parallel hands-on session depicting operations and snippets.<br />
<br />
The second part of the talk will cover some real world use cases. Places where Redis with Ruby is used successfully and places where Redis can win. Detailed review of a few libs/apps built around Redis. Benchmarks, master-slave replication and Redis-cluster will be discussed. And finally, places where Redis is not a good fit.<br />
<br />
The whole talk will circle around the concept of a perfect jugalbandi between Ruby and Redis.
<br /><br />
<p>Bratish's presentation is available in <a href="presentations/bratishG-MemoryIsTheNewDiskSayHelloToRedis.pdf">PDF</a> format (0.1 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25405714">here</a>.</p>
</div>
</li>
<li id="i-can-haz-http" class="talk">
<div class="spkr_photo">
<img title="Niranjan Paranjape" alt="Niranjan Paranjape" src="images/speakers/niranjan.jpg" />
</div>
<div class="spkr_photo">
<img title="Sidu Ponnappa" alt="Sidu Ponnappa" src="images/speakers/SiduP.jpg" />
</div>
<div class="speaker">
:speakers => ["Sidu Ponnappa", "Niranjan Paranjape"]
</div>
<div class="speaker_bio">
Sidu Ponnappa has been writing code since he was six. He spent several years in high school writing and re-writing UI widget libraries in BASIC before discovering C++ and Object Orientation in junior college, which helped keep him occupied through his engineering degree. He's worked with Ruby since mid-2006; his first attempt at a <a href="http://inactiv.com">startup</a> used Rails 1.0. He has also spent a few years working on .Net, Java and Ruby projects at ThoughtWorks. He has spent the last year helping co-found <a href="http://c42.in">C42 Engineering</a>, a Ruby consultancy based out of Bangalore where he now works as a developer.<br />
<br />
On the open source front, he is involved in the <a href="http://github.com/kaiwren/wrest">Wrest</a>, <a href="http://github.com/c42/pox_paginate">Pox Paginate</a> and <a href="http://github.com/c42/goldberg">Goldberg</a> projects, and has contributed features and bug fixes to the RSpec project.<br />
<br />
Niranjan has spent five years writing code for a living. He started out at Infosys, wised up to the game and moved on to ThoughtWorks where he spent two pleasant years first working on Java and then on Ruby. All told, he's spent about three years building Ruby and Rails projects thus far. He left ThoughtWorks early in 2010 to co-found C42 Engineering, a boutique Ruby and Rails services firm based out of Bangalore.<br />
<br />
He is the co-author of several obscure open source projects such as Wrest, PoxPaginate and Goldberg. You can find the full list of the projects he hacks on at <a href="http://github.com/achamian">here</a> and <a href="http://github.com/c42">here</a>.
</div>
<div class="talk_title">
:talk => "<a href="presentations/c42-engineering-sidu-niranjan-i-can-haz-http.key">I can haz HTTP: Consuming and producing HTTP APIs in the Ruby ecosystem</a>"
</div>
<div class="talk_description">
The Ruby ecosystem is pretty awesome when it comes to developing or consuming HTTP APIs. On the publishing front, the Rails framework is an attractive option because it supports publishing what are popularly (but inaccurately) referred to as 'RESTful' APIs quickly and effortlessly. On the consumer side, the Ruby ecosystem provides several very fluent and powerful libraries that make it easy to consume HTTP based APIs.<br />
<br />
Since a significant proportion of projects today require that APIs be both published and consumed, many of them wind up choosing Ruby as a platform for the reasons mentioned above. This talk is targeted at folks that are currently on such projects, or anticipate being on such projects in the future.<br />
<br />
We will cover:<br />
<br />
Consuming HTTP APIs:<br />
<br />
<ol class="bullet_points_talk_description">
<li>The basics of making HTTP calls with Ruby
</li>
<li>The strengths and weaknesses of Ruby's Net::HTTP across 1.8, 1.9 and JRuby (possibly Rubinius if we have the time to do research)
</li>
<li>Popular HTTP libraries that either make it easier to do HTTP by providing better APIs, make it faster by using libCurl or both
</li>
<li>Different approaches to deserializing popular encoding formats such as XML and JSON and the pitfalls thereof
</li>
</ol><br />
Producing HTTP APIs using Rails:<br />
<br />
<ol class="bullet_points_talk_description">
<li>The basics of REST
</li>
<li>What Rails gives you out of the box - content-type negotiation, deserialization etc. and the limitations thereof
</li>
<li>What Rails fails to give you out of the box - hypermedia controls etc.
</li>
<li>What Rails does wrong - wrong PUT semantics, no support for PATCH, error handling results in responses that violate the clients Accepts header constraints etc.
</li>
<li>How one can achieve Level 2 on the Richardson Maturity Model of REST using Rails
</li>
<li>Writing tests for all of this
</li>
</ol><br />
At the end of this, our audience will understand how you can both consume and produce HTTP APIs in the Ruby ecosystem. They will also have a clear idea of what the limitations of such systems are and what the can do to work around the limitations.
<br /><br />
<p>Sidu and Niranjan's presentation is available in <a href="presentations/c42-engineering-sidu-niranjan-i-can-haz-http.key">Keynote</a> format (5.3 MB) and in <a href="presentations/c42-engineering-sidu-niranjan-i-can-haz-http.pdf">PDF</a> format (2.9 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25411271">here</a>.</p>
</div>
</li>
<li class="talk" id="ruby-helps-rackspace">
<div class="spkr_photo">
<img title="Munjal Budhabhatti" alt="Munjal Budhabhatti" src="images/speakers/munjal.png" />
</div>
<div class="speaker">
:speaker => "Munjal Budhabhatti"
</div>
<div class="speaker_bio">
Munjal Budhabhatti is a lead consultant at ThoughtWorks. He has over 13 years of experience in designing large-scale enterprise applications, and has implemented innovative solutions for some of the leading data centers, microfinance, and financial organisations in Africa, Asia, Europe, and North America. He spends most of his time creating well-designed applications using agile processes.
</div>
<div class="talk_title">
:talk => "<a href="presentations/munjal-RubyConfIndia2011.key">How Ruby helps Rackspace challenge Amazon</a>"
</div>
<div class="talk_description">
ThoughtWorks has been working with Rackspace, one of the leading hosting companies in the world, on a large scale data center automation project using Ruby. We want to share some insights on how Ruby enabled Rackspace, with a small development force, to challenge Amazon.<br />
<br />
<ol class="bullet_points_talk_description">
<li>Developers investing time learning and programming the domain and not the framework
</li>
<li>Ease of refactoring for major domain changes such as ipv6, architecture
</li>
<li>DSLs allowed SMEs, instead of developers, to easily tailor business logic while reducing everyone's work load
</li>
<li>Powerful Enterprise integration with disparate system via Atom, REST, custom message queue, and even SOAP
</li>
<li>Realtime manipulation of interdependent systems for integration testing
</li>
<li>Ruby philosophies and communities
</li>
<li>Q&A
</li>
</ol>
<br /><br />
<p>Munjal's presentation is available in <a href="presentations/munjal-RubyConfIndia2011.key">Keynote</a> format (0.9 MB) and in <a href="presentations/munjal-RubyConfIndia2011.pdf">PDF</a> format (0.3 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25410941">here</a>.</p>
</div>
</li>
<li id="make-your-own-rails-framework" class="talk" >
<div class="spkr_photo">
<img title="Pankaj Bhageria" alt="Pankaj Bhageria" src="images/speakers/pankaj.jpg" />
</div>
<div class="speaker">
:speaker => ["Pankaj Bhageria"]
</div>
<div class="speaker_bio">
I've been coding since college. Before moving to Rails, I've worked with C, C++, PHP, .NET, Java, Perl, etc. Around four years ago, I built my first Rails app for an NGO. I am currently working with Sumeru Software Solutions as a technical lead. My path of learning Rails was not so smooth. Not wanting others to go tread the same path, I started my blog <a href="http://www.railsguru.org">http://www.railsguru.org</a>. I have also conducted Ruby on Rails training in Bangalore. I plan to conduct some more in the near future. I am an expert debugger. I like to get into the framework/plugins and check out what exactly is going on there.
I like to learn, teach, code, dance and meditate.
</div>
<div class="talk_title">
:talk => "<a href="presentations/pankajB-Ruby_conf_Make_your_own_Rails_framework.pptx">Make your own Rails Framework</a>"
</div>
<div class="talk_description">
This talk will take the audience on the path of building a basic version of a web framework like Rails. Most of us think of Rails as a black box. We do not know, or we haven't tried understanding what is happening behind the scenes. Starting from a very basic Rack server, we will build up a Rails framework with features like routing, controller, action, default views, filters, model, etc. It may not be exactly the same as what happens in the actual Rails framework, but it will help explain the concepts.<br />
<br/>
Some basic knowledge of Ruby is expected. I will teach some dynamic Ruby that is required for to follow this talk. Finally, we will develop a web framework that will be similar to Rails. Since we will be developing only the basic features, the number of lines in this solution will be very less.<br />
People would be astonished that we actually built a Rails framework in very few lines of code.
<br/><br/>
Why should we build our own framework when Rails already exists?
<ol class="bullet_points_talk_description">
<li> Make the Rails black box more transparent, i.e. help us understand what's happening behind the scenes </li>
<li> This will encourage people to go and hack the framework </li>
<li> It will increase people's confidence which will encourage them to contribute to Rails</li>
</ol>
<br />
<p>Pankaj's presentation is available in <a href="presentations/pankajB-Ruby_conf_Make_your_own_Rails_framework.pptx">PPTX</a> format (24.6 MB).</p>
<p>Video of the talk is available <a href="http://vimeo.com/25406419">here</a>.</p>
</div>
</li>
</ul>
<p class="blrb2">
And there's more! Watch out for keynotes by <b>Yehuda Katz, Ola Bini, Nick Sieger, Chad Fowler</b> (via videoconf) and <b>Yukihiro "Matz" Matsumoto</b> (pre-recorded video presentation).
</p><br />
<!--p class="blrb2">
Because of the number and quality of proposals received, some talks are still under review. The last few slots will be filled soon. Stay tuned!
</p-->
</div><br />
</div>
<div class="footer">
<div> <img title="ITT Logo" alt="ITT Logo" src="images/ITTLogo.png" style="width: 150px;" /></div>
<br /><br />
Designed by: <a href="http://www.webdesigncreatives.com" target="_blank">Web Design Creatives</a>, RubyConf India Logo Credits: <a href="http://www.outsmart360.com" target="_blank">www.outsmart360.com</a>
</div>
</div><script type="text/javascript">
//<![CDATA[
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
//]]>
</script><script type="text/javascript">
//<![CDATA[
try {
var pageTracker = _gat._getTracker("UA-10855424-1");
pageTracker._trackPageview();
} catch(err) {}
//]]>
</script>
</body>
</html>