
Shashi Gowda
grad student
Julia Language
location_on India
Member since 9 years
Shashi Gowda
Specialises In
Graduate student
-
keyboard_arrow_down
Julia - A Lisp for Fast Number Crunching
Viral B. ShahCo-inventor of JuliaJulia Computing Inc.Shashi Gowdagrad studentJulia Languageschedule 7 years 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:
- 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.
- 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.
-
keyboard_arrow_down
Julia - A Lisp for Fast Number Crunching
Shashi Gowdagrad studentJulia LanguageViral B. ShahCo-inventor of JuliaJulia Computing Inc.schedule 8 years ago
Sold Out!240 Mins
Workshop
Beginner
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:
- 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.
- 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.
(I will be presenting this workshop along with Viral B Shah - co-creator of Julia)
-
keyboard_arrow_down
Escher.jl - Functional Reactive Web without compiling to JavaScript
45 Mins
Talk
Beginner
Escher.jl is a Julia package designed to give anyone the power to create sophisticated web-based UIs that are driven by data on server and inputs from the user. Escher is based on the principles of denotative programming - denotations of UI components (called Virtual DOM nodes) are handed off to the browser to be rendered. The result is a framework that abstracts the capabilities of CSS, JavaScript and HTML elements into a single consistent library. Interaction in Escher is done via Reactive.jl - a port of Elm's signal library. In this talk I will explain the inner workings of this Signal library, and of Escher and show how all the pieces fit together to form a convenient functional framework for full-stack web development.
-
keyboard_arrow_down
What can you do with Virtual DOM on the server?
45 Mins
Demonstration
Beginner
Facebook's React pioneered the idea of the Virtual DOM - a clever trick which resulted in a framework that supports a declarative programming style, allows pleasant modularity, and surprising efficiency. This talk will explore the ability to represent a web application as the Virtual DOM on the server side. The Escher.jl Julia package is attempt to implement these ideas. Escher introduces two twists in the usual Virtual DOM story:1. Extend the Virtual DOM idea to HTML5 Custom Elements. In Escher, things like event listeners, entities that send messages over web sockets are custom elements. You can attach these to other elements to make them behave in interesting ways. Escher also comes out-of-the box with a rich library of pure functions that result in DOM nodes. These DOM nodes address various needs: Markdown, Vector Graphics (via Compose), Plots (via Gadfly), LaTeX, Layouts, Typography, Styles, Input Widgets, Clickable and Keyboard behaviors, even pages, tabs, menus, slideshows are all supported out-of-the box. This is done using Escher's custom elements (mostly the bits that support FRP) and the Polymer library (everything else, pretty much). This library is entirely functional, and deals only with immutable values.2. Represent DOM on the server side: The Patchwork.jl package provides the ability to represent DOM on the server. It is essentially a mirror of a VDom node in virtual-dom - a pure JavaScript Virtual DOM library by Matt Esch. Escher sends the browser a JSON formatted Virtual DOM, and subsequently, sequences of patches sent as the UI needs to change.Escher works seamlessly with Reactive.jl - an FRP library derived from the Elm language's Signal library written for Julia. The result is a strangely beautiful pure Julia web programming experience which lets you do beautiful and bold visualizations of data, write interactive / explorable explanations, and teach better. -
keyboard_arrow_down
Functional Reactive UIs with Elm
90 Mins
Tutorial
Beginner
Code used during the talk: https://github.com/shashi/fuconf-talk
Slides: https://docs.google.com/presentation/d/16Xfqd-xU8y2JEN0TIcacDoYnp0b5-W7ESDB5v1SmcXs/edit#slide=id.pElm is a strongly typed functional reactive programming (FRP) language that compiles to HTML, CSS, and Javascript. In Elm, the Signal type represents a time-varying value--things like mouse position, keys pressed, current time are signals. With Signals, one can write terse code that is isomorphic to a dataflow diagram of the app. The code hence feels natural and is 100% callback free. All this, with powerful type inference.
This talk is an introduction to FRP. It explores functionally composing graphics and UIs, and creating interactions and animations with the Signal type. There will also be an overview of Elm’s execution mechanism and the time traveling debugger: a consequence of Elm's purely functional approach.
While instructive, it will be good fun too, in the spirit of Elm.
-
No more submissions exist.
-
No more submissions exist.