Naresh Jain

Naresh Jain

Founder @ ConfEngine.com
location_on India
Twitter Personal Profile Website

Member since 3 years

Naresh Jain

Geek...Consultant...Conference Producer...Startup Founder…struggling to stay up-to-date with technology innovation. Null Process Evangelist.

Naresh Jain is an internationally recognized Technology & Product Development Expert. Over the last decade, he has helped streamline the product development practices at many Fortune 500 companies like Google, Amazon, HP, Siemens Medical, GE Energy, Schlumberger, EMC, CA Technologies, to name a few clients. These days, he is more focused on engineering excellence and product innovation. In a nutshell, hire him as a consultant/mentor, if your entire organization wants to move beyond the Agile and Lean mindset. Learn more about his expert services.

Naresh Jain's Startup Icons

Currently Naresh is building two tech-startup and mentoring various other startups in India. Part of his time is also dedicated to help Software companies as an Agile/Lean Coach/Consultant. From Organizational Transformation to enhanced Developer productivity, Naresh helps organizations embrace, scale, sustain and go beyond the essential Agile and Lean thinking.

Agile Software Community of India

Naresh founded the Agile Software community of India, a registered non-profit society to evangelize Agile, Lean and other Light-weight Software Development methods in India. He is responsible for creating and organising 50+ international conferences including the Functional Conf, Simple Design And Testing Conference (SDTConf), Agile Coach Camp, Selenium Conf India, jQuery and Open Web Conference and Eclipse Summit India. He started many Agile User Groups including the Agile Philly User Group and groups in India.

In recognition of his accomplishments, in 2007 the Agile Alliance awarded Naresh with the Gordon Pask Award for contributions to the Agile Community.

Learn more about Naresh at http://nareshjain.com 

 
  • 3 favorite_border Naresh Jain 0forum

    Unleashing the Power of Automated Refactoring with JDT

    Naresh Jain
    Naresh Jain
    schedule 2 months ago
    Sold Out!
    45 mins
    Demonstration
    Intermediate

    Refactoring is a series of small steps, each of which changes the program’s internal structure without changing its external behaviour. Refactoring, as a tool, to automate behaviour-preserving transformations to source code are not only very popular in agile development environments, but have been widely established as a cornerstone of the daily software development process, regardless of the methodology being used. Most major development environments such as Eclipse offer a set of powerful refactoring to substantially increase development productivity. 

    In this live demo, I’ll show 

    • the real value of refactoring,
    • how we practice it safely,
    • when and why we refactor,
    • the power of refactoring tools and
    • when we avoid refactoring.

    I’ll be using two real-world examples of refactoring and sharing what I’ve learned about this important practice of the last 15 years.

     
  • 2 favorite_border Naresh Jain 0forum

    Q & A with the Selenium Committee

    Naresh Jain
    Naresh Jain
    schedule 4 months ago
    Sold Out!
    45 mins
    Keynote
    Intermediate

    Q & A with the Selenium Committee

     
  • 6 favorite_border Kumar Pratyush 0forum

    Performance Testing a Mobile App Used by 100M Users

    Kumar Pratyush
    Kumar Pratyush
    Naresh Jain
    Naresh Jain
    schedule 4 months ago
    Sold Out!
    45 mins
    Case Study
    Intermediate

    Hike is used by 100 Million users and many of our users have cheap smart phone (~ $120 USD) that can install no more than 3 mobile apps.

    So the questions is: Should testing of app be limited to its functionality? At Hike, we believe "Performance is Queen!" For our users, if we misuse the critical resources such as Battery, CPU, Network and Memory, its a deal-breaker. Hence pref-testing is very important.

    During the initial days of Hike, we were very reactive and only did (manual) perf testing, when our users reported issues.

    Now, every Sprint (2 weeks) and every public release (monthly), we run our automated perf tests. We measure our app's performance using several app specific use-cases on 4 key areas:

    • CPU,
    • Memory,
    • Battery and
    • Network (data consumption.)

    Hike's CPU Utilization

    We also benchmark the following scenarios for app latency:

    • App launch time upon Force Stop
    • App launch time upon Force Kill
    • App's busiest screen openning time
    • Scrolling latency in different parts of the app
    • Contact loading time in Compose screen

    Hike App Benchmark

    We still have a long way to go in terms of our pref-testing journey at Hike. But we feel, we've some key learnings, which would be worth while to share with the community. Join us, for a fast paced perf-testing session.

     
  • 6 favorite_border Vivek Upreti 0forum

    Cross-platform, Multi-device Instant Communication Testing in Parallel using Appium and Docker

    Vivek Upreti
    Vivek Upreti
    Naresh Jain
    Naresh Jain
    schedule 4 months ago
    Sold Out!
    45 mins
    Demonstration
    Intermediate

    Today over 100 million users share over 40 billion messages per month on Hike. Its not just simple 1:1 chat messages. Users can do a VoIP call or share rich multi-media content in 8 different languages in group chats with hundreds of members. User can transfer large (upto 100 MB) file using Wifi-Direct .i.e. device to device file transfer without using Internet. And many more features. How do you ensure that you can roll out a release every month without breaking any of these features?

    With such a large user based, which is very sensitive to frequent upgrades due to data consumption cost, rigorously testing the app becomes extremely critical.

    When we started our automation journey in 2014, we were looking for a device lab which can simplify our testing effort. However we gave up and ended up building our own setup. The reason being, we require multiple devices that can communicate with each other for a single test. And we have 6000+ such tests, which we want to run in parallel. While many device labs allow you to run tests in parallel, they don't allow the devices to communicate with each other. Also its not possible to run the same test across multiple devices. Imagine testing a group-chat flow with photo sharing or imagine the device to device file transfer using hotspot. How would you test these features?

     

    If this interests you, join us and we'll share our learning trying to achieve this at Hike.

     
  • 4 favorite_border Naresh Jain 0forum

    Test Driving a React.js UI Component with Jasmine

    Naresh Jain
    Naresh Jain
    schedule 6 months ago
    Sold Out!
    45 mins
    Demonstration
    Intermediate

    Over the past decade, eXtreme Programming practices like Test-Driven Development (TDD) & Behaviour Driven Developer (BDD), Refactoring, Continuous Integration and Automation have fundamentally changed software development processes and inherently how engineers work. While TDD has seen a great adoption on server side, developers still find it hard to apply TDD for developing UI components.

    In code walk-thru where Naresh will build a web commenting and discussion feature (like Disqus) in React.js, 100% test driven. He will also demonstrate how TDD will help us drive an object-functional design to strike a pragmatic balance between the Object-Oriented and Functional Programming paradigms.

     
  • 1 favorite_border Naresh Jain 0forum

    The Decline and Fall of Agile - Antifragile Mindset to Rescue

    Naresh Jain
    Naresh Jain
    schedule 6 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    What started off as a trial-and-error approach to improve the state of software development by a bunch of tinkerers, is today dominated by management consultants, "Thou-Shall" codified frameworks and rigid, expensive tools. Over the last 20 years, we've gone from, "I'm not sure, let's try this in a small-safe environment" to "you/your-team sucks; you guys have a very poor agile maturity because you are not doing _x_y_z_ (not conforming to the standards)." Along the way, we've lost the purpose of being agile .i.e. to embrace uncertainty and simplicity. Instead we've been forced to believe that consistency via top-down standardisation and predictability by increasing the rigour on process is our eternal quest. Anything that sounds simple and works 80% of the cases is discarded as being naive. What once drove thought-leader into agile, is now driving them insane. This is the unfortunate fate of Agile.

    Luckily there has been some fresh perspectives from Nassim Taleb, author of Antifragile. His work explains how some things benefit from shocks; they thrive and grow when exposed to volatility, randomness, disorder, and stressors and love adventure, risk, and uncertainty. More importantly why antifragility is beyond resilience or robustness.

    In this talk, I'll use some of Nassim's thoughts (and some of my own) to explain what is wrong with our current approach to Agile and how we can bring life back into Agile. Particularly how we can leverage Volatility, Uncertainty, Complexity, and Ambiguity to make product development more antifragile.

     
  • 8 favorite_border Naresh Jain 1forum

    Dark Side of Collaboration

    Naresh Jain
    Naresh Jain
    schedule 6 months ago
    Sold Out!
    45 mins
    Talk
    Advanced

    On Agile teams, collaboration is the way of life. Our leaders want their team members to work closely with each other, have shared goals and even think as one entity. Why? Because we believe that collaboration leads to happier, more productive teams that can build innovative products/services.

    It's strange that companies use the word collaboration very tightly with innovation. Collaboration is based on consensus building, which rarely leads to visionary or revolutionary products/services. Innovative/disruptive concepts require people to independently test out divergent ideas without getting caught up in collaborative boardroom meetings.

    In this presentation, Naresh Jain explores the scary, unspoken side of collaboration and explains in what context, collaboration can be extremely important; and when it can get in the way or be a total waste of time.

     
  • 3 favorite_border Naresh Jain 0forum

    Dark Side of Collaboration

    Naresh Jain
    Naresh Jain
    schedule 9 months ago
    Sold Out!
    45 mins
    Keynote
    Advanced

    On Agile teams, collaboration is the way of life. Our leaders want their team members to work closely with each other, have shared goals and even think as one entity. Why? Because we believe that collaboration leads to happier, more productive teams that can build innovative products/services.

    It's strange that companies use the word collaboration very tightly with innovation. Collaboration is based on consensus building, which rarely leads to visionary or revolutionary products/services. Innovative/disruptive concepts require people to independently test out divergent ideas without getting caught up in collaborative boardroom meetings.

    In this presentation, Naresh Jain explores the scary, unspoken side of collaboration and explains in what context, collaboration can be extremely important; and when it can get in the way or be a total waste of time.

     
  • 2 favorite_border Naresh Jain 0forum

    MVP Design Hacks

    Naresh Jain
    Naresh Jain
    schedule 9 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    A successful startup/product company needs to master the art of validating early product ideas quickly and effectively. Whether you are building a product, service or a new feature, the two most important questions to find out early are:

    • are we solving the right problem?
    • if yes, how do we pitch the idea to the target customer to generate a favourable action?

    During this session, we'll focus on various safe-fail experimentation techniques used by Lean Startups for quickly identifying and validating the customer's value hypothesis, without having to build the real product. You will leave this session equipped with various MVP design techniques, that will allow you to rapidly discover a viable product/service that delights your customers, without spending a lot of time and effort.

    Traditionally, entrepreneurs believed that the only way to test their product/service hypothesis was to build the best-in-class product/service in that category, launch it, and then pray. Most often, products/services fail, not because they cannot be built or delivered. But because, they lack the market-fitment and customer appeal.

    To avoid these risks, these days startups are focusing on building a "Minimum Viable Product" (MVP), a product that includes just enough core features to allow useful feedback from early adopters. This reduces the time to market and allows the company to build subsequent customer-driven versions of the product. Hence mitigating the likelihood of wasting time on features that nobody wants. MVPs are typically deployed to a subset of customers, such as early adopters that are more forgiving, more likely to give valuable feedback.

    However the problem with MVPs is that companies still spend too much time building stuff and very little time learning. Don't forget the purpose of MVP is validated learning NOT building. This session will give you ideas on how to quickly formulate and test your value and growth hypothesis in a scientific framework using extremely cheap MVP techniques collectively referred to as MVP Design Hacks.

     
  • 4 favorite_border Naresh Jain 0forum

    Agile Testing

    Naresh Jain
    Naresh Jain
    schedule 9 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    As more and more companies are moving to the Cloud, they want their latest, greatest software features to be available to their users as quickly as they are built. However there are several issues blocking them from moving ahead.

    One key issue is the massive amount of time it takes for someone to certify that the new feature is indeed working as expected and also to assure that the rest of the features will continuing to work. In spite of this long waiting cycle, we still cannot assure that our software will not have any issues. In fact, many times our assumptions about the user's needs or behavior might itself be wrong. But this long testing cycle only helps us validate that our assumptions works as assumed.

    How can we break out of this rut & get thin slices of our features in front of our users to validate our assumptions early?

    Most software organizations today suffer from what I call, the "Inverted Testing Pyramid" problem. They spend maximum time and effort manually checking software. Some invest in automation, but mostly building slow, complex, fragile end-to-end GUI test. Very little effort is spent on building a solid foundation of unit & acceptance tests.

    This over-investment in end-to-end tests is a slippery slope. Once you start on this path, you end up investing even more time & effort on testing which gives you diminishing returns.

    In this session Naresh Jain will explain the key misconceptions that has lead to the inverted testing pyramid approach being massively adopted, main drawbacks of this approach and how to turn your organization around to get the right testing pyramid.

     
  • 1 favorite_border Naresh Jain 0forum

    MVP Design Hacks

    Naresh Jain
    Naresh Jain
    schedule 10 months ago
    Sold Out!
    45 mins
    Tutorial
    Intermediate

    A successful startup/product company needs to master the art of validating early product ideas quickly and effectively. Whether you are building a product, service or a new feature, the two most important questions to find out early are:

    • are we solving the right problem?
    • if yes, how do we pitch the idea to the target customer to generate a favourable action?

    During this session, we'll focus on various safe-fail experimentation techniques used by Lean Startups for quickly identifying and validating the customer's value hypothesis, without having to build the real product. You will leave this session equipped with various MVP design techniques, that will allow you to rapidly discover a viable product/service that delights your customers, without spending a lot of time and effort.

    Traditionally, entrepreneurs believed that the only way to test their product/service hypothesis was to build the best-in-class product/service in that category, launch it, and then pray. Most often, products/services fail, not because they cannot be built or delivered. But because, they lack the market-fitment and customer appeal.

    To avoid these risks, these days startups are focusing on building a "Minimum Viable Product" (MVP), a product that includes just enough core features to allow useful feedback from early adopters. This reduces the time to market and allows the company to build subsequent customer-driven versions of the product. Hence mitigating the likelihood of wasting time on features that nobody wants. MVPs are typically deployed to a subset of customers, such as early adopters that are more forgiving, more likely to give valuable feedback.

    However the problem with MVPs is that companies still spend too much time building stuff and very little time learning. Don't forget the purpose of MVP is validated learning NOT building. This session will give you ideas on how to quickly formulate and test your value and growth hypothesis in a scientific framework using extremely cheap MVP techniques collectively referred to as MVP Design Hacks.

     
  • 3 favorite_border Naresh Jain 1forum

    The Decline and Fall of Agile - Antifragile Mindset to Rescue

    Naresh Jain
    Naresh Jain
    schedule 11 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    What started off as a trial-and-error approach to improve the state of software development by a bunch of tinkerers, is today dominated by management consultants, "Thou-Shall" codified frameworks and rigid, expensive tools. Over the last 20 years, we've gone from, "I'm not sure, let's try this in a small-safe environment" to "you/your-team sucks; you guys have a very poor agile maturity because you are not doing _x_y_z_ (not conforming to the standards)." Along the way, we've lost the purpose of being agile .i.e. to embrace uncertainty and simplicity. Instead we've been forced to believe that consistency via top-down standardisation and predictability by increasing the rigour on process is our eternal quest. Anything that sounds simple and works 80% of the cases is discarded as being naive. What once drove thought-leader into agile, is now driving them insane. This is the unfortunate fate of Agile.

    Luckily there has been some fresh perspectives from Nassim Taleb, author of Antifragile. His work explains how some things benefit from shocks; they thrive and grow when exposed to volatility, randomness, disorder, and stressors and love adventure, risk, and uncertainty. More importantly why antifragility is beyond resilience or robustness.

    In this talk, I'll use some of Nassim's thoughts (and some of my own) to explain what is wrong with our current approach to Agile and how we can bring life back into Agile. Particularly how we can leverage Volatility, Uncertainty, Complexity, and Ambiguity to make product development more antifragile.

     
  • 2 favorite_border Naresh Jain 5forum

    Test Driving a React.js UI Component with Jasmine

    Naresh Jain
    Naresh Jain
    schedule 11 months ago
    Sold Out!
    90 mins
    Demonstration
    Intermediate

    Over the past decade, eXtreme Programming practices like Test-Driven Development (TDD) & Behaviour Driven Developer (BDD), Refactoring, Continuous Integration and Automation have fundamentally changed software development processes and inherently how engineers work. While TDD has seen a great adoption on server side, developers still find it hard to apply TDD for developing UI components.

    In this hands-on, live coding demo, Naresh will build a web commenting and discussion feature (like Disqus) in React.js, 100% test driven. He will also demonstrate how TDD will help us drive an object-functional design to strike a pragmatic balance between the Object-Oriented and Functional Programming paradigms.

     
  • 31 favorite_border Naresh Jain 1forum

    Dark Side of Collaboration

    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    Sold Out!
    45 mins
    Keynote
    Advanced

    On Agile teams, collaboration is the way of life. Our leaders want their team members to work closely with each other, have shared goals and even think as one entity. Why? Because we believe that collaboration leads to happier, more productive teams that can build innovative products/services.

    It's strange that companies use the word collaboration very tightly with innovation. Collaboration is based on consensus building, which rarely leads to visionary or revolutionary products/services. Innovative/disruptive concepts require people to independently test out divergent ideas without getting caught up in collaborative boardroom meetings.

    In this presentation, Naresh Jain explores the scary, unspoken side of collaboration and explains in what context, collaboration can be extremely important; and when it can get in the way or be a total waste of time.

     
  • 4 favorite_border Naresh Jain 0forum

    Live Code Jugalbandi

    Naresh Jain
    Naresh Jain
    Dhaval Dalal
    Dhaval Dalal
    schedule 1 year ago
    Sold Out!
    90 mins
    Event
    Beginner

    In Indian classical music, we have Jugalbandi, where two lead musicians or vocalist engage in a playful competition. There is jugalbandi between Flutist and a Percussionist (say using Tabla as the instrument). Compositions rendered by flutist will be heard by the percussionist and will replay the same notes, but now on Tabla and vice-versa is also possible.

    In a similar way, we will perform Code Jugalbandi to see how the solution looks using different programming languages and paradigms.

    During the session, conference attendees will take turns at coding the same problem using different languages and paradigms. There would be multiple such attempts by different participants during the Jugalbandi.

     
  • 1 favorite_border Naresh Jain 0forum

    Balancing Object-Functional Design Guided by Tests

    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    Sold Out!
    120 mins
    Demonstration
    Intermediate

    When we think of OO, most people think of modeling THE real world in software by mapping every real world object (nouns) to entities in software. These entities are then modeled using Is-A-Has-A relationship to build complex, polymorphic hierarchies with deep object graphs. State is stored and mutated in-place inside the object to achieve the desired functionality. This paradigm leads to a fairly convoluted design and encourage imperative style of programming.

    Not everyone who has designed large complex systems, think of OO the same way. For instance, people who Test Drive, do not have the luxury of a big-up-front design, instead they focus on small and incremental design. IME, TDD facilities a design that is side-effect free and encourages a declarative style of programming. While decoupling and composing objects in a functional style with the right granularity of abstraction.

    Let's assume we've to build a web commenting and discussion feature (like Disqus). And we've a requirement to implement this as a jQuery Plugin. Can we apply pure functional principles to design this? Or will the design be better if we try a classical OO JS approach? In this live demo, we'll build this plugin from scratch and see how TDD will help us drive an object-functional design to strike a pragmatic balance between the 2 paradigms.

     
  • 1 favorite_border Naresh Jain 0forum

    Aap Ki Adalat with jQuery Foundation

    45 mins
    Keynote
    Beginner

    Aap Ki Adalat is the longest running talk show in the history of Indian television. In this show, the anchor, Mr. Rajat Sharma has grilled over 500 personalities on various sensitive and personal issues. We would like to put the key members of the jQuery Foundation through a similar session, where participants will ask them hard questions around various technical and non-technical choices made by the Foundation and the future direction of the foundation.

     
  • 1 favorite_border Naresh Jain 0forum

    Agile Testing

    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    As more and more companies are moving to the Cloud, they want their latest, greatest software features to be available to their users as quickly as they are built. However there are several issues blocking them from moving ahead.

    One key issue is the massive amount of time it takes for someone to certify that the new feature is indeed working as expected and also to assure that the rest of the features will continuing to work. In spite of this long waiting cycle, we still cannot assure that our software will not have any issues. In fact, many times our assumptions about the user's needs or behavior might itself be wrong. But this long testing cycle only helps us validate that our assumptions works as assumed.

    How can we break out of this rut & get thin slices of our features in front of our users to validate our assumptions early?

    Most software organizations today suffer from what I call, the "Inverted Testing Pyramid" problem. They spend maximum time and effort manually checking software. Some invest in automation, but mostly building slow, complex, fragile end-to-end GUI test. Very little effort is spent on building a solid foundation of unit & acceptance tests.

    This over-investment in end-to-end tests is a slippery slope. Once you start on this path, you end up investing even more time & effort on testing which gives you diminishing returns.

    In this session Naresh Jain will explain the key misconceptions that has lead to the inverted testing pyramid approach being massively adopted, main drawbacks of this approach and how to turn your organization around to get the right testing pyramid.

     
  • 1 favorite_border Naresh Jain 0forum

    IAmA (I Am A ... Ask Me Anything)

    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    Sold Out!
    60 mins
    Keynote
    Beginner

    On Reddit, IAmA stands for "I am a" and AMA stands for "ask me anything".

    In an IAmA post, a person will post what they are, and other people will ask the original poster some questions to gain insights about the experience the person has had.
     
    Ex: I'm Jeff Patton, creator of Story Mapping, Ask Me Anything... OR I'm Diana Larsen, co-creator of the Fluency Model and co-author of Agile Retrospectives, Ask Me Anything...

    We plan to take this concept and apply it to the Agile context. We've few luminaries at the conference and we plan to do an live interview with them using this format.

     
  • 2 favorite_border Naresh Jain 0forum

    Test Driving a jQuery Plugin

    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    Sold Out!
    90 mins
    Demonstration
    Intermediate

    Over the past decade, eXtreme Programming practices like Test-Driven Development (TDD), Behavior Driven Developer (BDD), Refactoring and Continuous Integration have fundamentally changed software development processes and inherently how engineers work. Practitioners claim that it has helped them significantly improve their development speed, design quality and responsiveness to changing requirements. Software professionals across the board, from Internet startups to medical device companies to space research organizations, today have embraced these practices. But can these practices be applied to front-end development? Especially jQuery plugin development?

    This demo will show how we can test drive a jQuery plugin with the help of various patterns, strategies, tools and techniques. Participants will understand how they can apply this approach for testing any jQuery code.

     
  • 1 favorite_border Viral B. Shah 0forum

    Julia - A Lisp for Fast Number Crunching

    Viral B. Shah
    Viral B. Shah
    Shashi Gowda
    Shashi Gowda
    schedule 3 weeks ago
    Sold Out!
    90 mins
    Workshop
    Intermediate

    Julia is a programming language for data science and numerical computing. Julia is a high-level, high-performance dynamic language, it uses just-in-time compilation to provide fast machine code - dynamic code runs at about half the speed of C, and orders of magnitude faster than traditional numerical computing tools.

    Julia borrows two main ideas from Lisp lore:

    1. Multiple-dispatch: a method is identified by a name and the types of all of its arguments (traditional OOP only uses the type of a single argument) multiple-dispatch allows for a natural programming model suitable for mathematics and general purpose programming. Interestingly, the same feature is responsible for Julia's ability to generate really fast machine code.
    2. Macros: Julia has syntax that is familiar to users of other technical computing environments, however, Julia expressions are homoiconic -- Julia code can be represented as Julia data structures, and transformed from one form to another via hygienic macros. There are some very interesting uses of macros to create domain-specific languages for effective programming. 
     
  • 2 favorite_border Morten Kromberg 0forum

    Array Oriented Functional Programming with Dyalog

    Morten Kromberg
    Morten Kromberg
    Roger Hui
    Roger Hui
    schedule 3 weeks ago
    Sold Out!
    480 mins
    Workshop
    Beginner

    Dyalog is a modern, array-first, multi-paradigm programming language, which supports functional, object-oriented and imperative programming based on an APL language kernel. During the morning and early afternoon, we will explore the fundamentals of functional programming in APL. At the end of the day, Dyalog CXO Morten Kromberg will round off with an application development session, showing how a simple application with a HTML5/JS front-end and a RESTful web service can be used to deliver the power of APL to end users, or as embeddable components for other application tools. The "hands on" sections of the workshop can be followed under Mac OS X, Linux, or Microsoft Windows.

     
  • 1 favorite_border Pradeep Balachandran 0forum

    Q & A with the Eclipse Committee

  • 6 favorite_border John Hughes 0forum

    Why Functional Programming Matters

    John Hughes
    John Hughes
    schedule 1 month ago
    Sold Out!
    45 mins
    Keynote
    Beginner

    25 years ago I published "Why Functional Programming Matters", a manifesto for FP--but the subject is much older than that!

    As software becomes more and more complex, it is more and more important to structure it well. Well-structured software is easy to write, easy to debug, and provides a collection of modules that can be re-used to reduce future programming costs. Conventional languages place conceptual limits on the way problems can be modularised. Functional languages push those limits back. In this paper we show that two features of functional languages in particular, higher-order functions and lazy evaluation, can contribute greatly to modularity. As examples, we manipulate lists and trees, program several numerical algorithms, and implement the alpha-beta heuristic (an algorithm from Artificial Intelligence used in game-playing programs). Since modularity is the key to successful programming, functional languages are vitally important to the real world.

    In this talk we'll take a deep dive into history to revisit our personal selection of highlights.

     
  • 3 favorite_border 	Robert Virding 0forum

    The Erlang Ecosystem

    	Robert Virding
    Robert Virding
    schedule 1 month ago
    Sold Out!
    45 mins
    Keynote
    Intermediate

    Erlang is in many ways quite old though many of the problems for which it used are quite modern. The Erlang language and system was designed around a set of requirements for telecom systems. They were distributed, massively concurrent systems which had to scale with demand, be capable of handling massive peak loads and never fail. The Erlang concurrency and error-handling model was developed around these requirements. We will describe the development of the language and the design of systems based on the Erlang showing how well the functional paradigm suits attacking these types of problems. We will also look at the further development with the introduction of new languages in the Erlang environment - the Erlang ecosystem.

     
  • 10 favorite_border Aloïs Cochard 0forum

    Welcome to the Machines

    Aloïs Cochard
    Aloïs Cochard
    schedule 1 month ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    The streaming of data in a purely functional language is a fascinating problem that have been extensively explored over the years.

    In this talk we'll first briefly outline historical solutions to the problem and discuss their advantages and disadvantages,
    we will then follow with a practical introduction to the great `machines` library from Edward Kmett.

    We will see how the library usage compare to other players in the ecosystem (pipes, conduit, ...),
    and walk through real world examples giving us a chance to write our own combinators and understand some of the internals.

     
  • 6 favorite_border Kumar Pratyush 0forum

    Performance Testing a Mobile App Used by 100M Users

    Kumar Pratyush
    Kumar Pratyush
    Naresh Jain
    Naresh Jain
    schedule 4 months ago
    Sold Out!
    45 mins
    Case Study
    Intermediate

    Hike is used by 100 Million users and many of our users have cheap smart phone (~ $120 USD) that can install no more than 3 mobile apps.

    So the questions is: Should testing of app be limited to its functionality? At Hike, we believe "Performance is Queen!" For our users, if we misuse the critical resources such as Battery, CPU, Network and Memory, its a deal-breaker. Hence pref-testing is very important.

    During the initial days of Hike, we were very reactive and only did (manual) perf testing, when our users reported issues.

    Now, every Sprint (2 weeks) and every public release (monthly), we run our automated perf tests. We measure our app's performance using several app specific use-cases on 4 key areas:

    • CPU,
    • Memory,
    • Battery and
    • Network (data consumption.)

    Hike's CPU Utilization

    We also benchmark the following scenarios for app latency:

    • App launch time upon Force Stop
    • App launch time upon Force Kill
    • App's busiest screen openning time
    • Scrolling latency in different parts of the app
    • Contact loading time in Compose screen

    Hike App Benchmark

    We still have a long way to go in terms of our pref-testing journey at Hike. But we feel, we've some key learnings, which would be worth while to share with the community. Join us, for a fast paced perf-testing session.

     
  • 6 favorite_border Vivek Upreti 0forum

    Cross-platform, Multi-device Instant Communication Testing in Parallel using Appium and Docker

    Vivek Upreti
    Vivek Upreti
    Naresh Jain
    Naresh Jain
    schedule 4 months ago
    Sold Out!
    45 mins
    Demonstration
    Intermediate

    Today over 100 million users share over 40 billion messages per month on Hike. Its not just simple 1:1 chat messages. Users can do a VoIP call or share rich multi-media content in 8 different languages in group chats with hundreds of members. User can transfer large (upto 100 MB) file using Wifi-Direct .i.e. device to device file transfer without using Internet. And many more features. How do you ensure that you can roll out a release every month without breaking any of these features?

    With such a large user based, which is very sensitive to frequent upgrades due to data consumption cost, rigorously testing the app becomes extremely critical.

    When we started our automation journey in 2014, we were looking for a device lab which can simplify our testing effort. However we gave up and ended up building our own setup. The reason being, we require multiple devices that can communicate with each other for a single test. And we have 6000+ such tests, which we want to run in parallel. While many device labs allow you to run tests in parallel, they don't allow the devices to communicate with each other. Also its not possible to run the same test across multiple devices. Imagine testing a group-chat flow with photo sharing or imagine the device to device file transfer using hotspot. How would you test these features?

     

    If this interests you, join us and we'll share our learning trying to achieve this at Hike.

     
  • 9 favorite_border Bret Pettichord 1forum

    Checking as a Service

    Bret Pettichord
    Bret Pettichord
    schedule 6 months ago
    Sold Out!
    45 mins
    Keynote
    Beginner

    This talk suggests a reframe in how we understand the business value of automated testing. One shift is to see automation as "checking" rather than "testing". Another is the shift from software delivery to service delivery, including fully embracing DevOps. The resulting approach could be called Checking as a Service or CheckOps, and forces us to rethink traditional automation priorities. In this talk, Bret will explain how change in approach has affected teams he's worked with and how you can use it to improve your ability to deliver valued services.

     
  • 27 favorite_border Adam Carmi 0forum

    Advanced Automated Visual Testing With Selenium

    Adam Carmi
    Adam Carmi
    schedule 7 months ago
    Sold Out!
    45 mins
    Talk
    Beginner

    Automated visual testing is a major emerging trend in the dev / test community. In this talk you will learn what visual testing is and why it should be automated. We will take a deep dive into some of the technological challenges involved with visual test automation and show how modern tools address them. We will review available Selenium-based open-source and commercial visual testing tools, demo cutting edge technologies that enable running cross browser and cross device visual tests at large scale, and show how visual test automation fits in the development / deployment lifecycle.

    If you don’t know what visual testing is, if you think that Sikuli is a visual test automation tool, if you are already automating your visual tests and want to learn more on what else is out there, if you are on your way to implement Continuous Deployment or just interested in seeing how cool image processing algorithms can be, this talk is for you!

     
  • 4 favorite_border Rajat Talwar 2forum

    Pains and Gains of being a Full Stack Developer

    Rajat Talwar
    Rajat Talwar
    schedule 10 months ago
    Sold Out!
    45 mins
    Experience Report
    Intermediate

    As the industry is shifting towards an Agile (Continuous Delivery) style for developing products and services, (whether startups or large established organisation), everyone today has to thrive by innovating and adapting to the latest trends in technology. They have to keep themselves ahead in the race to delight customers. Full stack developers are key players in experimenting and delivering value consistently using varied tools and technologies throughout the stack.

    In this session I'll be share my journey of how I became a full-stack developer. Hopefully this will help others understand how they can target and plan to gradually become a full stack developer in their respective teams.

    Also I'll highlight the following topics:

    • What is the importance of a full stack dev?
    • What tools/resources/languages in my experience work best for full stack developers?
    • Downsides of being a full stack developer!
     
  • 23 favorite_border Vishal Prasad 7forum

    Learning from Anemic Reviews - Improving your Agile Feedback Loop

    Vishal Prasad
    Vishal Prasad
    schedule 11 months ago
    Sold Out!
    20 mins
    Experience Report
    Intermediate

    Consider an agile utopia executing a lean build-measure-feedback loop for software development. How would you feel if your biggest strength of receiving early feedback from your end-users turns out to be your Achilles heel? Recently I faced this dilemma where my end-users unfortunately were a group of introvert individuals. This led to Monger project’s MVP almost declared as a failure since it did not fulfill the end-user’s requirements. 

    Many a times, projects transform their delivery mechanism from traditional models to agile with a myth that agile is a recipe for success. In reality many projects fail since agile is not well understood by the teams. A few times (like in this case) the agile process falters not due to incorrect implementation but due to incorrect participants responsible to execute a part of the process.

    Experience with me what happens when your end-users falter your feedback loop just because of the nature of individuals. If you’ve ever been a part of a group (or may be in the future) where your end-users are introverts, learn from this experience report how we overcame this problem on the Monger project by strengthening our anemic reviews. At the same time, if you as a participant have been there and done that, I would love to hear about it.

     
  • 2 favorite_border Dhaval Dalal 0forum

    DRYing to Monads in Java8

    Dhaval Dalal
    Dhaval Dalal
    schedule 1 year ago
    Sold Out!
    45 mins
    Demonstration
    Beginner

    If you thought Monads are a mystery, then this demonstration would show you how to evolve your code towards a Monad without knowing about it. This demo will neither go into any Category Theory nor begin with monadic laws.  Instead, we will start with typical code that you see in your daily life as a developer, attempt to DRY (Don't Repeat Yourself) it up and eventually use Monad to remove duplication and verbosity. You'll also see how Monads make your code more declarative and succinct by sequencing the steps in your domain logic.

    Also, we know in Java8 Checked Exceptions + λ == Pain!  To be more precise, we will evolve a Try (exception handling monad) which is missing in Java8, similar to one found in Scala.  Finally, map back Try to the 3 monad laws.

     
  • 7 favorite_border Morten Kromberg 0forum

    Parallel Programming in Dyalog using Futures and Isolates

    Morten Kromberg
    Morten Kromberg
    schedule 1 year ago
    Sold Out!
    45 mins
    Keynote
    Beginner

    Dyalog is an array first multi-paradigm language based on an APL language kernel. In APL, it is common for the application of primitive functions to arrays of conforming shape to imply a map; the function is applied item-wise to corresponding elements of the arguments, producing a result of the same shape. APL also provides a variety of explicit operators that provide different mappings of user-defined functions, or more generally functional compositions, to multi-dimensional and nested arrays.

    One might expect that such language features would provide a complete framework for parallel programming. In practice, writing programs that can be efficiently executed in parallel on current hardware is extremely difficult, if implicit or explicit maps are the only parallel language feature available and an interpreter or compiler needs to deduce where to introduce the asynchronicity that is required in order to take advantage of the hardware.

    This talk will present Futures and Isolates, and related parallel operators constructed upon them, which were added to Dyalog version 14.0 in 2014. The goal has been to provide explicit forms of deterministic asynchronous execution, designed to be very familiar to APL users, and continue to allow them to view the language as an executable mathematical notation, while taking advantage of parallel hardware that is now readily available.

     
  • 2 favorite_border Dhaval Dalal 0forum

    The Tao of Transformation

    Dhaval Dalal
    Dhaval Dalal
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    Sold Out!
    90 mins
    Workshop
    Beginner

    "To know, is good. To live, is better. To be, that is perfect." - The Mother

    During the Agile adoption, its a common complain that many team in many organizations get caught up in the ceremonies or mechanics of Agile and fail to understand/appreciate the true value and spirit of Agile. And because of this, the original intent of the Agile movement itself is lost. This is a serious issue!

    This workshop will highlight, a well-proven approach to transformation (not adoption) and show the distinct steps in this journey that an individual or a collective goes through when learning anything new. Activities, serving as examples, in the workshop, will focus to show the journey - that is, how to begin with rituals, then gradually move to practices, arriving at principles and eventually internalizing the values. Witnessing this gradual process of transformation will help participants discover for themselves their current progression. We hope this will serve as a guiding light during their Agile journey.

    Finally, we will leave the participants to ponder upon and discover for themselves their ideals in life and work as this is not only applicable to software development, but also to any discipline where humans are involved, including life itself.

     
  • 5 favorite_border Scott González 0forum

    Building Up the Community

    Scott González
    Scott González
    schedule 1 year ago
    Sold Out!
    45 mins
    Keynote
    Beginner

    Over the past seven years, jQuery UI has identified and solved many common problems for web developers. Often times, the problems don't apply just to users of jQuery UI, or even jQuery Core. In these cases, we try to solve the problem in the best way for the largest audience, rather than creating an isolated solution within jQuery UI. We're able to do this by working with the community and bringing together various groups to collaborate on solutions. In this talk, I'll discuss how this concept is at the heart of the jQuery Foundation and explain some of the projects that have been born out of jQuery UI.

     
  • 3 favorite_border Aslak Hellesøy 0forum

    How BDD can save agile

    Aslak Hellesøy
    Aslak Hellesøy
    schedule 1 year ago
    Sold Out!
    60 mins
    Keynote
    Intermediate

    As lead developer of Cucumber and author of The Cucumber Book, Aslak gets asked to consult with organisations who want to introduce Behaviour-Driven Development (BDD). Time after time, he meets teams who are trapped doing half-arsed agile. They do the easy, obvious, visible agile practices, and none of the powerful, hard-to-master, hard-to-see ones.

    When these teams ask for help learning BDD, we get a chance to remind them how important conversations and collaboration are in software development. We teach them to write tests before they write code, as a way to explore and discover the hidden details of a requirement just before they dive in and start building it. This talk will make you wince with recognition, laugh with despair, and finally inspire you with stories of teams that have finally, after years of flaccid scrumming, discovered the true collaborative heart of agile software development. You’ll see patterns you recognise from your own teams, and gain insights about how to fix them.

     
  • 11 favorite_border Prasad Kunte 6forum

    Implementing Agile Engineering Practices in Legacy Codebases

    Prasad Kunte
    Prasad Kunte
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    Sold Out!
    45 mins
    Case Study
    Intermediate

    Afraid of legacy code? Don't be!!!

    Most successful product companies are confronted with the problem of legacy code.

    What is a legacy code?

    • A code which is in production for several years.
    • A super-complex, hard to understand code base, written by different set of developers. 
    • Outdated Technology stack.

    But the most hurting reality is:

    Lack of confidence in the code due to zero or poor test coverage.

    Due to this reality, developers are often scared to touch it. They have very little confidence that "their code change wouldn't break the existing application in production."

    Recently at IDeaS, we came across such situation, where we needed to enhance one of our products containing legacy code. We started looking into the code and soon figured out that it was developed in 2007, hardly ever touched (& still working in production :)). The original team, which has worked on this product, could not be traced anymore.

    As this product has expanded to attract new customers, we had to change it significantly in order to support new customer's specifications. We had to make sure that the product was backward compatible and supported the earlier specifications, while we enhance the new specification.

    One simple option was to COPY PASTE every single method which needs to be modified and use an if-statement to decide which method to call. This certainly seems like an easy method, since the chances of breaking existing code is very little. 

    Today we all know this is a BAD option!!!

    Instead, our team decided to refactor the existing code to support plug-and-play approach for different specification. But before we started refactoring code, we had to build a safety net of tests around the existing code.

    How do we put the safety net? Ideal way would be to implement the Test Pyramid first. But, that would have taken significant time to be ready with the pyramid before we start touching the legacy code. And obvious, we would have missed the business goals.

    What do we do?

    Instead of building the entire test pyramid, we decided to attack different layers of the test pyramid, one at a time. Along the way, we followed the following approach:

    1. Re-structuring the Project code-base
    2. Establishing a baseline database: After taking a dump from the production database, we cleared out surplus data from the DB and setup a seed database with automed scripts
    3. Creating/fixing the build script 
      1. Setting up an auto DB deploy tool and integrating it with build scripts
    4. Set up basic CI pipeline
    5. Write a few work-flow tests to capture the system's flow from user's point of view
      1. Find the inception point in the code from where we can exercise the code
      2. Restify the application at the inception point (one service at a time)
      3. Setup authorization for production and test environment
      4. Build minimal test-data set for different environment 
      5. Create a few work-flow tests via the inception point (Test itself should not be coupled with the underlying database or implementation level components)
    6. Write business logic acceptance test to capture various complicated business rules
    7. Test drive the new enhancement or bug fixes
    8. Every time we touch legacy code, refactor the code and improve test coverage at unit level

    This really helped us test driven the new code and implement all the layers of the test pyramid.

    If you've a similar situation, join us, as we share our experience on how to confront legacy code.

     
  • 11 favorite_border Sachin Natu 7forum

    Death of Inspection: Reincarnation of the Testing Community

    Sachin Natu
    Sachin Natu
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    Sold Out!
    60 mins
    Case Study
    Intermediate

    Adopting agile development practices and continuous delivery is becoming a norm in the software industry. Time to market and frequent releases have drastically reduced time available for regression testing. Inspection is considered wasteful. Faster feedback cycles during development is crucial. These have created lot of challenges for testing community, which traditionally relies on manual testing assisted by UI based test automation.

    This is an experience report of transforming testing practices across organization, which decided to embrace Agile. Today our testers are not trying to find defects, instead they collaborate with product management and developers to prevent them in the first place. In fact, during the appraisal process, the defects found by them is ignored, instead we focus on how much time they are able to dedicate to collaboration and exploratory testing. The boundaries between developers and testers have faded away and today quality is whole team's responsibility.

    We started with less than 20% of our testers with automation skills (mostly UI automation) and rest of them relying on manual testing. However, today, all our testers practice BDD. They have picked up Java & Groovy programming skills. They are able to contribute Workflow tests, Integration tests and Business Logic Acceptance Tests. Early collaboration and pairing is the norm. By the time developers are done with their tasks, all checks are already automated and hence we are able to deploy software every fortnight to production.

    Are your testers finding it hard to make this transition to an Agile mindset? This session will give you some concrete ideas based on our transition at IDeaS.  

     
  • 4 favorite_border Ashish Parkhi 3forum

    Techniques to Speed Up your Build Pipeline for Faster Feedback.

    Ashish Parkhi
    Ashish Parkhi
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    Sold Out!
    45 mins
    Experience Report
    Intermediate

    We would like to share our experience and journey on how we brought down our Jenkins build pipeline time down from over 90 minutes to under 12 minutes. In the process, we would share specific techniques which helped and also some, which logically made sense, but actually did not help. If your team is trying to optimize their build times, then this session might give you some ideas on how to approach the problem.

    Development Impact - For one of our build job, below graph shows how the number of builds in a day have increased over a period of time as the build time has reduced. Frequency of code check-in has increased; Wait time has reduced; failed test case faster to isolate and fix.

    Business Impact - More builds leading to quicker feedback and faster story acceptance and less story spill over.

     
  • 9 favorite_border Maartje Wolff 1forum

    Let’s play the ‘Choose Happiness@work’ game

    Maartje Wolff
    Maartje Wolff
    Gea Peper
    Gea Peper
    schedule 2 months ago
    Sold Out!
    90 mins
    Workshop
    Beginner

    Happiness@work is about a lot of things. For example purpose, culture, autonomy, personal grow, attention, fun, flow, results, being yourself and friendship. How are you doing when it comes to your happiness at work? This workshop is a 90-minutes fun experience by playing the ‘serious’ game ‘Choose Happiness@work’.

     

     
  • 1 favorite_border John Hughes 4forum

    Property Based Testing

    John Hughes
    John Hughes
    schedule 3 weeks ago
    Sold Out!
    480 mins
    Workshop
    Beginner

    Property-based testing is an approach that combines test case generation, automated test execution, and the first steps of diagnosis by automatically simplifying failing tests to minimal examples. When used well it seems almost like magic: you give a simple specification of how your code should behave, and in return a tool tells you your bugs. This workshop will introduce the basics of property-based testing, using Quviq's tool QuickCheck. The workshop will be very hands-on, so you will develop property-based tests for simple systems on your own laptop during the day.

    You will learn about properties (the specifications that we test), generators (used to generate test cases), and state machine models (used to specify stateful behaviour). You will be using Erlang to write tests, and testing code in both Erlang and C. Finally we'll dip into race-condition testing, which is something of a "killer app" for this approach.

     
  • 3 favorite_border Isuru Samaraweera 4forum

    Exploring Streams and Lambdas in Java8

    Isuru Samaraweera
    Isuru Samaraweera
    schedule 4 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Java8 is a modernized platform which embraces functional programming as its key disruptive feature.Python,Ruby,Groovy and Scala etc have been gaining  ground in rapid rate.To cope with rising popularity of such dynamic programming languages Java8 was released with a lot of functional programming features.In order to compete in modernized software engineering domain developers must get their hands wet on functional concepts available in Java.This presentation covers the corner-stone of functional programming which is lambdas along with Streams in java8 . 

     
  • 3 favorite_border S G Ganesh 2forum

    Refactoring to Functional Programming (with Java 8)

    S G Ganesh
    S G Ganesh
    schedule 3 months ago
    Sold Out!
    90 mins
    Tutorial
    Intermediate

    With Java 8’s lambda functions, Java now supports functional programming. Moving to functional programming can result in significantly better code and productivity gains. However, it requires a paradigm shift: you need to move away from imperative and object-oriented thinking to start thinking functionally. That’s what this session will help you achieve: it will help you make your shift towards functional programming. Bring-in your laptops and you can get your hands dirty refactoring imperative/OO code to functional code in Java 8! 

    Attraction: Illustration of how you can perform automatic refactoring to lambdas using your favourite IDE. Special feature: Live demo of refactoring open source legacy code base to show how lambdas and streams can result in shorter and effective code. 

     
  • 3 favorite_border S G Ganesh 1forum

    Functional Programming in Java 8 (with Lambdas and Streams)

    S G Ganesh
    S G Ganesh
    schedule 3 months ago
    Sold Out!
    90 mins
    Workshop
    Intermediate

    Java says hello to functional programming with its support for lambdas in Java 8. This talk cover syntax and semantics of lambda functions, moving from external iteration to internal iteration, and how lambda functions can result in shorter and more readable code. If you are new to functional programming and want productivity gains from using Java’s lambda functions, this talk is certainly for you. 

    Using completely hands-on approach (extensive set of sample programs will be shared to all participants), this session covers Java 8's functional programming features for regular work and improve productivity. Special feature: Live demo of solving a programming problem in iterative approach (Java 7 and earlier) versus using Java 8 streams (Java 8).  

     
  • 8 favorite_border Sathish Kumar 3forum

    Real world functional programming in Ads serving

    Sathish Kumar
    Sathish Kumar
    schedule 3 weeks ago
    Sold Out!
    45 mins
    Experience Report
    Intermediate

    This talk will be about how we applied Typed functional programming and object-functional concepts inspired from languages like Scala, Haskell in building an Ads serving engine using Java 8 and made the stack extensible for multiple Ads serving usecases like App, Desktop, Exchange and ML model execution for CTR prediction, Guaranteed delivery etc.

    This talk will focus on how we solved problems in an Ads serving engine using functional programming constructs for:

    • Relevance and Ranking
    • CTR prediction
    • Bidding models
    • Guaranteed delivery (Convex Optimization)
    • Explore / Exploit (Multi-armed bandit)
    • Attribution, Deduplication etc

    From a language level, it will focus on how we applied our learnings from other functional languages like Scala, Clojure, Haskell in Java 8 to write elegant code for:

    • Composing Ad selection workflows from reusable components
    • Reasoning about code through immutability
    • Defining interfaces like function types. Functions as first class objects to express behaviour.
    • Using Builders and Filter predicates for adding new features
    • Transforming collections using streams, lambdas, map, reduce, flatMap, groupBy
    • Optional for writing null safe code and handling defaults using map, flatMap, orElse
    • Functional operations like partition, zip for simplifying code
    • Pattern matching and other features from libraries
    • Caching and memoization
     
  • 1 favorite_border Neha Arora Nicholas 2forum

    The Do - Re - Mi of Happiness

    Neha Arora Nicholas
    Neha Arora Nicholas
    schedule 1 month ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    We’ve all heard the famous ‘Do Re Mi’ Song from the iconic movie - Sound of Music. And even after all these years, we love it. Don’t we?

    Inspired by the song and the 7 Notes of Music, I have developed the 7 notes of Happiness. Just as one can create a million different tunes by learning how to play these notes; by learning the 7 Notes of Happiness, one can create absolutely any kind of happiness one desires!

    The 7 Notes of Happiness I cover in a full day session, therefore in this 90 minute Talk I shall cover 3 notes: Do – Re – Mi.

     Modus Operandi:

    I will be using a unique mix of Neuroscience and Musicals:

    • Neuroscience: Because, along with the ‘How’, people should also know the ‘Why’; and Neuroscience acquaints them with their happy chemicals, shows them how to flood their bodies with happy hormones, and helps them create positive neural pathways.
    • Musicals: Because, entertaining as they are, musicals also deal in resilience, faith, love, joy in small things, kindness, relationships and life - all of which spell out Oh, So Happy!

    My Talk will be interactive | packed with storytelling | games | dynamic exercises | music | and peppy dances, and will be the first of its kind sing-a-long talk.

     

     

     
  • 3 favorite_border Monika Kumar Jethani 1forum

    "Kotlin is the secret of my functional power", says Android

    Monika Kumar Jethani
    Monika Kumar Jethani
    schedule 2 months ago
    Sold Out!
    45 mins
    Demonstration
    Beginner

    Kotlin is a statistically-typed programming language released by JetBrains. With the arrival of Kotlin, Android's functional power has enhanced as Kotlin brings a bouquet of features such as type inference,higher-order functions, lambda expressions, operator overloading, lazy evaluation,immutability,recursive functions and lots of useful methods to work with collections. Kotlin comes up with essential functional facilities such as filter,take & drop, first & last, fold & foldRight, forEach, reduce,etc making it a perfect match for Android .This talk will focus on leveraging Kotlin's functional constructs for Android App development.

     

     
  • 3 favorite_border Anuj Jamwal 5forum

    Going embedded with Elixir/Erlang

    Anuj Jamwal
    Anuj Jamwal
    schedule 7 months ago
    Sold Out!
    45 mins
    Talk
    Beginner

    With the advent of low cost hardware boards, the likes of Raspberry Pi, BeagleBone or Intel Edison, more and more people are building embedded applications. These boards fit in your palm, can run linux and are probably more powerful than a PC was some years back. 

    The engineers building applications with these boards either take to low level coding in C or view them as another server running linux and run server applications on these boards. The talk tries to argue that either of these have downsides and present Erlang/Elixir as a viable solution to building modern embedded systems.

    Erlang was built as a language for embedded systems back in the day. Its unique process model, let it fail semantics make it best suited for building ever running systems. 

     
  • 4 favorite_border Brij Raj Singh 3forum

    C# as a Functional Programming Language

    Brij Raj Singh
    Brij Raj Singh
    schedule 2 months ago
    Sold Out!
    45 mins
    Demonstration
    Beginner

    C# is one of the most popular .NET languages, and yes it supports Functional programming as well.

    In this talk first we'll draw parity of functions like High Order functions, Curry functions, Pure functions e.t.c. in the C# context.

    Later we'll see how C# implements the functional programming paradigm with the help of Lambda and LINQ with a real life example.

     

     
  • 10 favorite_border Rahul Muttineni 5forum

    Bringing the Power of Haskell to the JVM

    Rahul Muttineni
    Rahul Muttineni
    schedule 1 month ago
    Sold Out!
    45 mins
    Experience Report
    Advanced

    The JVM is a state-of-the-art, cross-platform virtual machine supported by the vast Java platform and ecosystem, but is cursed with an ancient and clumsy language that is slowly modernizing. Haskell is a state-of-the-art programming language with immature platform and tooling and no commercial development of its primary implementation. GHCVM's objective is to combine the best of both worlds and reap the benefits.

    In this talk, I will share my journey of how I waded through the internals of GHC and got Haskell and Java to play nice with each other.  

     
  • 1 favorite_border DivyaTheja Pachipula 2forum

    Testing memory leaks for Eclipse based Java applications

    DivyaTheja Pachipula
    DivyaTheja Pachipula
    Venkat Rajesh
    Venkat Rajesh
    schedule 4 months ago
    Sold Out!
    45 mins
    Case Study
    Intermediate

    Memory leaks are the most important area where almost every product breaks. Are you testing memory leaks in Eclipse? What is the tool you are using for this? Want to know more on this? Then attend this session to know about how Progress leveraged the best of all profiling tools to test the memory leaks in RCP applications. This session takes you through steps to make your job easy by integrating your tests and tool, that captures all memory leaks in your Java application that is running on Eclipse.

    This is a case study that explains an end to end scenario of finding possible memory leaks and  results will be written into an excel with complete statistics of your regression tests.

     
  • 3 favorite_border Sarika Sinha 1forum

    New and Advanced Debugging Tips And Profiling

    Sarika Sinha
    Sarika Sinha
    schedule 5 months ago
    Sold Out!
    20 mins
    Demonstration
    Intermediate

    Eclipse Platform Debug project provides the framework to enable debugging in projects. It adds the concept of Breakpoints, Console, Runtime, Process, Variable View, Expression View ....

    Eclipse JDT Debug project adds the Java specific feature for debugging on top of Platform framework with Java Stack frame, Java Stack trace Console ....

    There are many non obvious ways which can help us achieve effective debugging. Developers using Eclipse for long may not be aware of many of these tips-

    • New debugging features introduced in last two years
    • Advanced debugging tips - Step Filters, organizing breakpoints , Scrapbook, display of logical structure etc.
    • How to create memory dumps
    • How to profile Eclipse projects effectively with profilers like Yourkit
     
  • 1 favorite_border Syamkumar 3forum

    The Power of scripting

    Syamkumar
    Syamkumar
    schedule 3 months ago
    Sold Out!
    45 mins
    Talk
    Beginner

    EASE [1] is an advanced scripting framework which has been honoured with Eclipse Community Award for the Most Innovative Project 2016. It allows the execution of script code within the context of the running eclipse platform. As of today it supports scripts written in JavaScript (Rhino & Nashorn), Python, Groovy and JRuby.

    EASE is a module based framework where user can make use of any Java classes and wrap them as script libraries (modules). There are lots of built in modules available in framework which can be used as is by user from his scripts. For example there are modules for plotting live graphs, modifying workspace resources, accessing GIT etc.

    EASE also hosts a Junit like test framework to execute scripted tests. These tests can be run interactively or can be integrated into CI Environment.

     

     [1]: Eclipse Advanced Scripting Environment: https://projects.eclipse.org/projects/technology.ease

     
  • 1 favorite_border Neeraj Bhusare 4forum

    Eclipse Xtend - a better Java with less "noise"

    Neeraj Bhusare
    Neeraj Bhusare
    schedule 4 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Xtend is a fully-featured Java like language that is tightly integrated with Java. It has a more concise, readable and expressive syntax than Java, and provides additional features such as Type inference, Extension methods and Lambda expressions. It comes with state of the art IDE support for Eclipse and IntelliJ IDEA. It also provides interface for integration of text editors for your language in Web applications.

    Xtend itself is implemented in Xtext and it is a proof of concept of how involved a language implemented in Xtext can be.

    The objective is to introduce the audience to Xtend language and how it can be used to write cleaner code against any Java APIs and solve day-to-day challenges in much better ways.

     
  • 1 favorite_border DivyaTheja Pachipula 4forum

    A to Z of Internationalizing your Eclipse and testing challenges

    45 mins
    Talk
    Beginner

    "A person who speaks two languages is called bilingual. A person who speaks three languages is called trilingual. So what do you call someone who speaks/understands any language? ..called Multilingual" as such products called globalized products. Today, providing a software product solely in English is no longer acceptable from a usability, quality, marketing, and in some cases, legal standpoint. Enabling your product for the world market simply makes product reachable to all.

     

     
  • 2 favorite_border Venali Sonone 6forum

    Chatterbot: Computing Machinery and Artificial Intelligence

    Venali Sonone
    Venali Sonone
    Diksha Gurupawar
    Diksha Gurupawar
    schedule 3 months ago
    Sold Out!
    45 mins
    Tutorial
    Intermediate

    "In artificial intelligence machines are made to behave in wondrous ways, often sufficient to dazzle even the most experienced observer. But once a particular program is unmasked, once its inner workings are explained its magic crumbles away; it stands revealed as a mere collection of procedures.The observer says to himself, "I could have written that". With that thought he moves the program in question from the shelf marked "intelligent", to that reserved for curios. The object of this paper is to cause just such a re-evaluation of the program about to be "explained". Few programs ever needed it more."

    A chatterbot is a computer program which conducts a conversation via auditory or textual methods. Such programs are often designed to convincingly simulate how a human would behave as a conversational partner, thereby passing the Turing test. Chatterbots are typically used in dialog systems for various practical purposes including customer service or information acquisition. Some chatterbots use sophisticated natural language processing systems, but many simpler systems scan for keywords within the input, then pull a reply with the most matching keywords, or the most similar wording pattern, from a database.

    Usage in dialogue systems | Chatterbots are often integrated into the dialog systems of, for example, automated online assistants, giving them the ability of, for example, small talking or engaging in casual conversations unrelated to the scopes of their primary expert systems.

    Large companies such as Lloyds Banking Group, Royal Bank of Scotland, Renault and Citroën are now using automated online assistants instead of call centres with humans to provide a first point of contact.

    A typical AI Chatterbot can be efficiently implemented in Java using Eclipse environment and it is fascinating how little code is needed to be produced so as to get one started on creating on AI Chatbot. This talk elaborates on AI techniques and Chatbot

    Workshop:

    The hands-on tutorial on creating your very own AI chatbot. Have your eclipse working? No worried then as that is sole thing you need for your AI chat bot. Let's get writing and interacting with your creation!

    This talk will focus on :

    1. A brief introduction to Artificial Intelligence.
    2. Introduction to AI Chatter bots.
    3. Tutorial on AI Chatter bots.
    4. Explain techniques and terminology of AI Chatter bots




     
  • 3 favorite_border Sravan Kumar Lakkimsetti 6forum

    Release Engineering at Eclipse

    Sravan Kumar Lakkimsetti
    Sravan Kumar Lakkimsetti
    schedule 5 months ago
    Sold Out!
    20 mins
    Talk
    Intermediate

    Have you ever wondered how the results automatically appear in the website? This talk will take you through this journey from the code to the results –the multi-stage, multi-tech release engineering process internals.

    There two different streams producing three different regular builds ( not taking into account the special P and Y) with the final bits running four different platforms making it a gruesome 32 hour journey optimized by parallelization. This process has four pipelined stages, with each stage driven by separate owners – one of them being Maven-Tycho configuration and the rest being a combination of shell Scripts, Ant, Junit in sync with multiple Hudson servers (HIPP).

    To give a peek into the stages : The first stage has private as well as publicly visible parts, using two stage cloning with bare bones and normal git repos owned by Scripts. Second Stage, owned by Maven-Tycho, is responsible for three maven-tycho builds. This output feeds into the next phase, owned by shell-scripts, which does a few things resulting in a transient pseudo-private download zone which again feeds into the last stage owned by Hudson-Ant-Junit Config and is responsible for actual firing of the tests in multiple platforms. Finally you have the publicly viewable html based downloads and results.

     
  • 2 favorite_border Pradeep Balachandran 5forum

    Cloud development using Eclipse

    Pradeep Balachandran
    Pradeep Balachandran
    schedule 5 months ago
    Sold Out!
    20 mins
    Demonstration
    Intermediate

    Eclipse IDE is ubiquitous and the IDE of choice for application development no matter whether you are developing in Java/JEE or Python or Ruby or PHP - Eclipse IDE has a flavour that suits your taste. In recent times, the landscape of applications have undergone a significant change. More and more applications are developed by composing services and are deployed on specialized "Cloud" environments known as "Platform as a Service" - PaaS for short. 

    In this talk, we take a look at the various tools available in Eclipse Open Source ecosystem for developing applications for the cloud environment. We will traverse the journey of an app from conception to deployment. We will cover an online store application as an example. This talk will cover the tools that are best suited for each phase of the application development life-cycle - planning, work break down, coding, building and deployment. The tools include Eclipse Orion, Eclipse Tools for Cloud Foundry, Eclipse Tools for Bluemix, GitHub. We will also look at enabling continuous deployment using this tool set - practicing DevOps in true sense.

     
  • 3 favorite_border Vikas Chandra 2forum

    Evolving APIs and plug-in versions using PDE & More !

    Vikas Chandra
    Vikas Chandra
    schedule 5 months ago
    Sold Out!
    20 mins
    Talk
    Beginner

    An API is a way for services and programs to communicate with each other through a
    documented interface. It defines “contracts” for information exchange between programs. But over time,
    an API needs to evolve while maintaining the contract compatibility. In some circumstance,
    breaking changes has to be made and the clients of the API need to adapt effectively.

    For Java applications, there are some ground rules for evolving interface, classes and all other
    API elements. In eclipse, PDE tools provide most of the assistance needed for the developer to evolve
    APIs without having to say "I just added this. How did that break? "

    As plugins evolve, they must maintain the compatibility as far as possible. The nature of changes
    to the plugin should also be reflected in the plugin versioning. PDE's version management tools
    help developers to put the versioning correctly.

    In the talk, I will cover ground rules for API evolution and how PDE helps a developer in that.
    Also I will cover versioning guidelines and PDE's support for version management. I will also
    talk about other useful aspects of PDE.