An overview of Functional Programming and Clojure, helping you understand the importance of minimising side effects and walking through examples of functional programming concepts.
Get into Functional Programming with ClojureJohn Stevenson
A brief guide on how to think in the way of Functional Programming, using Clojure as the example code.
Covers the main concepts and abstractions within Functional Programming & Clojure
Presented at several conferences and meetup events through 2016, with a video captured via GoPro at CeBIT Developer world 2016 on youtube at:
https://www.youtube.com/watch?v=mEfqULqChZs
This document discusses functional programming with Clojure. It explains why functional programming aims to eliminate side effects by making functions pure. Clojure allows for functional programming through features like immutable persistent data structures, higher order functions, recursion with tail call optimization, and lazy evaluation. Concurrency in Clojure is easier due to immutability, persistent data structures, and software transactional memory. The document provides examples of building web applications in Clojure using Ring, Compojure, and Hiccup. It also discusses building client-side apps with ClojureScript. Resources for learning Clojure like books, websites, and communities are mentioned.
How the Go language can be used to implement a version of the Actor Model for concurrent programming.
Talk given at the Golang UK conference, August 2016
Video: https://www.youtube.com/watch?v=yCbon_9yGVs
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011Nick Sieger
This document summarizes a presentation on using JRuby and Ruby on Rails for web application development. It discusses how JRuby allows Ruby code to drive Java, embed Ruby in Java applications, and compile Ruby to Java bytecode. Rails is presented as a dynamic web framework that uses conventions over configuration and opinionated defaults. The document provides examples of common Rails features like scaffolding, models, controllers and views. It also outlines how to deploy Rails applications as WAR files or to cloud platforms using JRuby.
- Test Driven Development (TDD) uses JUnit to write test cases before writing code to remove fear factors and clearly depict what the code is doing.
- The three steps of TDD are Red (a failed test case), Green (the test passes), and Refactor (change code to meet design principles).
- An example walks through writing tests for a Book class, making the tests fail, making them pass, and refactoring the code using TDD principles.
This document discusses Java's Fork Join framework for parallel processing on multicore systems. It introduces the history of single-core versus multicore processing. The Fork Join framework allows dividing problems into smaller sub-problems ("forking") that can execute concurrently on different cores, with the ability to join results together. It uses a ForkJoinPool that implements work-stealing to efficiently schedule many small tasks across available cores. Examples include summing the elements of an array in parallel.
Functional programming with Ruby - can make you look smartChen Fisher
Functional programming can make you look smart and others feel stupid. Learn how with Ruby
code can be found here:
https://github.com/chenfisher/functional-programming-with-ruby
Youtube:
https://www.youtube.com/watch?v=Qzoh8w4OPtU
CoffeeScript by Example is a document that provides 7 examples of using CoffeeScript. It summarizes CoffeeScript features like functions defined with ->, jQuery integration, string interpolation, comprehensions, lexical scoping, classes and objects, and function binding. It also discusses unit testing CoffeeScript code with Jasmine and spying with Sinon.js. Resources for learning more about CoffeeScript, related tools like Jasmine and Backbone.js, and the presenter's contact information are provided.
Nick Sieger JRuby Concurrency EMRubyConf 2011Nick Sieger
This document discusses concurrency in JRuby and presents several approaches for managing concurrent operations, including Java's java.util.concurrent utilities, Jetlang fibers and channels, and the Akka actor framework. It notes some challenges with using green threads in JRuby due to shared mutable state and provides examples demonstrating thread safety issues and solutions using these other concurrency models.
The fork/join framework, which is based on the ForkJoinPool class, is an implementation of the Executor interface. It is designed to efficiently run a large number of tasks using a pool of worker threads. A work-stealing technique is used to keep all the worker threads busy, to take full advantage of multiple processors
This document discusses Clojure, a dialect of Lisp that runs on the Java Virtual Machine. It can be used to build web applications and interfaces with Java code and libraries. Clojure allows developing web applications that can run on platforms like Google AppEngine by leveraging Java and its capabilities for the web and cloud. Common Lisp is also discussed as another Lisp dialect used to build web applications using libraries like SBCL and Hunchentoot.
This document discusses using Jackson annotations in Mule ESB to convert an object to JSON. It describes creating a Java class with fields mapped to JSON properties using @JsonProperty annotations. Without these annotations, there would be an error during conversion since the field names would not match the JSON property names. The example shows annotating the fullName, fullSurname, and job fields to map to the "name", "surname", and "profession" JSON properties respectively. This allows the object to then be successfully converted to JSON.
Building Fast, Modern Web Applications with Node.js and CoffeeScriptroyaldark
The slides for a talk I gave at the Bits & Bytes computer science talk series at the University of Minnesota Morris in October 2013. Video of the talk is available here: http://www.kaltura.com/tiny/4lg1e
This presentation gives a brief overview of why and how many modern websites are built using Node.js and CoffeeScript. Using the plethora of libraries available for Node, I show how to quickly and easily develop a website with automatic server-client syncing which scales and can handle thousands of concurrent connections.
The document summarizes the key features and timeline of Java 7 including:
- Project Coin which introduced features like strings in switch statements, binary literals, and try-with-resources.
- Improvements to NIO including the java.nio.file package and WatchService API.
- Support for dynamic languages through invokedynamic and method handles.
- Other additions such as URLClassLoader.close(), utility methods in java.util.Objects, and a lightweight fork/join framework.
- The expected timeline which had Java 7 reaching general availability in July 2011 and future plans for Java 8 including lambda expressions and modularity.
Declarative JavaScript concepts and implemetationOm Shankar
Declarative style JavaScripting and the curious case of underscore.js.
- Presented at BangaloreJS Eleventh meetup: http://bangalorejs.org/eleventh.html
- Oslo.versionedobjects is an object model used in Nova to version and serialize objects for remote procedure calls (RPCs). Each change is versioned to allow backwards-compatible evolution.
- Objects define fields and methods, with fields serialized independently of code. Versioning allows controlled schema changes without database changes.
- Objects can be remotely called via an indirection service, with copies sent and returned. This decouples services from databases, enabling independent upgrades.
Javascript basics for automation testingVikas Thange
This document provides an overview of basic JavaScript examples and concepts. It covers topics such as writing JavaScript code, variables, conditional statements, functions, loops, events, and error handling. For each topic, it provides short code snippets to demonstrate the concept. It concludes by referencing W3Schools as a resource and thanking the reader.
The document discusses how design patterns from the "Gang of Four" book can be implemented in Kotlin. It provides examples of how common design patterns like Singleton, Builder, Proxy, Iterator, State, Strategy, Deferred Value, Fan Out, and Fan In can be achieved idiomatically in Kotlin using features like objects, functions as first-class citizens, sealed classes, and coroutines. It argues that while the patterns still work in Kotlin, the language often provides better alternatives or builds certain patterns directly into the language itself.
This document discusses how several classic design patterns can be implemented in Kotlin, including Singleton, Builder, Proxy, Iterator, State, Strategy, Deferred Value, Fan Out, and Fan In. It notes that Kotlin has many patterns built-in as language features or standard library functions. For example, Singleton can be a simple object in Kotlin, Builder can use default parameters and apply(), State can use sealed classes, and Strategy can replace functions directly. It also discusses how Kotlin's coroutine library can implement patterns like Deferred Value, Fan Out and Fan In using channels.
This document provides an overview of advanced JavaScript concepts beyond jQuery, including traversing the DOM, element objects, functions, native objects, closures, manipulating data with array methods, prototypal inheritance, revealing modules, and function composition. It discusses using vanilla JavaScript instead of jQuery for DOM manipulation and events. It also explains JavaScript functions, closures, and how functions are first-class citizens that can be assigned to variables and passed as arguments. The document outlines prototypal inheritance in JavaScript and alternative patterns like factories and composition. It provides examples for working with arrays, closures, and building reusable objects.
Slides for my live-coding talk. The code is available on GitHub (https://github.com/miciek/akka-sharding-example).
Please follow the README file provided in GitHub repo if you want to follow the examples.
Fun with Functional Programming in ClojureCodemotion
"Fun with Functional Programming in Clojure" by John Stevenson.
Clojure is a simple, powerful and fun language. With a small syntax its quick to learn, meaning you can focus on functional design concepts and quickly build up confidence. There are also a wide range of Clojure libraries to build any kind of apps or services quickly. With a focus on Immutability, Persistent data structures & lazy evaluation, you will quickly feel confident about the Functional Programming (FP) approach to coding. Discover Clojure in action as we write & evaluate Clojure using the REPL (interactive run-time environment), giving instant feedback on what the code is doing.
Thinking Functionally - John Stevenson - Codemotion Rome 2017Codemotion
The rise in AI, machine learning & data lakes is driving greater use of Functional Programming, so how well do you know the concepts? We will discuss immutable data, functional composition, polymorphism, higher-order functions, pattern matching & recursion. These concepts helps the developer create performant, complex system with simple building blocks, using parallelism to make applications & services more scalable. Using Clojure as live code examples, you will understand the important functional concepts & patterns that you can apply to your own preferred languages.
This document discusses Java's Fork Join framework for parallel processing on multicore systems. It introduces the history of single-core versus multicore processing. The Fork Join framework allows dividing problems into smaller sub-problems ("forking") that can execute concurrently on different cores, with the ability to join results together. It uses a ForkJoinPool that implements work-stealing to efficiently schedule many small tasks across available cores. Examples include summing the elements of an array in parallel.
Functional programming with Ruby - can make you look smartChen Fisher
Functional programming can make you look smart and others feel stupid. Learn how with Ruby
code can be found here:
https://github.com/chenfisher/functional-programming-with-ruby
Youtube:
https://www.youtube.com/watch?v=Qzoh8w4OPtU
CoffeeScript by Example is a document that provides 7 examples of using CoffeeScript. It summarizes CoffeeScript features like functions defined with ->, jQuery integration, string interpolation, comprehensions, lexical scoping, classes and objects, and function binding. It also discusses unit testing CoffeeScript code with Jasmine and spying with Sinon.js. Resources for learning more about CoffeeScript, related tools like Jasmine and Backbone.js, and the presenter's contact information are provided.
Nick Sieger JRuby Concurrency EMRubyConf 2011Nick Sieger
This document discusses concurrency in JRuby and presents several approaches for managing concurrent operations, including Java's java.util.concurrent utilities, Jetlang fibers and channels, and the Akka actor framework. It notes some challenges with using green threads in JRuby due to shared mutable state and provides examples demonstrating thread safety issues and solutions using these other concurrency models.
The fork/join framework, which is based on the ForkJoinPool class, is an implementation of the Executor interface. It is designed to efficiently run a large number of tasks using a pool of worker threads. A work-stealing technique is used to keep all the worker threads busy, to take full advantage of multiple processors
This document discusses Clojure, a dialect of Lisp that runs on the Java Virtual Machine. It can be used to build web applications and interfaces with Java code and libraries. Clojure allows developing web applications that can run on platforms like Google AppEngine by leveraging Java and its capabilities for the web and cloud. Common Lisp is also discussed as another Lisp dialect used to build web applications using libraries like SBCL and Hunchentoot.
This document discusses using Jackson annotations in Mule ESB to convert an object to JSON. It describes creating a Java class with fields mapped to JSON properties using @JsonProperty annotations. Without these annotations, there would be an error during conversion since the field names would not match the JSON property names. The example shows annotating the fullName, fullSurname, and job fields to map to the "name", "surname", and "profession" JSON properties respectively. This allows the object to then be successfully converted to JSON.
Building Fast, Modern Web Applications with Node.js and CoffeeScriptroyaldark
The slides for a talk I gave at the Bits & Bytes computer science talk series at the University of Minnesota Morris in October 2013. Video of the talk is available here: http://www.kaltura.com/tiny/4lg1e
This presentation gives a brief overview of why and how many modern websites are built using Node.js and CoffeeScript. Using the plethora of libraries available for Node, I show how to quickly and easily develop a website with automatic server-client syncing which scales and can handle thousands of concurrent connections.
The document summarizes the key features and timeline of Java 7 including:
- Project Coin which introduced features like strings in switch statements, binary literals, and try-with-resources.
- Improvements to NIO including the java.nio.file package and WatchService API.
- Support for dynamic languages through invokedynamic and method handles.
- Other additions such as URLClassLoader.close(), utility methods in java.util.Objects, and a lightweight fork/join framework.
- The expected timeline which had Java 7 reaching general availability in July 2011 and future plans for Java 8 including lambda expressions and modularity.
Declarative JavaScript concepts and implemetationOm Shankar
Declarative style JavaScripting and the curious case of underscore.js.
- Presented at BangaloreJS Eleventh meetup: http://bangalorejs.org/eleventh.html
- Oslo.versionedobjects is an object model used in Nova to version and serialize objects for remote procedure calls (RPCs). Each change is versioned to allow backwards-compatible evolution.
- Objects define fields and methods, with fields serialized independently of code. Versioning allows controlled schema changes without database changes.
- Objects can be remotely called via an indirection service, with copies sent and returned. This decouples services from databases, enabling independent upgrades.
Javascript basics for automation testingVikas Thange
This document provides an overview of basic JavaScript examples and concepts. It covers topics such as writing JavaScript code, variables, conditional statements, functions, loops, events, and error handling. For each topic, it provides short code snippets to demonstrate the concept. It concludes by referencing W3Schools as a resource and thanking the reader.
The document discusses how design patterns from the "Gang of Four" book can be implemented in Kotlin. It provides examples of how common design patterns like Singleton, Builder, Proxy, Iterator, State, Strategy, Deferred Value, Fan Out, and Fan In can be achieved idiomatically in Kotlin using features like objects, functions as first-class citizens, sealed classes, and coroutines. It argues that while the patterns still work in Kotlin, the language often provides better alternatives or builds certain patterns directly into the language itself.
This document discusses how several classic design patterns can be implemented in Kotlin, including Singleton, Builder, Proxy, Iterator, State, Strategy, Deferred Value, Fan Out, and Fan In. It notes that Kotlin has many patterns built-in as language features or standard library functions. For example, Singleton can be a simple object in Kotlin, Builder can use default parameters and apply(), State can use sealed classes, and Strategy can replace functions directly. It also discusses how Kotlin's coroutine library can implement patterns like Deferred Value, Fan Out and Fan In using channels.
This document provides an overview of advanced JavaScript concepts beyond jQuery, including traversing the DOM, element objects, functions, native objects, closures, manipulating data with array methods, prototypal inheritance, revealing modules, and function composition. It discusses using vanilla JavaScript instead of jQuery for DOM manipulation and events. It also explains JavaScript functions, closures, and how functions are first-class citizens that can be assigned to variables and passed as arguments. The document outlines prototypal inheritance in JavaScript and alternative patterns like factories and composition. It provides examples for working with arrays, closures, and building reusable objects.
Slides for my live-coding talk. The code is available on GitHub (https://github.com/miciek/akka-sharding-example).
Please follow the README file provided in GitHub repo if you want to follow the examples.
Fun with Functional Programming in ClojureCodemotion
"Fun with Functional Programming in Clojure" by John Stevenson.
Clojure is a simple, powerful and fun language. With a small syntax its quick to learn, meaning you can focus on functional design concepts and quickly build up confidence. There are also a wide range of Clojure libraries to build any kind of apps or services quickly. With a focus on Immutability, Persistent data structures & lazy evaluation, you will quickly feel confident about the Functional Programming (FP) approach to coding. Discover Clojure in action as we write & evaluate Clojure using the REPL (interactive run-time environment), giving instant feedback on what the code is doing.
Thinking Functionally - John Stevenson - Codemotion Rome 2017Codemotion
The rise in AI, machine learning & data lakes is driving greater use of Functional Programming, so how well do you know the concepts? We will discuss immutable data, functional composition, polymorphism, higher-order functions, pattern matching & recursion. These concepts helps the developer create performant, complex system with simple building blocks, using parallelism to make applications & services more scalable. Using Clojure as live code examples, you will understand the important functional concepts & patterns that you can apply to your own preferred languages.
Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...Codemotion
Clojure is a simple, powerful and fun language. With a small syntax its quick to learn, meaning you can focus on functional design concepts and quickly build up confidence. There are also a wide range of Clojure libraries to build any kind of apps or services quickly. With a focus on Immutability, Persistent data structures & lazy evaluation, you will quickly feel confident about the Functional Programming (FP) approach to coding. Discover Clojure in action as we write & evaluate Clojure using the REPL (interactive run-time environment), giving instant feedback on what the code is doing.
This document provides an introduction to the Clojure programming language. It discusses Clojure's roots in functional programming concepts like lambda calculus. It also covers Clojure's features like being dynamically typed, Java interoperability, immutability, and support for concurrency through mechanisms like atoms, refs, agents, and vars. The document is presented by Renzo Borgatti and provides an overview of Clojure along with examples to demonstrate its capabilities.
Progscon 2017: Taming the wild fronteer - Adventures in ClojurescriptJohn Stevenson
This document provides an overview of Clojurescript presented by John Stevenson. It discusses how Clojurescript provides a pragmatic approach to functional programming using immutable data structures and pure functions. It also describes how Clojurescript interfaces with popular JavaScript frameworks like React and how it can help manage complexity and state changes in web applications. Additionally, the document provides examples of Clojurescript libraries and tools and discusses ways to get started with the Clojurescript environment and ecosystem.
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...Codemotion
Front-end development has an amazing assortment of libraries and tools, yet it can seem very complex and doest seem much fun. So we'll live code a ClojureScript application (with a bit of help from Git) and show how development doesn't have to be complex or slow. Through live evaluation, we can build a reactive, functional application. Why not take a look at a well designed language that uses modern functional & reactive concepts for building Front-End apps. You are going to have to trans-pile anyway, so why not use a language, libraries and tooling that is bursting with fun to use.
Introduction to Functional Reactive Web with ClojurescriptJohn Stevenson
This document provides an introduction to functional reactive web development using ClojureScript. It discusses topics like functional programming concepts like pure functions and eliminating side effects. It also covers popular ClojureScript frameworks like Reagent, Om, and Rum that provide interfaces to React. The document demonstrates ClojureScript tooling like Figwheel and interactive development. It provides an overview of concepts like JSX and React basics. Finally, it advertises the benefits of ClojureScript for building functional web applications with immutability and composable functions.
Brown bag presentation on Clojure, given on March 8th 2012.
Accompanying code available at:
https://github.com/chrisriceuk/clojure-brown-bag/
The document provides an introduction to Clojure programming concepts including its data types, basic functions, recursion, and functional programming principles. It discusses Clojure's immutable data structures and how to write recursive functions that operate on sequences. It also covers how functional programming avoids state, makes testing easier, and supports concurrency, while acknowledging it is an unfamiliar paradigm for many programmers.
This document provides an overview of the Erlang programming language. It discusses that Erlang is a general purpose, concurrent, functional programming language developed at Ericsson for building distributed, fault-tolerant systems. It notes some of Erlang's key uses in telecommunications, banking, messaging, and e-commerce where high-availability is required. The document also summarizes that Erlang uses processes instead of threads to enable concurrency, and that it relies on recursion rather than loops for iteration due to its functional nature.
Getting Started with Ansible - Jake.pdfssuserd254491
The document provides an introduction and overview of Ansible automation. It discusses what Ansible is, how it works, and how to get started using it. The key points are:
- Ansible is an open source automation tool that allows users to automate application deployments, configuration management, and workflow orchestration across multiple machines.
- It uses YAML files called playbooks to define automation tasks. Playbooks are executed across machines defined in an inventory file using SSH or WinRM with no agents required.
- Getting started involves using ad-hoc commands to run simple tasks, then moving to playbooks to define reusable automation. Playbooks use a simple YAML syntax and can leverage variables, conditionals, and roles.
Programming involves instructing a computer using a programming language. There are different types of loops in programming including for, while, and repeat loops. A for loop repeats a block of code a fixed number of times based on a counting variable. It has three expressions for initialization, condition, and increment. A switch statement provides a clear way to select one of many code blocks to execute based on the value of a variable.
This document provides an overview of the Clojure programming language. It discusses that Clojure is a hosted language that runs on the JVM, CLR and JavaScript runtime. It is a functional, immutable and concurrent language. Clojure allows easy interoperability with Java libraries and supports parallel processing. As a Lisp dialect, Clojure code has homoiconic properties where code is represented as data. This overview introduces Clojure concepts like atoms, refs, agents and STM for concurrency. It also discusses Clojure development tools and resources for learning Clojure.
This document provides an introduction to the Clojure programming language. It discusses Clojure's four main aspects: functional programming, its basis in Lisp, running on the Java Virtual Machine, and support for concurrency. It provides examples and explanations of Clojure's functional style, homoiconic Lisp syntax, interoperability with Java, and approaches for managing concurrent state through vars, refs, atoms and agents. It also recommends tools for getting started with Clojure and links to additional learning resources.
Understanding Framework Architecture using Eclipseanshunjain
Talk on Framework architectures given at SAP Labs India for Eclipse Day India 2011 - Code attached Here: https://sites.google.com/site/anshunjain/eclipse-presentations
This document provides examples and explanations of common functions for lists, tuples, dictionaries, and sets in Python. It describes functions like sort(), append(), extend(), index(), max(), min(), len() for lists. For tuples it covers functions like cmp(), len(), max(), min(), tuple(), sum(). Dictionary functions discussed include clear(), copy(), fromkeys(), get(), items(), keys(), pop(), popitem(), setdefault(), update(), values(), cmp(). Set functions covered are add(), clear(), copy(), difference(), difference_update(), discard(), intersection(), intersection_update(), isdisjoint(), issubset(), issuperset(), pop(), remove(), symmetric_difference(), symmetric_difference_update(), union(), update().
This document discusses Android fragments. It defines what fragments are, how to create and add them to activities, and how fragments communicate with activities. Key points include:
- Fragments allow reusing UI components and changing activity appearance at runtime.
- To create a fragment, extend the Fragment class and implement fragment callbacks like onCreateView().
- Fragments have their own lifecycle methods separate from activities.
- Activities can display multiple fragments by implementing a fragment callback interface to communicate between them.
- Layout qualifiers allow activities to dynamically change their fragment layout for different devices like phones vs tablets.
Behavior driven development (BDD) is an agile software development process that encourages collaboration between developers, QA and non-technical or business participants in a software project. It helps align team goals to deliver value to business stakeholders. BDD has advantages like improving communication, early validation of requirements, and automated acceptance tests. However, it also requires extra effort for writing feature files and scenarios. BDD may not be suitable for all projects depending on their nature and requirements. Overall, when implemented effectively, BDD can help deliver working software that meets business needs.
Confessions of a developer community builderJohn Stevenson
Slides from my talk on building developer communities at London Software Craftsmanship conference 5th & 6th October.
I share my experiences of interacting with the software development community over the last 22 years.
Discussion includes what kinds of events you could run in your community and how to get your community started.
Discussing the challenges of communication that affect us all and techniques to help you be more effective
- Six Thinking Hats
- Thinking Fast & Slow
- Cognitive bias / confirmation bias
This talk was last given at DevRelCon in London, December 2016.
Helping others learn Clojure can be a little different to how you learnt. What makes sense for one person may not make relate to another persons experiences. This presentation gives a brief introduction to guiding people into Clojure.
This presentation was first given at Clojure Remote 2016
Git and github - Verson Control for the Modern DeveloperJohn Stevenson
An introduction to Git and Github, tools for distributed version control that give an easy to use and highly collaborative approach to version code and configuration.
Trailhead live - Overview of Salesforce App CloudJohn Stevenson
This document introduces App Cloud and provides an overview of its capabilities. It discusses how App Cloud allows users to build three types of apps - productivity apps, engagement apps, and connected apps. It highlights features like Lightning, Process Builder, and Heroku that give users agility and speed in app development. App Cloud provides the infrastructure, tools, and ecosystem to build any type of app across web, mobile, and desktop. Over 5.5 million apps have been built on App Cloud to date.
This document introduces Clojure for Java developers with little Clojure experience. It discusses why Clojure is a good option, what Clojure is, its core concepts like immutability and functional programming, and how to interact with Java from Clojure. It also provides an overview of managing Clojure projects and deploying Clojure applications to the cloud.
The document introduces the Salesforce platform and provides an overview of its capabilities. It discusses how the platform can be used to build employee apps, partner apps, and customer apps. It also summarizes several tools on the platform, including Visualforce, Apex, Lightning components, Heroku, and ExactTarget. The presentation aims to demonstrate how the Salesforce platform can support innovation through clicks and code functionality.
Dreamforce14 Metadata Management with Git Version ControlJohn Stevenson
An introduction to using Git version control to manage changes in the metadata of your Salesforce Org as you develop your apps.
Your app is put into an unmanaged package, copied to your local machine with Force.com CLI and changes pushed to Github using Github for Mac/Windows client.
Heroku is a platform as a service that allows developers to deploy and scale applications without managing infrastructure. Developers can build, run, and operate applications entirely in the cloud. With Heroku, developers can focus on coding features for their apps rather than spending time on systems administration tasks like hardware provisioning, patching, backup etc. Heroku provides automatic scaling of dynos (the lightweight virtual containers that power apps on Heroku), add-ons for common services like Postgres databases and monitoring, and integrated developer tools to simplify deployment and management of cloud applications.
Developers guide to the Salesforce1 PlatformJohn Stevenson
The document is a presentation about the Salesforce1 platform. It discusses the core services available, including Chatter, analytics tools, APIs, mobile services, and social APIs. It also covers how developers can use clicks and code to build apps on the platform, integrating business logic, user interfaces, and data models. Visualforce, Apex, and the various APIs allow access to all standard and custom objects. The presentation also provides overviews of how Heroku can be used for customer-facing apps and ExactTarget for marketing automation.
Dreamforce 13 developer session: Git for Force.com developersJohn Stevenson
Git is a powerful version control tool and this presentation shows how Force.com developers can make use of Git in their projects.
Including tips and tricks, this presentation covers the core commands you need to know to use Git effectively. We also cover using Git from the Force.com IDE.
Dreamforce 13 developer session: Introduction to HerokuJohn Stevenson
An introduction to Heroku platform as a service for developers at Salesforce Dreamforce conference 2013. The presentation discusses how Heroku fits into the Salesforce platform and relates it to development with Force.com.
The presentation also shows how easy it is to get your custom application deployed on Heroku, leading to an iterative and continuous deployment approach to app development.
Introducing Heroku at the Customer Company Tour in Munich 2013. Covering the value of Heroku within the Salesforce family, especially for customer facing custom applications.
Build enterprise-ready applications using skills you already have!PhilMeredith3
Process Tempo is a rapid application development (RAD) environment that empowers data teams to create enterprise-ready applications using skills they already have.
With Process Tempo, data teams can craft beautiful, pixel-perfect applications the business will love.
Process Tempo combines features found in business intelligence tools, graphic design tools and workflow solutions - all in a single platform.
Process Tempo works with all major databases such as Databricks, Snowflake, Postgres and MySQL. It also works with leading graph database technologies such as Neo4j, Puppy Graph and Memgraph.
It is the perfect platform to accelerate the delivery of data-driven solutions.
For more information, you can find us at www.processtempo.com
Best Inbound Call Tracking Software for Small BusinessesTheTelephony
The best inbound call tracking software for small businesses offers features like call recording, real-time analytics, lead attribution, and CRM integration. It helps track marketing campaign performance, improve customer service, and manage leads efficiently. Look for solutions with user-friendly dashboards, customizable reporting, and scalable pricing plans tailored for small teams. Choosing the right tool can significantly enhance communication and boost overall business growth.
Integrating Survey123 and R&H Data Using FMESafe Software
West Virginia Department of Transportation (WVDOT) actively engages in several field data collection initiatives using Collector and Survey 123. A critical component for effective asset management and enhanced analytical capabilities is the integration of Geographic Information System (GIS) data with Linear Referencing System (LRS) data. Currently, RouteID and Measures are not captured in Survey 123. However, we can bridge this gap through FME Flow automation. When a survey is submitted through Survey 123 for ArcGIS Portal (10.8.1), it triggers FME Flow automation. This process uses a customized workbench that interacts with a modified version of Esri's Geometry to Measure API. The result is a JSON response that includes RouteID and Measures, which are then applied to the feature service record.
Key AI Technologies Used by Indian Artificial Intelligence CompaniesMypcot Infotech
Indian tech firms are rapidly adopting advanced tools like machine learning, natural language processing, and computer vision to drive innovation. These key AI technologies enable smarter automation, data analysis, and decision-making. Leading developments are shaping the future of digital transformation among top artificial intelligence companies in India.
For more information please visit here https://www.mypcot.com/artificial-intelligence
Rebuilding Cadabra Studio: AI as Our Core FoundationCadabra Studio
Cadabra Studio set out to reconstruct its core processes, driven entirely by AI, across all functions of its software development lifecycle. This journey resulted in remarkable efficiency improvements of 40–80% and reshaped the way teams collaborate. This presentation shares our challenges and lessons learned in becoming an AI-native firm, including overcoming internal resistance and achieving significant project delivery gains. Discover our strategic approach and transformative recommendations to integrate AI not just as a feature, but as a fundamental element of your operational structure. What changes will AI bring to your company?
Join the Denver Marketo User Group, Captello and Integrate as we dive into the best practices, tools, and strategies for maintaining robust, high-performing databases. From managing vendors and automating orchestrations to enriching data for better insights, this session will unpack the key elements that keep your data ecosystem running smoothly—and smartly.
We will hear from Steve Armenti, Twelfth, and Aaron Karpaty, Captello, and Frannie Danzinger, Integrate.
Online Queue Management System for Public Service Offices [Focused on Municip...Rishab Acharya
This report documents the design and development of an Online Queue Management System tailored specifically for municipal offices in Nepal. Municipal offices, as critical providers of essential public services, face challenges including overcrowded queues, long waiting times, and inefficient service delivery, causing inconvenience to citizens and pressure on municipal staff. The proposed digital platform allows citizens to book queue tokens online for various physical services, facilitating efficient queue management and real-time wait time updates. Beyond queue management, the system includes modules to oversee non-physical developmental programs, such as educational and social welfare initiatives, enabling better participation and progress monitoring. Furthermore, it incorporates a module for monitoring infrastructure development projects, promoting transparency and allowing citizens to report issues and track progress. The system development follows established software engineering methodologies, including requirement analysis, UML-based system design, and iterative testing. Emphasis has been placed on user-friendliness, security, and scalability to meet the diverse needs of municipal offices across Nepal. Implementation of this integrated digital platform will enhance service efficiency, increase transparency, and improve citizen satisfaction, thereby supporting the modernization and digital transformation of public service delivery in Nepal.
14 Years of Developing nCine - An Open Source 2D Game FrameworkAngelo Theodorou
A 14-year journey developing nCine, an open-source 2D game framework.
This talk covers its origins, the challenges of staying motivated over the long term, and the hurdles of open-sourcing a personal project while working in the game industry.
Along the way, it’s packed with juicy technical pills to whet the appetite of the most curious developers.
The Future of Open Source Reporting Best Alternatives to Jaspersoft.pdfVarsha Nayak
In recent years, organizations have increasingly sought robust open source alternative to Jasper Reports as the landscape of open-source reporting tools rapidly evolves. While Jaspersoft has been a longstanding choice for generating complex business intelligence and analytics reports, factors such as licensing changes and growing demands for flexibility have prompted many businesses to explore other options. Among the most notable alternatives to Jaspersoft, Helical Insight stands out for its powerful open-source architecture, intuitive analytics, and dynamic dashboard capabilities. Designed to be both flexible and budget-friendly, Helical Insight empowers users with advanced features—such as in-memory reporting, extensive data source integration, and customizable visualizations—making it an ideal solution for organizations seeking a modern, scalable reporting platform. This article explores the future of open-source reporting and highlights why Helical Insight and other emerging tools are redefining the standards for business intelligence solutions.
Bonk coin airdrop_ Everything You Need to Know.pdfHerond Labs
The Bonk airdrop, one of the largest in Solana’s history, distributed 50% of its total supply to community members, significantly boosting its popularity and Solana’s network activity. Below is everything you need to know about the Bonk coin airdrop, including its history, eligibility, how to claim tokens, risks, and current status.
https://blog.herond.org/bonk-coin-airdrop/
Agentic Techniques in Retrieval-Augmented Generation with Azure AI SearchMaxim Salnikov
Discover how Agentic Retrieval in Azure AI Search takes Retrieval-Augmented Generation (RAG) to the next level by intelligently breaking down complex queries, leveraging full conversation history, and executing parallel searches through a new LLM-powered query planner. This session introduces a cutting-edge approach that delivers significantly more accurate, relevant, and grounded answers—unlocking new capabilities for building smarter, more responsive generative AI applications.
Traditional Retrieval-Augmented Generation (RAG) pipelines work well for simple queries—but when users ask complex, multi-part questions or refer to previous conversation history, they often fall short. That’s where Agentic Retrieval comes in: a game-changing advancement in Azure AI Search that brings LLM-powered reasoning directly into the retrieval layer.
This session unveils how agentic techniques elevate your RAG-based applications by introducing intelligent query planning, subquery decomposition, parallel execution, and result merging—all orchestrated by a new Knowledge Agent. You’ll learn how this approach significantly boosts relevance, groundedness, and answer quality, especially for sophisticated enterprise use cases.
Key takeaways:
- Understand the evolution from keyword and vector search to agentic query orchestration
- See how full conversation context improves retrieval accuracy
- Explore measurable improvements in answer relevance and completeness (up to 40% gains!)
- Get hands-on guidance on integrating Agentic Retrieval with Azure AI Foundry and SDKs
- Discover how to build scalable, AI-first applications powered by this new paradigm
Whether you're building intelligent copilots, enterprise Q&A bots, or AI-driven search solutions, this session will equip you with the tools and patterns to push beyond traditional RAG.
Plooma is a writing platform to plan, write, and shape books your wayPlooma
Plooma is your all in one writing companion, designed to support authors at every twist and turn of the book creation journey. Whether you're sketching out your story's blueprint, breathing life into characters, or crafting chapters, Plooma provides a seamless space to organize all your ideas and materials without the overwhelm. Its intuitive interface makes building rich narratives and immersive worlds feel effortless.
Packed with powerful story and character organization tools, Plooma lets you track character development and manage world building details with ease. When it’s time to write, the distraction-free mode offers a clean, minimal environment to help you dive deep and write consistently. Plus, built-in editing tools catch grammar slips and style quirks in real-time, polishing your story so you don’t have to juggle multiple apps.
What really sets Plooma apart is its smart AI assistant - analyzing chapters for continuity, helping you generate character portraits, and flagging inconsistencies to keep your story tight and cohesive. This clever support saves you time and builds confidence, especially during those complex, detail packed projects.
Getting started is simple: outline your story’s structure and key characters with Plooma’s user-friendly planning tools, then write your chapters in the focused editor, using analytics to shape your words. Throughout your journey, Plooma’s AI offers helpful feedback and suggestions, guiding you toward a polished, well-crafted book ready to share with the world.
With Plooma by your side, you get a powerful toolkit that simplifies the creative process, boosts your productivity, and elevates your writing - making the path from idea to finished book smoother, more fun, and totally doable.
Get Started here: https://www.plooma.ink/
AI and Deep Learning with NVIDIA TechnologiesSandeepKS52
Artificial intelligence and deep learning are transforming various fields by enabling machines to learn from data and make decisions. Understanding how to prepare data effectively is crucial, as it lays the foundation for training models that can recognize patterns and improve over time. Once models are trained, the focus shifts to deployment, where these intelligent systems are integrated into real-world applications, allowing them to perform tasks and provide insights based on new information. This exploration of AI encompasses the entire process from initial concepts to practical implementation, highlighting the importance of each stage in creating effective and reliable AI solutions.
FME for Climate Data: Turning Big Data into Actionable InsightsSafe Software
Regional and local governments aim to provide essential services for stormwater management systems. However, rapid urbanization and the increasing impacts of climate change are putting growing pressure on these governments to identify stormwater needs and develop effective plans. To address these challenges, GHD developed an FME solution to process over 20 years of rainfall data from rain gauges and USGS radar datasets. This solution extracts, organizes, and analyzes Next Generation Weather Radar (NEXRAD) big data, validates it with other data sources, and produces Intensity Duration Frequency (IDF) curves and future climate projections tailored to local needs. This presentation will showcase how FME can be leveraged to manage big data and prioritize infrastructure investments.
Marketo & Dynamics can be Most Excellent to Each Other – The SequelBradBedford3
So you’ve built trust in your Marketo Engage-Dynamics integration—excellent. But now what?
This sequel picks up where our last adventure left off, offering a step-by-step guide to move from stable sync to strategic power moves. We’ll share real-world project examples that empower sales and marketing to work smarter and stay aligned.
If you’re ready to go beyond the basics and do truly most excellent stuff, this session is your guide.
Automating Map Production With FME and PythonSafe Software
People still love a good paper map, but every time a request lands on a GIS team’s desk, it takes time to create that perfect, individual map—even when you're ready and have projects prepped. Then come the inevitable changes and iterations that add even more time to the process. This presentation explores a solution for automating map production using FME and Python. FME handles the setup of variables, leveraging GIS reference layers and parameters to manage details like map orientation, label sizes, and layout elements. Python takes over to export PDF maps for each location and template size, uploading them monthly to ArcGIS Online. The result? Fresh, regularly updated maps, ready for anyone to grab anytime—saving you time, effort, and endless revisions while keeping users happy with up-to-date, accessible maps.
Artificial Intelligence Applications Across IndustriesSandeepKS52
Artificial Intelligence is a rapidly growing field that influences many aspects of modern life, including transportation, healthcare, and finance. Understanding the basics of AI provides insight into how machines can learn and make decisions, which is essential for grasping its applications in various industries. In the automotive sector, AI enhances vehicle safety and efficiency through advanced technologies like self-driving systems and predictive maintenance. Similarly, in healthcare, AI plays a crucial role in diagnosing diseases and personalizing treatment plans, while in financial services, it helps in fraud detection and risk management. By exploring these themes, a clearer picture of AI's transformative impact on society emerges, highlighting both its potential benefits and challenges.
5. The Complexity Iceberg
- @krisajenkins
● complexity is very
dangerous when hidden
● You can't know what a
function does for certain if it
has side effects
7. Pure Functions
The results of the function are purely determined by its initial output and its own code
- no external influence, a function only uses local values
- referential transparency (the function can be replaced by its value)
8. Impure Functions - side causes
The results of the function are purely determined by its initial output and its own code
- behaviour externally influenced and non-deterministic
9. Eliminating Side Effects
Functional programming is about eliminating side effects where you can,
controlling them where you can't - @krisajenkins
The features in Functional Programming come from a
desire to reduce side effects
11. Clojure / ClojureScript
A hosted language with simple interoperability with the host language
- (java.Util.Date.)
- (js/alert “Client side apps are easier in Clojure”)
15. Higher Order Functions
Functions always return a value & can be used as an argument to another function
- Chain functions over a data structure
16. Composing functions together
Example: current value of the Clojure project from the configuration file
- `slurp` in the project file, convert into a string and return the value at index 2
17. Recursion
Process a collection of values by feeding the remaining elements back to the function
- the sum function has different behaviour depending on if passed 1 or 2 arguments
18. Recursion - tail call optomisation
Protect the heap space from blowing by using the recur function
21. Sequence / List Comprehension
Iterating through a range of generated values to create a list of 2 value vectors
22. Concurrency is Easier
Concurrency is much easier to write and reason about because of
- Immutability by default
- Persistent Data Structures
- values are immutable
- functional isolation & pure functions
- state changes managed atomically (software transactional memory)
- core.async library allows you to write asynchronous code as easily as sequential
code
23. Safe State changes
Changing state safely by not changing it
● Persistent data structures
● Local bindings
Changing state safely by changing it atomically
● Software Transactional Memory (STM)
○ Gives an mechanism like an in-memory atomic database that manages mutable state changes
under the covers
● Atoms
● core.async
24. Concurrency syntax - atoms
An online card game has players that can join and have their winnings tracked
25. Concurrency syntax - atoms
The join-game function adds players to the atom by their name, but only up to 2
players
26. Concurrency syntax - refs for sync updates
The join-game-safely adds players to the ref and alters their account & game account
27. Putting it all together
Let's find all the most common words used in a popular Science Fiction novel
38. Over 20 Books on Clojure...
Where to start with Clojure will be different...
Example:
I typically suggested BraveClojure.com as a starting
point, however many people prefer LivingClojure or
ClojureScript Unraveled...
Help people understand the relevance of a book and if
it's the right thing for them at that time.
47. Clojurian Community in Person
Probably the most active language-specific
developer communities in London
48. Learning by teaching others
I really started thinking in Clojure when I started talking to & teaching others
- Coding dojos
- talks on Clojure (starting with the basics, showing the art of the possible)
- moving on to running conferences
- workshops at hack days