PageSourceSearch

https://rootconf.in/

html rootconf.in collected 2026-09-28 08:37:03 UTC 45,581 bytes, 1,493 lines download raw bytes

1
2
3
4
5
6
7
8
9
10
11
12
13<!DOCTYPE html>
14<html lang="en" class="svg inlinesvg">
15  <head>
16    <title>Rootconf</title>
17    <meta http-equiv="refresh" content="5; URL=https://hasgeek.com/rootconf/2025" />
18    <meta charset="utf-8">
19    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
20
21    
22    <meta name="theme-color" content="#192967"/>
23    
24    
25    <meta name="description" content="A community and conference on DevOps and cloud infrastructure">
26    <meta name="keywords" content="">
27    <link rel="shortcut icon" href="images/hg-favicon.ico" />
28    <link rel="author" href="https://plus.google.com/" />    
29
30    
31      
32    
33
34    <meta property="og:url" content="https://rootconf.in/">
35    <meta property="og:image" content="">
36    <meta property="og:description" content="A community and conference on DevOps and cloud infrastructure">
37    <meta property="og:title" content="Rootconf">
38    <meta property="og:site_name" content="Rootconf">
39    <meta property="og:see_also" content="https://rootconf.in">
40    <meta property="og:type" content="website">
41
42    <meta itemprop="name" content="Rootconf">
43    <meta itemprop="description" content="A community and conference on DevOps and cloud infrastructure">
44    <meta itemprop="image" content="">
45
46    <meta name="twitter:card" content="summary">
47    <meta name="twitter:url" content="https://rootconf.in/">
48    <meta name="twitter:title" content="Rootconf">
49    <meta name="twitter:description" content="A community and conference on DevOps and cloud infrastructure">
50    <meta name="twitter:image" content="">
51
52
53    
54    <link rel="stylesheet" href="css/main.css">
55
56    
57
58    
59
60    <link rel="stylesheet" href="css/jquery.sidr.2.2.1.min.css">
61    <link rel="stylesheet" href="css/font-awesome.min.css">
62</head>
63<body class="bg-light">
64  
65
66
67
68
69
70
71
72
73
74
75<div id="sidebar" style="display:none;">
76  <nav class="nav has-shadow">
77    <div class="container">
78      <a class="nav-item is-hidden-tablet" href="index.html" >
79        Rootconf
80      </a>
81      <div class="nav-right nav-menu is-active">
82        
83        
84      </div>
85    </div>
86  </nav>
87</div>
88
89
90  
91
92
93
94
95
96
97
98
99
100
101<nav class="nav has-shadow is-hidden-mobile">
102  <div class="container">
103    <a class="nav-item nav-home" href="index.html" >
104      Rootconf
105    </a>
106    <div class="nav-left">
107      
108      
109    </div>
110  </div>
111</nav>
112
113
114  <section class="hero is-primary is-medium is-bold event-masthead-medium">
115  <div class="hero-body" style="background-image: url(''); background-size:cover;">
116    <div class="container">
117        <div class="hero-icon">
118          
119          <img src="index.html" style="max-width: 120px;" class="has-text-centered animated zoomIn">
120        </div>
121        <h1 class="site-title" style="color: #ffffff;">
122          Rootconf
123        </h1>
124        
125        
126        
127          <h2 class="site-subtitle" style="color: #ffffff;">
128            A community and conference on DevOps and cloud infrastructure
129          </h2>
130        
131      </div>
132    </div>
133</section>
134
135<section class="section featured-section">
136  <div class="container">
137    <div class="columns is-multiline">
138    
139
140
141
142
143      
144    </div>
145  </div>
146</section>
147
148<section class="section">
149  <div class="container">
150    
151
152
153
154
155    <div class="columns is-centered is-multiline">
156      
157    </div>
158  </div>
159</section>
160
161
162
163
164
165
166
167
168
169
170
171<section class="section">
172  <div class="container">
173      <h1 class="title">Past Events</h1>
174      <hr>
175      <div class="columns is-centered is-multiline">
176        
177        <div class="column is-one-third">
178          
179
180<div class="card is-clickable" onclick="goToUrl('sept-2017-meetup/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/sept-2017-meetup/" data-label="view Rootconf meetup at WalmartLabs">
181  
181<script type="application/ld+json">
182  {
183    "@context": "http://schema.org",
184    "@type": "Event",
185    "name": "Rootconf meetup at WalmartLabs",
186    "startDate": "2017-09-23",
187    "location": {
188      "@type": "Place",
189      "name": "WalmartLabs, Bangalore",
190      "address": {
191        "@type": "PostalAddress",
192        "addressLocality": "Bangalore",
193        "addressCountry": "IN"
194      }
195    },
196    
197    "description": "A meetup in Bangalore where we discuss and debate about serverless architecture.",
198    "endDate": "2017-09-23",
199    "offers": {
200      "@type": "Offer",
201      "url": "https://rootconf.in/sept-2017-meetup/"
202    }
203  }
204  </script>
204
205  <div class="card-content">
206    <p class="title is-4">
207      Rootconf meetup at WalmartLabs
208    </p>
209    
210    <p class="subtitle is-6">
211      23 Sep 2017, 11 AM - 2 PM, WalmartLabs, Bangalore
212    </p>
213    
214
215    
216    
217    
218    <div class="content">
219      <p><p>A meetup in Bangalore where we discuss and debate about serverless architecture.</p>
220</p>
221    </div>
222  </div>
223</div>
224
225        </div>
226        
227        <div class="column is-one-third">
228          
229
230<div class="card is-clickable" onclick="goToUrl('2017-cloud-server-management-miniconf/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2017-cloud-server-management-miniconf/" data-label="view Miniconf on Cloud Server Management (Chennai)">
231  
231<script type="application/ld+json">
232  {
233    "@context": "http://schema.org",
234    "@type": "Event",
235    "name": "Miniconf on Cloud Server Management (Chennai)",
236    "startDate": "2017-11-25",
237    "location": {
238      "@type": "Place",
239      "name": "IITM Research Park, Chennai",
240      "address": {
241        "@type": "PostalAddress",
242        "addressLocality": "Elsewhere",
243        "addressCountry": "IN"
244      }
245    },
246    
247    "description": "Cloud server management brings with it as many challenges as it offers conveniences. It is time to unbundle questions on resource allocation, scaling, security, and more.",
248    "endDate": "2017-11-25",
249    "offers": {
250      "@type": "Offer",
251      "url": "https://rootconf.in/2017-cloud-server-management-miniconf/"
252    }
253  }
254  </script>
254
255  <div class="card-content">
256    <p class="title is-4">
257      Miniconf on Cloud Server Management (Chennai)
258    </p>
259    
260    <p class="subtitle is-6">
261      25 Nov 2017, IITM Research Park, Chennai
262    </p>
263    
264
265    
266    
267    
268    <div class="content">
269      <p><p>Cloud server management brings with it as many challenges as it offers conveniences. It is time to unbundle questions on resource allocation, scaling, security, and more.</p>
270</p>
271    </div>
272  </div>
273</div>
274
275        </div>
276        
277        <div class="column is-one-third">
278          
279
280<div class="card is-clickable" onclick="goToUrl('2017-cloud-server-management-miniconf-mumbai/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2017-cloud-server-management-miniconf-mumbai/" data-label="view Miniconf on Cloud Server Management (Mumbai)">
281  
281<script type="application/ld+json">
282  {
283    "@context": "http://schema.org",
284    "@type": "Event",
285    "name": "Miniconf on Cloud Server Management (Mumbai)",
286    "startDate": "2017-12-08",
287    "location": {
288      "@type": "Place",
289      "name": "Endurance International Group, Mumbai",
290      "address": {
291        "@type": "PostalAddress",
292        "addressLocality": "Elsewhere",
293        "addressCountry": "IN"
294      }
295    },
296    
297    "description": "Cloud server management brings with it as many challenges as it offers conveniences. It is time to unbundle questions on resource allocation, scaling, security, and more.",
298    "endDate": "2017-12-08",
299    "offers": {
300      "@type": "Offer",
301      "url": "https://rootconf.in/2017-cloud-server-management-miniconf-mumbai/"
302    }
303  }
304  </script>
304
305  <div class="card-content">
306    <p class="title is-4">
307      Miniconf on Cloud Server Management (Mumbai)
308    </p>
309    
310    <p class="subtitle is-6">
311      8 Dec 2017, Endurance International Group, Mumbai
312    </p>
313    
314
315    
316    
317    
318    <div class="content">
319      <p><p>Cloud server management brings with it as many challenges as it offers conveniences. It is time to unbundle questions on resource allocation, scaling, security, and more.</p>
320</p>
321    </div>
322  </div>
323</div>
324
325        </div>
326        
327        <div class="column is-one-third">
328          
329
330<div class="card is-clickable" onclick="goToUrl('2017-cloud-server-management-miniconf-delhi-ncr/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2017-cloud-server-management-miniconf-delhi-ncr/" data-label="view Miniconf on Cloud Server Management (Delhi/NCR)">
331  
331<script type="application/ld+json">
332  {
333    "@context": "http://schema.org",
334    "@type": "Event",
335    "name": "Miniconf on Cloud Server Management (Delhi/NCR)",
336    "startDate": "2018-01-20",
337    "location": {
338      "@type": "Place",
339      "name": "Investopad, Gurgaon",
340      "address": {
341        "@type": "PostalAddress",
342        "addressLocality": "Elsewhere",
343        "addressCountry": "IN"
344      }
345    },
346    
347    "description": "Cloud server management brings with it as many challenges as it offers conveniences. It is time to unbundle questions on resource allocation, scaling, security, and more.",
348    "endDate": "2018-01-20",
349    "offers": {
350      "@type": "Offer",
351      "url": "https://rootconf.in/2017-cloud-server-management-miniconf-delhi-ncr/"
352    }
353  }
354  </script>
354
355  <div class="card-content">
356    <p class="title is-4">
357      Miniconf on Cloud Server Management (Delhi/NCR)
358    </p>
359    
360    <p class="subtitle is-6">
361      20 Jan 2018, Investopad, Gurgaon
362    </p>
363    
364
365    
366    
367    
368    <div class="content">
369      <p><p>Cloud server management brings with it as many challenges as it offers conveniences. It is time to unbundle questions on resource allocation, scaling, security, and more.</p>
370</p>
371    </div>
372  </div>
373</div>
374
375        </div>
376        
377        <div class="column is-one-third">
378          
379
380<div class="card is-clickable" onclick="goToUrl('2018-tor-meetup-mumbai/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-tor-meetup-mumbai/" data-label="view Mumbai Tor meet-up and User Testing session">
381  
381<script type="application/ld+json">
382  {
383    "@context": "http://schema.org",
384    "@type": "Event",
385    "name": "Mumbai Tor meet-up and User Testing session",
386    "startDate": "2018-01-20",
387    "location": {
388      "@type": "Place",
389      "name": "Only Much Louder (OML), Mumbai",
390      "address": {
391        "@type": "PostalAddress",
392        "addressLocality": "Mumbai",
393        "addressCountry": "IN"
394      }
395    },
396    
397    "description": "A session on user research practices at Tor, and testing new features.",
398    "endDate": "2018-01-20",
399    "offers": {
400      "@type": "Offer",
401      "url": "https://rootconf.in/2018-tor-meetup-mumbai/"
402    }
403  }
404  </script>
404
405  <div class="card-content">
406    <p class="title is-4">
407      Mumbai Tor meet-up and User Testing session
408    </p>
409    
410    <p class="subtitle is-6">
411      20 Jan 2018, 12 PM – 3:30 PM, Only Much Louder (OML), Mumbai
412    </p>
413    
414
415    
416    
417    
418    <div class="content">
419      <p><p>A session on user research practices at Tor, and testing new features.</p>
420</p>
421    </div>
422  </div>
423</div>
424
425        </div>
426        
427        <div class="column is-one-third">
428          
429
430<div class="card is-clickable" onclick="goToUrl('2018-diversity-meetup-walmart/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-diversity-meetup-walmart/" data-label="view Diversity meetup at Walmart Labs">
431  
431<script type="application/ld+json">
432  {
433    "@context": "http://schema.org",
434    "@type": "Event",
435    "name": "Diversity meetup at Walmart Labs",
436    "startDate": "2018-04-07",
437    "location": {
438      "@type": "Place",
439      "name": "WalmartLabs, Bangalore",
440      "address": {
441        "@type": "PostalAddress",
442        "addressLocality": "Bangalore",
443        "addressCountry": "IN"
444      }
445    },
446    
447    "description": "Giving voice to our work; making work spaces safe and inclusive.",
448    "endDate": "2018-04-07",
449    "offers": {
450      "@type": "Offer",
451      "url": "https://rootconf.in/2018-diversity-meetup-walmart/"
452    }
453  }
454  </script>
454
455  <div class="card-content">
456    <p class="title is-4">
457      Diversity meetup at Walmart Labs
458    </p>
459    
460    <p class="subtitle is-6">
461      07 April 2018, 11:00 AM-12:45 PM followed by lunch, @WalmartLabs, Bangalore
462    </p>
463    
464
465    
466    
467    
468    <div class="content">
469      <p><p>Giving voice to our work; making work spaces safe and inclusive.</p>
470</p>
471    </div>
472  </div>
473</div>
474
475        </div>
476        
477        <div class="column is-one-third">
478          
479
480<div class="card is-clickable" onclick="goToUrl('legacy-code-open-house/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/legacy-code-open-house/" data-label="view Open House on modelling costs of security issues in legacy code">
481  
481<script type="application/ld+json">
482  {
483    "@context": "http://schema.org",
484    "@type": "Event",
485    "name": "Open House on modelling costs of security issues in legacy code",
486    "startDate": "2018-04-20",
487    "location": {
488      "@type": "Place",
489      "name": "HasGeek House, Bangalore",
490      "address": {
491        "@type": "PostalAddress",
492        "addressLocality": "Bangalore",
493        "addressCountry": "IN"
494      }
495    },
496    
497    "description": "Learn more about legacy code and the costs associated with it.",
498    "endDate": "2018-04-20",
499    "offers": {
500      "@type": "Offer",
501      "url": "https://rootconf.in/legacy-code-open-house/"
502    }
503  }
504  </script>
504
505  <div class="card-content">
506    <p class="title is-4">
507      Open House on modelling costs of security issues in legacy code
508    </p>
509    
510    <p class="subtitle is-6">
511      20 April 2018, 05:00 PM-07:00 PM, HasGeek House, Bangalore
512    </p>
513    
514
515    
516    
517    
518    <div class="content">
519      <p><p>Learn more about legacy code and the costs associated with it.</p>
520</p>
521    </div>
522  </div>
523</div>
524
525        </div>
526        
527        <div class="column is-one-third">
528          
529
530<div class="card is-clickable" onclick="goToUrl('2018-docker-meetup-tf/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-docker-meetup-tf/" data-label="view Docker meetup">
531  
531<script type="application/ld+json">
532  {
533    "@context": "http://schema.org",
534    "@type": "Event",
535    "name": "Docker meetup",
536    "startDate": "2018-04-28",
537    "location": {
538      "@type": "Place",
539      "name": "ThoughtFactory, Bangalore",
540      "address": {
541        "@type": "PostalAddress",
542        "addressLocality": "Bangalore",
543        "addressCountry": "IN"
544      }
545    },
546    
547    "description": "A hands-on workshop on Docker",
548    "endDate": "2018-04-28",
549    "offers": {
550      "@type": "Offer",
551      "url": "https://rootconf.in/2018-docker-meetup-tf/"
552    }
553  }
554  </script>
554
555  <div class="card-content">
556    <p class="title is-4">
557      Docker meetup
558    </p>
559    
560    <p class="subtitle is-6">
561      28 April 2018, 09:30 AM-1:00 PM, ThoughtFactory, Bangalore
562    </p>
563    
564
565    
566    
567    
568    <div class="content">
569      <p><p>A hands-on workshop on Docker</p>
570</p>
571    </div>
572  </div>
573</div>
574
575        </div>
576        
577        <div class="column is-one-third">
578          
579
580<div class="card is-clickable" onclick="goToUrl('2018-designing-microservices/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-designing-microservices/" data-label="view Workshop: Designing Microservices">
581  
581<script type="application/ld+json">
582  {
583    "@context": "http://schema.org",
584    "@type": "Event",
585    "name": "Workshop: Designing Microservices",
586    "startDate": "2018-05-05",
587    "location": {
588      "@type": "Place",
589      "name": "Datalicious, Bangalore",
590      "address": {
591        "@type": "PostalAddress",
592        "addressLocality": "Bangalore",
593        "addressCountry": "IN"
594      }
595    },
596    
597    "description": "In this workshop, participants get to know what it takes to design an application as microservices, while clearly undertanding the price they are paying and the the benefits they are receiving. During the workshop, the participants will be divided into groups of 4/5 people and each group will discuss and design a non-trivial application as microservices.",
598    "endDate": "2018-05-05",
599    "offers": {
600      "@type": "Offer",
601      "url": "https://rootconf.in/2018-designing-microservices/"
602    }
603  }
604  </script>
604
605  <div class="card-content">
606    <p class="title is-4">
607      Workshop: Designing Microservices
608    </p>
609    
610    <p class="subtitle is-6">
611      10 AM to 5 PM, 5 May 2018, Datalicious, Bangalore
612    </p>
613    
614
615    
616    
617    
618    <div class="content">
619      <p><p>In this workshop, participants get to know what it takes to design an application as microservices, while clearly undertanding the price they are paying and the the benefits they are receiving. During the workshop, the participants will be divided into grou…</p>
620</p>
621    </div>
622  </div>
623</div>
624
625        </div>
626        
627        <div class="column is-one-third">
628          
629
630<div class="card is-clickable" onclick="goToUrl('2018-designing-restful-apis/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-designing-restful-apis/" data-label="view Workshop: Designing RESTful APIs">
631  
631<script type="application/ld+json">
632  {
633    "@context": "http://schema.org",
634    "@type": "Event",
635    "name": "Workshop: Designing RESTful APIs",
636    "startDate": "2018-05-06",
637    "location": {
638      "@type": "Place",
639      "name": "Datalicious, Bangalore",
640      "address": {
641        "@type": "PostalAddress",
642        "addressLocality": "Bangalore",
643        "addressCountry": "IN"
644      }
645    },
646    
647    "description": "This workshop takes you through the key concept of RESTful APIs, and gives you the experience of desiging a better version for some of the popular APIs.",
648    "endDate": "2018-05-06",
649    "offers": {
650      "@type": "Offer",
651      "url": "https://rootconf.in/2018-designing-restful-apis/"
652    }
653  }
654  </script>
654
655  <div class="card-content">
656    <p class="title is-4">
657      Workshop: Designing RESTful APIs
658    </p>
659    
660    <p class="subtitle is-6">
661      10 AM to 5 PM, 6 May 2018, Datalicious, Bangalore
662    </p>
663    
664
665    
666    
667    
668    <div class="content">
669      <p><p>This workshop takes you through the key concept of RESTful APIs, and gives you the experience of desiging a better version for some of the popular APIs.</p>
670</p>
671    </div>
672  </div>
673</div>
674
675        </div>
676        
677        <div class="column is-one-third">
678          
679
680<div class="card is-clickable" onclick="goToUrl('2018-automation-with-ansible/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-automation-with-ansible/" data-label="view Workshop: Automation with Ansible - 101">
681  
681<script type="application/ld+json">
682  {
683    "@context": "http://schema.org",
684    "@type": "Event",
685    "name": "Workshop: Automation with Ansible - 101",
686    "startDate": "2018-05-09",
687    "location": {
688      "@type": "Place",
689      "name": "ThoughtFactory, Bangalore",
690      "address": {
691        "@type": "PostalAddress",
692        "addressLocality": "Bangalore",
693        "addressCountry": "IN"
694      }
695    },
696    
697    "description": "Ansible is software that automates software provisioning, configuration management, and application deployment. Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems.",
698    "endDate": "2018-05-09",
699    "offers": {
700      "@type": "Offer",
701      "url": "https://rootconf.in/2018-automation-with-ansible/"
702    }
703  }
704  </script>
704
705  <div class="card-content">
706    <p class="title is-4">
707      Workshop: Automation with Ansible - 101
708    </p>
709    
710    <p class="subtitle is-6">
711      10 AM to 1:15 PM, 9 May 2018, Thoughtfactory, Bangalore
712    </p>
713    
714
715    
716    
717    
718    <div class="content">
719      <p><p>Ansible is software that automates software provisioning, configuration management, and application deployment. Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom c…</p>
720</p>
721    </div>
722  </div>
723</div>
724
725        </div>
726        
727        <div class="column is-one-third">
728          
729
730<div class="card is-clickable" onclick="goToUrl('2018-security-clinic/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-security-clinic/" data-label="view Appsecco Security Clinic">
731  
731<script type="application/ld+json">
732  {
733    "@context": "http://schema.org",
734    "@type": "Event",
735    "name": "Appsecco Security Clinic",
736    "startDate": "2018-05-10",
737    "location": {
738      "@type": "Place",
739      "name": "NIMHANS Convention Centre, Bangalore",
740      "address": {
741        "@type": "PostalAddress",
742        "addressLocality": "Bangalore",
743        "addressCountry": "IN"
744      }
745    },
746    
747    "description": "Undertake your security journey at Rootconf 2018!",
748    "endDate": "2018-05-11",
749    "offers": {
750      "@type": "Offer",
751      "url": "https://rootconf.in/2018-security-clinic/"
752    }
753  }
754  </script>
754
755  <div class="card-content">
756    <p class="title is-4">
757      Appsecco Security Clinic
758    </p>
759    
760    <p class="subtitle is-6">
761      10-11 May 2018, Bangalore
762    </p>
763    
764
765    
766    
767    
768    <div class="content">
769      <p><p>Undertake your security journey at Rootconf 2018!</p>
770</p>
771    </div>
772  </div>
773</div>
774
775        </div>
776        
777        <div class="column is-one-third">
778          
779
780<div class="card is-clickable" onclick="goToUrl('2018/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018/" data-label="view Rootconf 2018">
781  
781<script type="application/ld+json">
782  {
783    "@context": "http://schema.org",
784    "@type": "Event",
785    "name": "Rootconf 2018",
786    "startDate": "2018-05-10",
787    "location": {
788      "@type": "Place",
789      "name": "NIMHANS Convention Centre, Bangalore",
790      "address": {
791        "@type": "PostalAddress",
792        "addressLocality": "Bangalore",
793        "addressCountry": "IN"
794      }
795    },
796    
797    "image": [
798      "https://images.hasgeek.com/embed/file/3aea61f86d304f10854c9ebba31d71a3"
799     ],
800    
801    "description": "Rootconf is India’s most well-known conference on DevOps and IT infrastructure. Rootconf attracts systems and operations engineers, and decision-makers in IT to share real world knowledge about building reliable systems.",
802    "endDate": "2018-05-11",
803    "offers": {
804      "@type": "Offer",
805      "url": "https://rootconf.in/2018/"
806    }
807  }
808  </script>
808
809  <div class="card-content">
810    <p class="title is-4">
811      Rootconf 2018
812    </p>
813    
814    <p class="subtitle is-6">
815      10-11 May 2018, Bangalore
816    </p>
817    
818
819    
820    
821    
822    <div class="content">
823      <p><p>Rootconf is India’s most well-known conference on DevOps and IT infrastructure. Rootconf attracts systems and operations engineers, and decision-makers in IT to share real world knowledge about building reliable systems.</p>
824</p>
825    </div>
826  </div>
827</div>
828
829        </div>
830        
831        <div class="column is-one-third">
832          
833
834<div class="card is-clickable" onclick="goToUrl('2018-kubernetes-201/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-kubernetes-201/" data-label="view Workshop: Kubernetes 201">
835  
835<script type="application/ld+json">
836  {
837    "@context": "http://schema.org",
838    "@type": "Event",
839    "name": "Workshop: Kubernetes 201",
840    "startDate": "2018-05-13",
841    "location": {
842      "@type": "Place",
843      "name": "ThoughtFactory, Bangalore",
844      "address": {
845        "@type": "PostalAddress",
846        "addressLocality": "Bangalore",
847        "addressCountry": "IN"
848      }
849    },
850    
851    "description": "In 2017, Kubernetes had emerged as default choice of Container Orchestration. This workshop will look at some of the advance topics of Kubernetes like RBAC, Ingress, Storage management, Monitoring etc. ",
852    "endDate": "2018-05-13",
853    "offers": {
854      "@type": "Offer",
855      "url": "https://rootconf.in/2018-kubernetes-201/"
856    }
857  }
858  </script>
858
859  <div class="card-content">
860    <p class="title is-4">
861      Workshop: Kubernetes 201
862    </p>
863    
864    <p class="subtitle is-6">
865       9:30 AM to 1:15 PM, 13 May 2018, ThoughtFactory, Bangalore
866    </p>
867    
868
869    
870    
871    
872    <div class="content">
873      <p><p>In 2017, Kubernetes had emerged as default choice of Container Orchestration. This workshop will look at some of the advance topics of Kubernetes like RBAC, Ingress, Storage management, Monitoring etc.</p>
874</p>
875    </div>
876  </div>
877</div>
878
879        </div>
880        
881        <div class="column is-one-third">
882          
883
884<div class="card is-clickable" onclick="goToUrl('2018-monitoring-servers/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-monitoring-servers/" data-label="view Workshop: Monitoring Servers using Collectd, Riemann, Graphite and Grafana">
885  
885<script type="application/ld+json">
886  {
887    "@context": "http://schema.org",
888    "@type": "Event",
889    "name": "Workshop: Monitoring Servers using Collectd, Riemann, Graphite and Grafana",
890    "startDate": "2018-05-13",
891    "location": {
892      "@type": "Place",
893      "name": "HasGeek House, Bangalore",
894      "address": {
895        "@type": "PostalAddress",
896        "addressLocality": "Bangalore",
897        "addressCountry": "IN"
898      }
899    },
900    
901    "description": "This workshop focuses on setting up of Riemann, Graphite and Grafana on Docker and then using collectd to send metrics to Riemann from a server.",
902    "endDate": "2018-05-13",
903    "offers": {
904      "@type": "Offer",
905      "url": "https://rootconf.in/2018-monitoring-servers/"
906    }
907  }
908  </script>
908
909  <div class="card-content">
910    <p class="title is-4">
911      Workshop: Monitoring Servers using Collectd, Riemann, Graphite and Grafana
912    </p>
913    
914    <p class="subtitle is-6">
915      10 AM to 1:30 PM, 13 May 2018,HasGeek House, Bangalore
916    </p>
917    
918
919    
920    
921    
922    <div class="content">
923      <p><p>This workshop focuses on setting up of Riemann, Graphite and Grafana on Docker and then using collectd to send metrics to Riemann from a server.</p>
924</p>
925    </div>
926  </div>
927</div>
928
929        </div>
930        
931        <div class="column is-one-third">
932          
933
934<div class="card is-clickable" onclick="goToUrl('2018-scalable-applications-openfaas/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-scalable-applications-openfaas/" data-label="view Workshop: Design & implement a scalable application using OpenFaaS">
935  
935<script type="application/ld+json">
936  {
937    "@context": "http://schema.org",
938    "@type": "Event",
939    "name": "Workshop: Design & implement a scalable application using OpenFaaS",
940    "startDate": "2018-05-19",
941    "location": {
942      "@type": "Place",
943      "name": "Avi Networks India",
944      "address": {
945        "@type": "PostalAddress",
946        "addressLocality": "Bangalore",
947        "addressCountry": "IN"
948      }
949    },
950    
951    "description": "Build API’s for an e-commerce site (using OpenFaaS framework) and learn how to connect them via UI and scale this application using Docker & K8’s and touch up monitoring which is an in-built component of OpenFaaS.",
952    "endDate": "2018-05-19",
953    "offers": {
954      "@type": "Offer",
955      "url": "https://rootconf.in/2018-scalable-applications-openfaas/"
956    }
957  }
958  </script>
958
959  <div class="card-content">
960    <p class="title is-4">
961      Workshop: Design & implement a scalable application using OpenFaaS
962    </p>
963    
964    <p class="subtitle is-6">
965      9 AM to 1:30 PM, 19 May 2018, Avi Networks India, Bangalore
966    </p>
967    
968
969    
970    
971    
972    <div class="content">
973      <p><p>Build API’s for an e-commerce site (using OpenFaaS framework) and learn how to connect them via UI and scale this application using Docker &amp; K8’s and touch up monitoring which is an in-built component of OpenFaaS.</p>
974</p>
975    </div>
976  </div>
977</div>
978
979        </div>
980        
981        <div class="column is-one-third">
982          
983
984<div class="card is-clickable" onclick="goToUrl('2018-unittests-for-python/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-unittests-for-python/" data-label="view Workshop: Writing unit tests: It's now or never!">
985  
985<script type="application/ld+json">
986  {
987    "@context": "http://schema.org",
988    "@type": "Event",
989    "name": "Workshop: Writing unit tests: It's now or never!",
990    "startDate": "2018-05-20",
991    "location": {
992      "@type": "Place",
993      "name": "ThoughtFactory, Bangalore",
994      "address": {
995        "@type": "PostalAddress",
996        "addressLocality": "Bangalore",
997        "addressCountry": "IN"
998      }
999    },
1000    
1001    "description": "This workshop is aimed at people who would like to improve their development skills by practially learning to write professional quality code",
1002    "endDate": "2018-05-20",
1003    "offers": {
1004      "@type": "Offer",
1005      "url": "https://rootconf.in/2018-unittests-for-python/"
1006    }
1007  }
1008  </script>
1008
1009  <div class="card-content">
1010    <p class="title is-4">
1011      Workshop: Writing unit tests: It's now or never!
1012    </p>
1013    
1014    <p class="subtitle is-6">
1015      10 AM to 1:15 PM, 20 May 2018, ThoughtFactory, Bangalore
1016    </p>
1017    
1018
1019    
1020    
1021    
1022    <div class="content">
1023      <p><p>This workshop is aimed at people who would like to improve their development skills by practially learning to write professional quality code</p>
1024</p>
1025    </div>
1026  </div>
1027</div>
1028
1029        </div>
1030        
1031        <div class="column is-one-third">
1032          
1033
1034<div class="card is-clickable" onclick="goToUrl('2018-kubernetes-pune/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2018-kubernetes-pune/" data-label="view Workshop: Upskill with Kubernetes">
1035  
1035<script type="application/ld+json">
1036  {
1037    "@context": "http://schema.org",
1038    "@type": "Event",
1039    "name": "Workshop: Upskill with Kubernetes",
1040    "startDate": "2018-10-06",
1041    "location": {
1042      "@type": "Place",
1043      "name": "Wingify, Pune",
1044      "address": {
1045        "@type": "PostalAddress",
1046        "addressLocality": "Bangalore",
1047        "addressCountry": "IN"
1048      }
1049    },
1050    
1051    "description": "In 2017, Kubernetes had emerged as default choice of Container Orchestration. The workshop will cover basics of Kubernetes with a hands on lab covering deployment of a simple application on Kubernetes. ",
1052    "endDate": "2018-10-06",
1053    "offers": {
1054      "@type": "Offer",
1055      "url": "https://rootconf.in/2018-kubernetes-pune/"
1056    }
1057  }
1058  </script>
1058
1059  <div class="card-content">
1060    <p class="title is-4">
1061      Workshop: Upskill with Kubernetes
1062    </p>
1063    
1064    <p class="subtitle is-6">
1065       9:30 AM to 5:30 PM, 6 October 2018, Wingify, Pune 
1066    </p>
1067    
1068
1069    
1070    
1071    
1072    <div class="content">
1073      <p><p>In 2017, Kubernetes had emerged as default choice of Container Orchestration. The workshop will cover basics of Kubernetes with a hands on lab covering deployment of a simple application on Kubernetes.</p>
1074</p>
1075    </div>
1076  </div>
1077</div>
1078
1079        </div>
1080        
1081        <div class="column is-one-third">
1082          
1083
1084<div class="card is-clickable" onclick="goToUrl('2019/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2019/" data-label="view Rootconf 2019">
1085  
1085<script type="application/ld+json">
1086  {
1087    "@context": "http://schema.org",
1088    "@type": "Event",
1089    "name": "Rootconf 2019",
1090    "startDate": "2019-06-21",
1091    "location": {
1092      "@type": "Place",
1093      "name": "NIMHANS Convention Centre, Bangalore",
1094      "address": {
1095        "@type": "PostalAddress",
1096        "addressLocality": "Bangalore",
1097        "addressCountry": "IN"
1098      }
1099    },
1100    
1101    "image": [
1102      "https://images.hasgeek.com/embed/file/3aea61f86d304f10854c9ebba31d71a3"
1103     ],
1104    
1105    "description": "Rootconf is a growing community of systems and operations engineers, DevOps programmers, software engineers and SRE who come together to share real world knowledge about building reliable systems. After the Bangalore edition, Rootconf will travel to Pune, Hyderabad and Delhi to continue building the community in 2019-2020.",
1106    "endDate": "2019-06-22",
1107    "offers": {
1108      "@type": "Offer",
1109      "url": "https://rootconf.in/2019/"
1110    }
1111  }
1112  </script>
1112
1113  <div class="card-content">
1114    <p class="title is-4">
1115      Rootconf 2019
1116    </p>
1117    
1118    <p class="subtitle is-6">
1119      21-22 June 2019, Bangalore
1120    </p>
1121    
1122
1123    
1124    
1125    
1126    <div class="content">
1127      <p><p>Rootconf is a growing community of systems and operations engineers, DevOps programmers, software engineers and SRE who come together to share real world knowledge about building reliable systems. After the Bangalore edition, Rootconf will travel to Pune, H…</p>
1128</p>
1129    </div>
1130  </div>
1131</div>
1132
1133        </div>
1134        
1135        <div class="column is-one-third">
1136          
1137
1138<div class="card is-clickable" onclick="goToUrl('2019-kubernetes-201/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2019-kubernetes-201/" data-label="view Workshop: Kubernetes 201">
1139  
1139<script type="application/ld+json">
1140  {
1141    "@context": "http://schema.org",
1142    "@type": "Event",
1143    "name": "Workshop: Kubernetes 201",
1144    "startDate": "2019-06-23",
1145    "location": {
1146      "@type": "Place",
1147      "name": "",
1148      "address": {
1149        "@type": "PostalAddress",
1150        "addressLocality": "Bangalore",
1151        "addressCountry": "IN"
1152      }
1153    },
1154    
1155    "description": "Once you learn Kubernetes Basics, you get excited to know more and would like to do a deep dive. But sometime it becomes just too overwhelming what Kubernetes can do. In this workshop we would simplify some of the advance topics like RBAC, Ingress, Storage Management, Monitoring etc and demonstrate them hands-on on Kubernetes cluster.",
1156    "endDate": "2019-06-23",
1157    "offers": {
1158      "@type": "Offer",
1159      "url": "https://rootconf.in/2019-kubernetes-201/"
1160    }
1161  }
1162  </script>
1162
1163  <div class="card-content">
1164    <p class="title is-4">
1165      Workshop: Kubernetes 201
1166    </p>
1167    
1168    <p class="subtitle is-6">
1169       9:30 AM to 2:15 PM, 23 June 2019, Bangalore
1170    </p>
1171    
1172
1173    
1174    
1175    
1176    <div class="content">
1177      <p><p>Once you learn Kubernetes Basics, you get excited to know more and would like to do a deep dive. But sometime it becomes just too overwhelming what Kubernetes can do. In this workshop we would simplify some of the advance topics like RBAC, Ingress, Storage …</p>
1178</p>
1179    </div>
1180  </div>
1181</div>
1182
1183        </div>
1184        
1185        <div class="column is-one-third">
1186          
1187
1188<div class="card is-clickable" onclick="goToUrl('2017/')" style="height:21rem; overflow: hidden;"data-href="https://rootconf.in/2017/" data-label="view Rootconf 2017">
1189  
1189<script type="application/ld+json">
1190  {
1191    "@context": "http://schema.org",
1192    "@type": "Event",
1193    "name": "Rootconf 2017",
1194    "startDate": "",
1195    "location": {
1196      "@type": "Place",
1197      "name": "",
1198      "address": {
1199        "@type": "PostalAddress",
1200        "addressLocality": "",
1201        "addressCountry": "IN"
1202      }
1203    },
1204    
1205    "description": "This year's theme is service reliability. You will hear case studies of how organizations and teams plan, monitor and automate their infrastructure to ensure continous reliabilty and availability of services. You can participate in candid, Off-The-Record (OTR) conversations on cost optimization and resource allocation to make better decisions for your organization.",
1206    "endDate": "",
1207    "offers": {
1208      "@type": "Offer",
1209      "url": "https://rootconf.in/2017/"
1210    }
1211  }
1212  </script>
1212
1213  <div class="card-content">
1214    <p class="title is-4">
1215      Rootconf 2017
1216    </p>
1217    
1218    <p class="subtitle is-6">
1219      11–12 May 2017, Bangalore
1220    </p>
1221    
1222
1223    
1224    
1225    
1226    <div class="content">
1227      <p><p>This year’s theme is service reliability. You will hear case studies of how organizations and teams plan, monitor and automate their infrastructure to ensure continous reliabilty and availability of services. You can participate in candid, Off-The-Record (O…</p>
1228</p>
1229    </div>
1230  </div>
1231</div>
1232
1233        </div>
1234        
1235      </div>
1236  </div>
1237</section>
1238
1239
1240<footer class="footer" id="hasgeek">
1241  <div class="container">
1242    <div class="content has-text-centered">
1243      <img src="https://hasgeek.com/static/img/hg-banner.png" alt="" width="100px"><br><br>
1244      <p>Rootconf is presented to you by HasGeek.</p>
1245      <p><a href="http://hasgeek.com/" target="_blank">HasGeek</a> helps people in technology meet each other, collaborate on new opportunities and advance the state of the art. We organize conferences, hacknights, workshops and geekups, and provide tools for communities to self-organize.</p>
1246      <p>
1246We’ve created conferences around the themes of <a href="http://metarefresh.in/" target="_blank">front end engineering</a>, <a href="http://fifthelephant.in/" target="_blank">big data and cloud computing</a>, <a href="http://jsfoo.in/" target="_blank">JavaScript</a>, <a href="http://droidcon.in/" target="_blank">Android</a>, <a href="http://cartonama.com/" target="_blank">location-aware services</a> and <a href="index.html" target="_blank">DevOps</a>. Our <a href="http://hasjob.co" target="_blank">Job Board</a> is used by thousands of geeks every month to find new opportunities.</p>
1247      <p>HasGeek is a technology company in the media business, bringing software automation to a traditionally people-intensive operation. HasGeek has organized over two dozen conferences attended by thousands of technology professionals, made several thousand connections, and built open source tools that are now used by many communities.</p>
1248      <p>Email us: <a href="mailto:[email protected]">[email protected]</a> | Call us: <a href="tel:+917676332020">+91 7676 33 2020</a></p>
1249      <p>Copyright © 2010-2018</p>
1250      <p>All rights reserved</p>
1251    </div>
1252  </div>
1253</footer>
1254
1255
1256
1257  
1257<script src="js/jquery-3.2.1.min.js"></script>
1257
1258  
1258<script src="js/jquery.sidr-2.2.1.min.js"></script>
1258
1259  
1259<script src="js/mustache.min.js"></script>
1259
1260  
1260<script src="js/siema.min.js"></script>
1260
1261
1262
1263
1264
1265<script>
1266    window.EventDetails = {};
1267    // carousel
1268    const mySiema = new Siema({
1269      perPage: {
1270        768: 2,
1271        1024: 3,
1272      },
1273    });
1274    const prev = document.querySelector('#carousel-prev');
1275    const next = document.querySelector('#carousel-next');
1276
1277prev.addEventListener('click', () => mySiema.prev());
1278next.addEventListener('click', () => mySiema.next());
1279</script>
vendor: 1 bytes, line 1279
1279
1280<script>
1281  $(document).ready( function() {
1282
1283    var stickyNav = $(".nav-sticky");
1284    var navHeight;
1285    if (stickyNav.length > 0) {
1286      stuck = "nav-stuck";
1287      headerHeight = $(stickyNav[0]).offset().top;
1288      nextSibling = stickyNav.parent().next()[0];
1289      navHeight = stickyNav[0].clientHeight;
1290      $(window).scroll(function() {
1291        if( $(this).scrollTop() > headerHeight) {
1292          stickyNav.parent().addClass(stuck);
1293          nextSibling.style.marginTop = navHeight+"px";
1294        } else {
1295          stickyNav.parent().removeClass(stuck);
1296          nextSibling.style.marginTop = 0;
1297        }
1298      });
1299    }
1300    $("a").click(function (e) {
1301      var goto = $(this).attr('data-href');
1302      if (goto) {
1303        // Prevent a page reload when a link is pressed
1304        e.preventDefault();
1305        // Scroll to section
1306        var offset_top = $(goto).offset().top - navHeight || 0;
1307        $("body,html").stop(true,true).animate({scrollTop:offset_top},300)
1308      }
1309    });
1310
1311    
1312
1313    $('#sidebar').show();
1314    $('.nav-toggle').sidr({
1315      name: 'sidebar',
1316      source: '#sidebar',
1317      renaming: false
1318    });
1319
1320  })
1321
1322  function goToUrl(url) {
1323    window.location.href = url;
1324  }
1325  function goToUrlNewTab(url) {
1326    var win = window.open(url, '_blank');
1327    win.focus();
1328  }
1329  function showModal(modalId) {
1330    $('#'+modalId).addClass('is-active');
1331  }
1332  function hideModal(modalId) {
1333    $('#'+modalId).removeClass('is-active');
1334  }
1335</script>
1335
1336
1337
1338
1339
1340
1341
1342
1343<script>
vendor: 339 bytes, lines 1343-1349
1343
1344  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
1345  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
1346  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
1347  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
1348
1349  ga('create', '
1349UA-19123154-21
vendor: 41 bytes, lines 1349-1352
1349', 'auto');
1350  ga('send', 'pageview');
1351
1352  
1352$(document).ready( function() {
1353
1354    EventDetails.sendGA = function (category, action, label) {
1355      if (typeof ga !== "undefined") {
1356        ga('send', { hitType: 'event', eventCategory: category, eventAction: action, eventLabel: label});
1357      }
1358    };
1359
1360    // Function that tracks a click button in Google Analytics.
1361    $('.button').click(function(event) {
1362      var target = $(this).attr('href');
1363      var action = $(this).html();
1364      EventDetails.sendGA('click', action, target);
1365    });
1366
1367    $('.is-clickable').click(function(event) {
1368      var target = $(this).data('href');
1369      var action = $(this).data('label');
1370      EventDetails.sendGA('click', action, target);
1371    });
1372
1373    $('.click').click(function(event) {
1374      var target = $(this).attr('href');
1375      var action = $(this).data('label');
1376      EventDetails.sendGA('click', action, target);
1377    });
1378
1379    $('.nav-item').click(function(event) {
1380      var target = $(this).data('href');
1381      EventDetails.sendGA('click', target, target);
1382    });
1383
1384    $('#mc-embedded-subscribe').click(function(event) {
1385      EventDetails.sendGA('event_page_blog', 'subscribe', '');
1386    });
1387
1388    
1389  });
1390</script>
1390
1391
1392<!-- Twitter universal website tag code -->
1393<script>
1394  !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);
1395  },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js',
1396  a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script');
1397  // Insert Twitter Pixel ID and Standard Event data below
1398  twq('init', 'o0bfj');
1399  twq('track','PageView');
1400</script>
1400
1401<!-- End Twitter universal website tag code -->
1402
1403<!-- Facebook Pixel Code -->
1404<script>
vendor: 416 bytes, lines 1404-1413
1404
1405  !function(f,b,e,v,n,t,s)
1406  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
1407  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
1408  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
1409  n.queue=[];t=b.createElement(e);t.async=!0;
1410  t.src=v;s=b.getElementsByTagName(e)[0];
1411  s.parentNode.insertBefore(t,s)}(window,document,'script',
1412  'https://connect.facebook.net/en_US/fbevents.js');
1413  fbq('init', '
1413939847969521385
vendor: 35 bytes, lines 1413-1415
1413'); 
1414  fbq('track', 'PageView');
1415  
1415</script>
1415
1416  <noscript>
1417   <img height="1" width="1" 
1418  src="https://www.facebook.com/tr?id=939847969521385&ev=PageView
1419  &noscript=1"/>
1420</noscript>
1421<!-- End Facebook Pixel Code -->
1422
1423<!-- LinkedIn Insight Tag -->
1424<script type="text/javascript"> _linkedin_partner_id = "245595"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script>
1424<script type="text/javascript"> (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); </script>
1424 <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=245595&fmt=gif" /> </noscript>
1425
1426<script>
1427$(document).ready( function() {
1428  $(document).on( "boxofficeTicketingEvents", function(event, userAction, label, value) {
1429    
1430    if (typeof ga !== "undefined") {
1431      ga('send', { hitType: 'event', eventCategory: 'ticketing', eventAction: userAction, eventLabel: label, eventValue: value});
1432    }
1433
1434    if (typeof fbq !== "undefined") {
1435      if (userAction == 'add ticket' || userAction == 'First interaction') {
1436        fbq('track', 'AddToCart');
1437      } else if (userAction == 'checkout') {
1438        fbq('track', 'InitiateCheckout');
1439      } else if (userAction == 'order creation') {
1440        fbq('track', 'AddPaymentInfo');
1441      } else if(userAction == 'capture payment') {
1442        fbq('track', 'Purchase', {value: value, currency: 'INR'});
1443      } else if(userAction == 'booking complete') {
1444        fbq('track', 'CompleteRegistration');
1445      }
1446    }
1447
1448    if (typeof twq !== "undefined") {
1449      if (userAction == 'add ticket' || userAction == 'First interaction') {
1450        twq('track', 'AddToCart', {
1451          content_ids: ['ticketing'], // Required
1452          content_type: 'tickets', // Required
1453          content_name: 'tickets'
1454        });
1455      } else if(userAction == 'booking complete') {
1456        twq('track','Purchase', {
1457          value: value,
1458          currency: 'INR',
1459          num_items: '1',
1460        });
1461      }
1462    }
1463
1464  });
1465});
1466</script>
1466
1467
1468
1469
1470
1471<script type="text/javascript">
1472  // Unregister service worker
1473  if ('serviceWorker' in navigator) {
1474    navigator.serviceWorker.getRegistrations().then(function(registrations) {
1475      if(registrations.length) {
1476        for (var index = 0; index < registrations.length; index++) {
1477          registrations[index].unregister();
1478        }
1479      }
1480    });
1481  }
1482// if ('serviceWorker' in navigator) {
1483//   navigator.serviceWorker.register('https://rootconf.in/sw.js').then(function () {
1484//     // console.log('Service worker registered');
1485//     }).catch(function() {
1486//     // console.log('Service worker registration failed');
1487//   });
1488// };
1489</script>
1489
1490
1491
1492</body>
1493</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.