-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprogram.html
720 lines (718 loc) · 49.7 KB
/
program.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
<!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" />
<link rel="stylesheet" href="css/conference.css" type="text/css" media="screen" />
<script language="javascript" src="javascripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script language="javascript" src="javascripts/conference.js" type="text/javascript"></script>
<script type="text/javascript" src="javascripts/shCore.js"></script>
<script type="text/javascript" src="javascripts/shBrushRuby.js"></script>
<link type="text/css" rel="stylesheet" href="css/shCore.css"/>
<link type="text/css" rel="stylesheet" href="css/shThemeEmacs.css"/>
<script type="text/javascript">
SyntaxHighlighter.all();
SyntaxHighlighter.defaults['toolbar'] = false;
</script>
</head>
<body>
<div class="wrapper">
<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>
Program
</h2>
<p>The keynote addresses and list of proposals that have made it to this year’s RubyConf India 2011 are listed below:</p>
<p> </p>
<table>
<thead>
<tr>
<th colspan="4" valign="middle">Day 1 - May 28th - Sat</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td valign="middle"><p align="right">10:00</p></td>
<td valign="middle"><p align="right">10:10</p></td>
<td colspan="2" valign="middle" style="text-align: center;"><p>Kick-off<br /><span class="lighter">Rohit Bansal<span></p></td>
</tr>
<tr >
<td valign="middle"><p align="right">10:15</p></td>
<td valign="middle"><p align="right">11:00</p></td>
<td colspan="2" valign="middle" style="text-align: center;"><p><a class="talkLink" id="t19">Keynote - Building Rails Apps for the Rich Client</a><br /><span class="lighter">Yehuda Katz</span></p></td>
</tr>
<tr class="odd">
<td valign="middle"><p align="right">11:00</p></td>
<td valign="middle"><p align="right">11:30</p></td>
<td valign="middle" style="text-align: center;" colspan="2"><p>Video Keynote - Why Ruby again<br /><span class="lighter">Matz</span></p></td>
</tr>
<tr >
<td valign="middle"><p align="right">11:30</p></td>
<td valign="middle"><p align="right">12:15</p></td>
<td valign="middle" style="text-align: center; width: 386px;"><p><a class="talkLink" id="t2">Ruby Plus Rails Plus Your Application Minus Rails</a><br /><span class="lighter">Brian Guthrie</span></p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t8">Single page Web apps with Backbone.js and Ruby on Rails</a><br /><span class="lighter">Prateek Mohan Dayal</span></p></td>
</tr>
<tr class="odd">
<td valign="middle"><p align="right">12:30</p></td>
<td valign="middle"><p align="right">1:30</p></td>
<td colspan="2" style="text-align: center;" valign="middle"><p align="center">Lunch</p></td>
</tr>
<tr >
<td valign="middle"><p align="right">1:30</p></td>
<td valign="middle"><p align="right">2:15</p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t6">Refactoring a Legacy Java Application to Rails</a><br /><span class="lighter">Nick Sieger</span></p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t5">Deciphering The Ruby Object Model</a><br /><span class="lighter">Karthik Sirasanagandla</span></p></td>
</tr>
<tr class="odd">
<td valign="middle"><p align="right">2:30</p></td>
<td valign="middle"><p align="right">3:15</p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t18">Make your own Rails Framework</a><br/ ><span class="lighter">Pankaj Bhageria</span></p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t17">I can haz HTTP: Consuming and producing HTTP APIs in the Ruby ecosystem</a><br /><span class="lighter">Sidu Ponnappa and Niranjan Paranjape</span></p></td>
</tr>
<tr>
<td valign="middle"><p align="right">3:30</p></td>
<td valign="middle"><p align="right">4:15</p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t13">Writing Compilers the Easy Way</a><br /><span class="lighter">Vishnu Gopal</span></p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t7">How Ruby helps Rackspace challenge Amazon</a><br /><span class="lighter">Munjal Budhabhatti</span></p></td>
</tr>
<tr class="odd">
<td valign="middle"><p align="right">4:30</p></td>
<td valign="middle"><p align="right">5:00</p></td>
<td colspan="2" valign="middle" style="text-align: center;"><p>A Quick Note <span class="lighter">from The Sponsors of RubyConf India 2011<span></p></td>
</tr>
<tr>
<td valign="middle"><p align="right">5:00</p></td>
<td valign="middle"><p align="right">5:45</p></td>
<td colspan="2" valign="middle" style="text-align: center;"><p><a class="talkLink" id="t20">Service (Keynote over Video Conference)</a><br /><span class="lighter">Chad Fowler</span></p></td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th colspan="4" valign="middle">Day 2 - May 29th - Sun</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td valign="middle"><p align="right">10:00</p></td>
<td valign="middle"><p align="right">10:45</p></td>
<td colspan="2" valign="middle" style="text-align: center;"><p><a class="talkLink" id="t21">Keynote - The Good, the Bad, and the Ugly</a><br/ ><span class="lighter">Ola Bini</span></p></td>
</tr>
<tr >
<td valign="middle"><p align="right">11:00</p></td>
<td valign="middle"><p align="right">11:45</p></td>
<td valign="middle" style="text-align: center; width: 386px;"><p><a class="talkLink" id="t10">Let's have a cup of CoffeeScript</a><br /><span class="lighter">Nicolás Sanguinetti</span></p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t3">Anti-Patterns and Patterns in Rails</a><br /><span class="lighter">Chirantan Mitra and Habibullah Pagarkar</span></p></td>
</tr>
<tr class="odd">
<td valign="middle"><p align="right">12:00</p></td>
<td valign="middle"><p align="right">12:45</p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t15">Continuous Delivery in Ruby</a><br /><span class="lighter">Srushti Ambekallu and Brian Guthrie</span></p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t11">MacRuby</a><br /><span class="lighter">Mark Madsen</span></p></td>
</tr>
<tr >
<td valign="middle"><p align="right">1:00</p></td>
<td valign="middle"><p align="right">1:45</p></td>
<td colspan="2" valign="middle"><p align="center">Lunch</p></td>
</tr>
<tr class="odd">
<td valign="middle"><p align="right">2:00</p></td>
<td valign="middle"><p align="right">2:45</p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t9">But the language supports it</a><br /><span class="lighter">Niranjan Paranjape and Aakash Dharmadhikari</span></p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t4">Test Load Balancer: Rocket Booster for your Build</a><br /><span class="lighter">Janmejay Singh and Pavan K Sudarshan</span></p></td>
</tr>
<tr >
<td valign="middle"><p align="right">3:00</p></td>
<td valign="middle"><p align="right">3:45</p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t1">Software Quality and Test Strategies for Ruby and Rails Applications</a><br /><span class="lighter">Bhavin Javia</span></p></td>
<td valign="middle" style="text-align: center; width: 386px;"><p><a class="talkLink" id="t12">Designing High Throughput Web Service Clients</a><br /><span class="lighter">Sherin C</span></p></td>
</tr>
<tr class="odd">
<td valign="middle"><p align="right">4:00</p></td>
<td valign="middle"><p align="right">4:45</p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t14">Rubyizing the Dev and Ops in an Enterprise</a><br /><span class="lighter">Yashasree Barve</span></p></td>
<td valign="middle" style="text-align: center;"><p><a class="talkLink" id="t16">Memory Is The New Disk, Say Hello To Redis</a><br /><span class="lighter">Bratish Goswami</span></p></td>
</tr>
<tr>
<td valign="middle"><p align="right">5:00</p></td>
<td valign="middle"><p align="right">5:45</p></td>
<td colspan="2" valign="middle" style="text-align: center;"><p><a class="talkLink" id="t22">Keynote - Happiness : Ruby :: Freedom : JRuby</a><br /><span class="lighter">Nick Sieger</span></p></td>
</tr>
</tbody>
</table>
<br />
<p>The super cool yakuake/visor style drop down may not work in older versions (non CSS 3) of browsers. The overlay works ok on the iPad in portrait mode, but landscape is a little awkward. Sorry. But you can see all the talks <a href="talks.html">here</a></p>
</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><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>
<div class="blackout"/>
<div class="talksContent">
<div class="talkAbstract" id="t1">
<div class="photo">
<img title="Bhavin Javia" alt="Bhavin Javia" src="images/speakers/bhavin.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Software Quality and Test Strategies for Ruby and Rails Applications"
talk.speaker :bhavin_javia
talk.on :track2 => Day1.at(15:00)
end</pre>
<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>
</div>
</div>
<div class="talkAbstract" id="t2">
<div class="photo">
<img title="Brian Guthrie" alt="Brian Guthrie" src="images/speakers/brian.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Ruby Plus Rails Plus Your Application Minus Rails"
talk.speaker :brian_guthrie
talk.on :track1 => Day1.at(11:30)
end</pre>
<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.
</div>
</div>
<div class="talkAbstract" id="t3">
<div class="photo">
<img title="Chiku" alt="Chiku" src="images/speakers/chiku.jpg" />
<img title="Habib" alt="Habib" src="images/speakers/habib.png" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Anti-Patterns and Patterns in Rails"
talk.speakers :chirantan_mitra, :habibullah_pagarkar
talk.on :track2 => Day2.at(11:00)
end</pre>
<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.
</div>
</div>
<div class="talkAbstract" id="t4">
<div class="photo">
<img title="Janmejay" alt="Janmejay" src="images/speakers/janmejay.jpg" />
<img title="Pavan" alt="Pavan" src="images/speakers/pavan.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Test Load Balancer: Rocket Booster for your Build"
talk.speaker :janmejay_singh, :pavan_k_sudarshan
talk.on :track2 => Day2.at(14:00)
end</pre>
<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.
</div>
</div>
<div class="talkAbstract" id="t5">
<div class="photo">
<img title="karthik" alt="karthik" src="images/speakers/karthik.JPG" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Deciphering The Ruby Object Model"
talk.speaker :karthik_sirasanagandla
talk.on :track2 => Day1.at(13:30)
end</pre>
<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).
</div>
</div>
<div class="talkAbstract" id="t6">
<div class="photo">
<img title="nick" alt="nick" src="images/speakers/NickS.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Refactoring a Legacy Java Application to Rails"
talk.speaker :nick_sieger
talk.on :track1 => Day1.at(13:30)
end</pre>
<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.
</div>
</div>
<div class="talkAbstract" id="t7">
<div class="photo">
<img title="munjal" alt="munjal" src="images/speakers/munjal.png" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "How Ruby helps Rackspace challenge Amazon"
talk.speaker :munjal_budhabhatti
talk.on :track2 => Day1.at(15:30)
end</pre>
<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>
</div>
</div>
<div class="talkAbstract" id="t8">
<div class="photo">
<img title="prateek" alt="prateek" src="images/speakers/prateek.png" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Single page Web apps with Backbone.js and Ruby on Rails"
talk.speaker :prateek_mohan_dayal
talk.on :track2 => Day1.at(11:30)
end</pre>
<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>
</div>
</div>
<div class="talkAbstract" id="t9">
<div class="photo">
<img title="niranjan" alt="niranjan" src="images/speakers/niranjan.jpg" />
<img title="aakash" alt="aakash" src="images/speakers/aakash.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "But the language supports it"
talk.speakers :niranjan_paranjape, :aakash_dharmadhikari
talk.on :track1 => Day2.at(14:00)
end</pre>
<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>
</div>
</div>
<div class="talkAbstract" id="t10">
<div class="photo">
<img title="nicolas" alt="nikolas" src="images/speakers/nicolas.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Let's have a cup of CoffeeScript"
talk.speaker :nicolas_sanguinetti
talk.on :track1 => Day2.at(11:00)
end</pre>
<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!
</div>
</div>
<div class="talkAbstract" id="t11">
<div class="photo">
<img title="mark" alt="mark" src="images/speakers/mark.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "MacRuby"
talk.speaker :mark_madsen
talk.on :track2 => Day2.at(13:00)
end</pre>
<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.
</div>
</div>
<div class="talkAbstract" id="t12">
<div class="photo">
<img title="sherin" alt="sherin" src="images/speakers/sherin.png" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Designing High Throughput Web Service Clients"
talk.speaker :sherin_c
talk.on :track2 => Day2.at(15:00)
end</pre>
<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>
</div>
</div>
<div class="talkAbstract" id="t13">
<div class="photo">
<img title="vishnu" alt="vishnu" src="images/speakers/vishnu.png" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Writing Compilers the Easy Way"
talk.speaker :vishnu_gopal
talk.on :track1 => Day1.at(15:30)
end</pre>
<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.
</div>
</div>
<div class="talkAbstract" id="t14">
<div class="photo">
<img title="yashasree" alt="yashasree" src="images/speakers/yashasree.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Rubyizing the Dev and Ops in an Enterprise"
talk.speaker :yashasree_barve
talk.on :track1 => Day2.at(16:00)
end</pre>
<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.
</div>
</div>
<div class="talkAbstract" id="t15">
<div class="photo">
<img title="srushti" alt="srushti" src="images/speakers/srushti.JPG" />
<img title="brian" alt="brian" src="images/speakers/brian.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Continuous Delivery in Ruby"
talk.speaker :srushti_ambekallu, :brian_guthrie
talk.on :track1 => Day2.at(13:00)
end</pre>
<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."
</div>
</div>
<div class="talkAbstract" id="t16">
<div class="photo">
<img title="bratish" alt="bratish" src="images/speakers/bratish.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Memory Is The New Disk, Say Hello To Redis"
talk.speaker :bratish_goswami
talk.on :track2 => Day2.at(16:00)
end</pre>
<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.
</div>
</div>
<div class="talkAbstract" id="t17">
<div class="photo">
<img title="sidu" alt="sidu" src="images/speakers/SiduP.jpg" />
<img title="niranjan" alt="niranjan" src="images/speakers/niranjan.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "I can haz HTTP: Consuming and producing HTTP APIs in the Ruby ecosystem"
talk.speaker :sidu_ponnappa, :niranjan_paranjape
talk.on :track2 => Day1.at(14:30)
end</pre>
<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.
</div>
</div>
<div class="talkAbstract" id="t18">
<div class="photo">
<img title="pankaj" alt="pankaj" src="images/speakers/pankaj.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Make your own Rails Framework"
talk.speaker :pankaj_bhageria
talk.on :track1 => Day1.at(14:30)
end</pre>
<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/>
SSome 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.
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>
</li>
</div>
</div>
<div class="talkAbstract" id="t19">
<div class="photo">
<img title="Yehuda Katz" alt="Yehuda Katz" src="images/speakers/yehuda.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Building Rails Apps for the Rich Client"
talk.speaker :yehuda_katz
talk.on :combined_track => Day1.at(11:00)
end</pre>
<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 />
</div>
</div>
<div class="talkAbstract" id="t20">
<div class="photo">
<img title="Chad Fowler" alt="Chad Fowler" src="images/speakers/chad.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Service"
talk.speaker :chad_fowler
talk.on :combined_track => Day1.at(17:00)
end</pre>
<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 />
</div>
</div>
<div class="talkAbstract" id="t21">
<div class="photo">
<img title="Ola Bini" alt="Ola Bini" src="images/speakers/ola1.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "The Good, the Bad, and the Ugly"
talk.speaker :ola_bini
talk.on :combined_track => Day2.at(10:00)
end</pre>
<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 />
</div>
</div>
<div class="talkAbstract" id="t22">
<div class="photo">
<img title="Nick Sieger" alt="Nick Sieger" src="images/speakers/NickS.jpg" />
</div>
<pre class="brush: ruby">RubyConfIndia::2011::Talks.new do |talk|
talk.title "Happiness : Ruby :: Freedom : JRuby"
talk.speaker :nick_sieger
talk.on :combined_track => Day2.at(17:00)
end</pre>
<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 />
</div>
</div>
<div class="closingVim">
<div class="vimBar">~/workspace/conferences/RubyConfIndia/2011/talks</div>
--ABSTRACT--
</div>
</div>
</body>
</html>