
Dhaval Dalal
Software Artisan
Calixir Consultants Pvt. Ltd.
location_on India
Member since 4 years
Dhaval Dalal
Specialises In
I currently work at Calixir Consultants Pvt. Ltd, Mumbai. Enjoy software design, music, soft-skills development and food. I like to experiment and learn experientially. I also enjoy exploring languages (both computer and spoken) and try to find expression for the same thought in different languages.
-
keyboard_arrow_down
Booting into FP
90 Mins
Tutorial
Beginner
This session is an whirlwind tour of the FP land and is primarily meant for developers wanting to embark on their functional programming journey. We will use Java to understand most of the concepts, however, where it falls short to explain certain concepts, we will use Scala or Groovy or Clojure or even Haskell to demonstrate it. Starting with the basics - introducing the concepts with examples, we will evolve our understanding to take the mystery out of the monads (hopefully!)
-
keyboard_arrow_down
Make your program spicy - Currying and Partial Function Application (PFA)
45 Mins
Demonstration
Beginner
In this session, we will look Currying and Partial Function Application (PFA) in Functional Programming. Languages like Clojure don't have currying, but PFA, where has Haskell currying and not PFA, whereas Scala has both, Groovy wants you to call methods like curry() and rcurry(). In OO paradigm, we use DI (dependency Injection) and we will see how this is automatically subsumed using Currying and PFA.
-
keyboard_arrow_down
Make your program spicy - Currying and Partial Function Application (PFA)
45 Mins
Demonstration
Beginner
In this session, we will look Currying and Partial Function Application (PFA) in Functional Programming. Languages like Clojure don't have currying, but PFA, where has Haskell currying and not PFA, whereas Scala has both, Groovy wants you to call methods like curry() and rcurry(). In OO paradigm, we use DI (dependency Injection) and we will see how this is automatically subsumed using Currying and PFA.
-
keyboard_arrow_down
Destructuring and Pattern Matching
45 Mins
Demonstration
Beginner
In this session, we will look De-structuring and Pattern Matching in Functional Programming. What exactly each is and how differently it gets implemented in various languages like languages like Scala, Clojure, Haskell, Erlang, JavaScript. In some languages like Haskell and Scala, it takes a unified form, whereas in languages like Clojure, the two are different
In OO paradigm, this is takes the form of Double-Dispatch or n-Dispatch and usually gets implemented as the famous (or infamous) Visitor Pattern. We will look at how this pattern is made defunct in FP paradigm using Pattern Matching.
-
keyboard_arrow_down
The Clojuring: (hit rubber road)
Ravindra JajuChief Idea SeekerGyaanwebDhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.schedule 2 years ago
Sold Out!480 Mins
Workshop
Intermediate
distance(clojure-code, production)→ 0
Clojure is capable of leveraging everything your JVM provides. And you are convinced of the benefits this LISP brings to your productivity. In this workshop, we target bridging the gap between your expressive and beautiful Clojure code, and the huge, daunting world of the Enterprise. With some small, helpful steps.
We'll specifically target
- Going beyond the linear flows - making core.async practical
- Confidence building measures - Clojure spec
- Demystifying the wormhole - JVM interop
- Practical tidbits - Introducing Clojure to your existing apps
- Graduating - Build tooling and publishing for both library and standalone application use-cases
-
keyboard_arrow_down
Array-oriented Functional Programming
Aaron W HsuComputer ScientistIndiana UniversityDhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.schedule 2 years ago
Sold Out!90 Mins
Workshop
Beginner
APL is the original functional programming language, the grand-daddy, the Godfather, and the old workhorse. But don't let Grandpa's age fool you. APL programmers have been leveraging the use of functional programming with arrays long before it was cool to be chasing pointers in an ADT using statically typed pattern matching, and they've refined their own style and approach to getting the most from a "functional paradigm."
In this workshop, you will have the chance to spend some time thinking like a functional array programmer. What makes it different? How does the code look at the end? What thought process do you go through to get there? Get a chance to play around with some classic problems and try solving them "the APL way."
Taijiquan Classics say, "Four ounces deflects a thousand pounds."
APLers might say instead, "Fifty characters solve a thousand problems."
-
keyboard_arrow_down
Code Jugalbandi - Exploring Concurrency
Dhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.Morten KrombergCXODyalogRavindra JajuChief Idea SeekerGyaanwebschedule 2 years ago
Sold Out!45 Mins
Demonstration
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 (http://codejugalbandi.org) to see how the solution looks using different programming languages. This time the focus of Code Jugalbandi will be on exploring concurrency models in different languages. Functional Programming has made programming concurrency easier as compared to imperative programming. For deeper perspective on Code Jugalbandi, check out http://codejugalbandi.org/#essence-of-code-jugalbandi
-
keyboard_arrow_down
Code Jugalbandi
Dhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.Morten KrombergCXODyalogschedule 3 years ago
Sold Out!45 Mins
Demonstration
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.This time the focus of code jugalbandi will be on solutioning in different paradigms - object-oriented or functional programming and array-oriented paradigms.
During the session, Morten and Dhaval will take turns at coding the same problem using different languages and paradigms. There would be multiple such rounds during the Jugalbandi.
-
keyboard_arrow_down
Live Code Jugalbandi
Naresh JainFounderXnsioDhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.schedule 5 years 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. -
keyboard_arrow_down
DRYing to Monads in Java8
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.
-
keyboard_arrow_down
The Tao of Transformation
Dhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.Naresh JainFounderXnsioschedule 5 years 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.
-
keyboard_arrow_down
The Tao of Transformation
Dhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.Naresh JainFounderXnsioschedule 6 years 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.
-
keyboard_arrow_down
Code Jugalbandi
Dhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.Ryan LemmerProgrammer, code-coachIndependent consultant, Cape Townschedule 6 years ago
Sold Out!60 Mins
Demonstration
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, Dhaval and Ryan will take turns at coding the same problem using different languages and paradigms. There would be multiple such rounds during the Jugalbandi. -
No more submissions exist.
-
No more submissions exist.