A chronicle of my attempt to create a real time web app using pure clojure at every layer of the stack, from the client to the styles to the web server
Presented at Web Unleashed 2019
More info at www.fitc.ca/webu
Luke DeWitt
REDspace
Overview
JavaScript’s popularity has exploded over the last decade, taking it from a laughable scripting language to one that powers much of the web today. Because it’s so flexible and so easy to learn, it’s extremely popular with new developers looking to cut their teeth in programming. However, these strengths are also weaknesses, as it’s incredibly easy to write bad JavaScript without even knowing it.
A lot of these newer developers jump from “Hello, World!”, to TodoMVC in order to find the library that makes their life easier. By doing this, they skip over some of the important details of not only how JavaScript works, but also how to optimize its performance to ensure the best user experience.
The Chrome profiler is a very handy tool that not a lot of developers have experience with. In this talk, we’ll take a beginner’s look at the profiler tool and examine how to use it to best improve your web application, and identify bottlenecks in your code without having to rely only on console.log statements.
Objective
To help developers understand how to better make use of the JavaScript profiler.
Target Audience
Any JavaScript developers
Assumed Audience Knowledge
Basic JavaScript
Level
Beginner / intermediate
Five Things Audience Members Will Learn
Javascript inner-workings
Profiling concepts
Identifying bottlenecks
Profiling node applications
Tooling
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Chris Zacharias
imgix
Overview
The average website loads over 1.5MBs of content per page, making over 75 requests. Many popular websites are serving over 5MBs just to load their homepages. And these numbers represent measurements taken AFTER compression is applied. The full weight of many popular websites is pushing 20+ MBs these days. In an era where performance truly matters to the end user experience, web developers need techniques to help curtail this bloat in data down the wire.
No matter how well you optimize, there is no better way to than to delete things you do not need. How does one determine what is essential to the user experience and what is not? One answer Chris posits is to develop a hyper-lightweight version of your website which will provide critical insights into your specific performance priorities. This is a process that he has leveraged on many projects, in particular at YouTube to reduce the size of the video watch page from 1.5MBs to 100KBs. In this talk, Chris will take real-world web pages and show techniques for dramatically reducing their page weight and for identifying areas to optimize, while outlining the key steps to doing this well.
Objective
Learn a process for building a hyper-lightweight version of your website for establishing reasonable performance budgets, grounded in reality, to work from.
Target Audience
Web developers
Assumed Audience Knowledge
HTML, CSS, Javascript, some server-side awareness.
Level
Intermediate
Five Things Audience Members Will Learn
How to analyze a web page for performance issues
A holistic approach to deconstructing an existing website
A clear process for building a hyper-lightweight version of your website
Translating your findings into real performance priorities
Establishing a realistic performance budget
We start with an introduction to what Apache Camel is, and how you can use Camel to make integration much easier. Allowing you to focus on your business logic, rather than low level messaging protocols, and transports. You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
We look into web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities. In addition to the web tooling we will also show you other tools in the making.
We start with an introduction to what Apache Camel is, and how you can use Camel to make integration much easier. Allowing you to focus on your business logic, rather than low level messaging protocols, and transports.
You will hear how Apache Camel is related Enterprise Integration
Patterns which you can use in your architectural designs and as well in Java or XML code, running on the JVM with Camel.
You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
We also take a moment to look at web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities. In addition to the web tooling we will also show you other tools in the making.
This talk was presented at JDKIO on September 13th 2016.
Integration using Apache Camel and GroovyClaus Ibsen
Apache Camel is versatile integration library that supports a huge number of components, enterprise integration patterns, and programming languages.
In this this talk I first introduce you to Apache Camel and its concepts. Then we move on to see how you can use the Groovy programming language with Camel as a first class Groovy DSL to build integration flows.
You will also learn how to build a new Camel and Groovy app from scratch from a live demo.
And we also touch how you can use Camel from grails using the grails-camel plugin.
I will also show the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
Plack basics for Perl websites - YAPC::EU 2011leo lapworth
Run a website with Perl? - you should learn how to use Plack. Most Perl web frameworks support it and it makes your life a lot easier and a lot more fun
Presented at Web Unleashed 2019
More info at www.fitc.ca/webu
Luke DeWitt
REDspace
Overview
JavaScript’s popularity has exploded over the last decade, taking it from a laughable scripting language to one that powers much of the web today. Because it’s so flexible and so easy to learn, it’s extremely popular with new developers looking to cut their teeth in programming. However, these strengths are also weaknesses, as it’s incredibly easy to write bad JavaScript without even knowing it.
A lot of these newer developers jump from “Hello, World!”, to TodoMVC in order to find the library that makes their life easier. By doing this, they skip over some of the important details of not only how JavaScript works, but also how to optimize its performance to ensure the best user experience.
The Chrome profiler is a very handy tool that not a lot of developers have experience with. In this talk, we’ll take a beginner’s look at the profiler tool and examine how to use it to best improve your web application, and identify bottlenecks in your code without having to rely only on console.log statements.
Objective
To help developers understand how to better make use of the JavaScript profiler.
Target Audience
Any JavaScript developers
Assumed Audience Knowledge
Basic JavaScript
Level
Beginner / intermediate
Five Things Audience Members Will Learn
Javascript inner-workings
Profiling concepts
Identifying bottlenecks
Profiling node applications
Tooling
Presented at FITC Toronto 2019
More info at www.fitc.ca/toronto
Chris Zacharias
imgix
Overview
The average website loads over 1.5MBs of content per page, making over 75 requests. Many popular websites are serving over 5MBs just to load their homepages. And these numbers represent measurements taken AFTER compression is applied. The full weight of many popular websites is pushing 20+ MBs these days. In an era where performance truly matters to the end user experience, web developers need techniques to help curtail this bloat in data down the wire.
No matter how well you optimize, there is no better way to than to delete things you do not need. How does one determine what is essential to the user experience and what is not? One answer Chris posits is to develop a hyper-lightweight version of your website which will provide critical insights into your specific performance priorities. This is a process that he has leveraged on many projects, in particular at YouTube to reduce the size of the video watch page from 1.5MBs to 100KBs. In this talk, Chris will take real-world web pages and show techniques for dramatically reducing their page weight and for identifying areas to optimize, while outlining the key steps to doing this well.
Objective
Learn a process for building a hyper-lightweight version of your website for establishing reasonable performance budgets, grounded in reality, to work from.
Target Audience
Web developers
Assumed Audience Knowledge
HTML, CSS, Javascript, some server-side awareness.
Level
Intermediate
Five Things Audience Members Will Learn
How to analyze a web page for performance issues
A holistic approach to deconstructing an existing website
A clear process for building a hyper-lightweight version of your website
Translating your findings into real performance priorities
Establishing a realistic performance budget
We start with an introduction to what Apache Camel is, and how you can use Camel to make integration much easier. Allowing you to focus on your business logic, rather than low level messaging protocols, and transports. You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
We look into web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities. In addition to the web tooling we will also show you other tools in the making.
We start with an introduction to what Apache Camel is, and how you can use Camel to make integration much easier. Allowing you to focus on your business logic, rather than low level messaging protocols, and transports.
You will hear how Apache Camel is related Enterprise Integration
Patterns which you can use in your architectural designs and as well in Java or XML code, running on the JVM with Camel.
You will also hear what other features Camel provides out of the box, which can make integration much easier for you.
We also take a moment to look at web console tooling that allows you to get insight into your running Apache Camel applications, which has among others visual route diagrams with tracing/debugging and profiling capabilities. In addition to the web tooling we will also show you other tools in the making.
This talk was presented at JDKIO on September 13th 2016.
Integration using Apache Camel and GroovyClaus Ibsen
Apache Camel is versatile integration library that supports a huge number of components, enterprise integration patterns, and programming languages.
In this this talk I first introduce you to Apache Camel and its concepts. Then we move on to see how you can use the Groovy programming language with Camel as a first class Groovy DSL to build integration flows.
You will also learn how to build a new Camel and Groovy app from scratch from a live demo.
And we also touch how you can use Camel from grails using the grails-camel plugin.
I will also show the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
Plack basics for Perl websites - YAPC::EU 2011leo lapworth
Run a website with Perl? - you should learn how to use Plack. Most Perl web frameworks support it and it makes your life a lot easier and a lot more fun
Getting Started with Apache Camel at DevNation 2014Claus Ibsen
Get off to a good start with Apache Camel. This session will give you an introduction to Apache Camel and teach you:
- How Camel is related to enterprise integration patterns (EIPs).
- How to use EIPs in Camel routes written in Java code or XML files.
- How to get started developing with Camel, including how to set up new projects from scratch using Maven and Eclipse.
- With a live demo, how to build Camel applications in Java, Spring, and OSGi Blueprint.
- How ready-to-use features make integration much easier.
- About the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
- Useful resources to learn more about Camel.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
За последние годы разными специалистами и компаниями (от Google до Сноудена) был проделан колоссальный объём работы с целью популяризации протокола SSL, а позже и TLS. Дорабатывались протоколы и шифры, обнаруживались десятки уязвимостей, криптографические библиотеки форкались и проводили аудиты, правозащитные фонды выдавали сотни миллионов сертификатов "забесплатно". В конце концов, TLS явочным порядком, в обход стандарта, стал обязательным для HTTP/2-серверов. Так много сил было приложено, что просто-напросто уже невежливо всё это игнорировать.
Однако процесс внедрения TLS за это время, как это ни удивительно, не стал проще ни на йоту. Сисадмины, приступающие к развёртыванию TLS, вынуждены столкнуться с классификацией типов сертификатов, с множеством центров сертификации (которые непонятно, чем друг друга лучше) и с великим множеством дополнительных заголовков и "ручек", каждую из которых можно подёргать с непредсказуемым результатом. В результате даже крупные компании при внедрении TLS допускают ошибки той или иной степени серьёзности (включая, но не ограничиваясь масштабным даунтаймом клиентов GlobalSign), а небольшие стартапы предпочитают, вообще, обходить криптографию стороной.
За отведённые на доклад 45 минут мы постараемся дать описание каждой из пресловутых "ручек" и рекомендации по их [не]применению, а также дадим рекомендации по развёртыванию TLS на крупной инфраструктуре.
Getting Buzzed on Buzzwords: Using Cloud & Big Data to Pentest at ScaleBishop Fox
You’ve heard about cloud, big data, server-less infrastructure, web scale, and other buzzwords that cause VCs to throw money at people - but how does this help you? If you’re getting bored going over the same checklist in your pentests then you’re missing out on what some of these new technologies can offer you. Using some of the newer cloud technologies not only can you automate all of your workflows, but you can do so with almost zero maintenance at a low cost with almost infinite scalability! This talk will show you how to blow conventional pentesters out of the water using some cool new technologies along with a little bit of trickery.
Some of the topics we’ll go over include: * Cheap and scalable rainbow tables with BigQuery, 5TB in 10 seconds * SQS & Lambda, like Burp Intruder but 10K QPS * Scalable GPU Clusters on the cheap with Spot Instances and Elastic Beanstalk * Cloud exit nodes, rotating IPs via Elastic Beanstalk and nano instances * Cost effective fuzzing with Elastic Beanstalk and Spot Instances
(This was originally presented on November 16, 2018 at Kiwicon 2038).
Apache Camel Introduction & What's in the boxClaus Ibsen
Slides from JavaBin talk in Grimstad Norway, presented by Claus Ibsen in February 2016.
This slide deck is full up to date with latest Apache Camel 2.16.2 release and includes additional slides to present many of the features that Apache Camel provides out of the box.
This is a talk given at Clojure Conj 2014 in Washington DC. The title was Paradigms of core.async and it was given by Julian Gamble.
The code and demos are available here: https://github.com/juliangamble/clojure-conj-2014-paradigms-of-core-async
Getting Started with Apache Camel at DevNation 2014Claus Ibsen
Get off to a good start with Apache Camel. This session will give you an introduction to Apache Camel and teach you:
- How Camel is related to enterprise integration patterns (EIPs).
- How to use EIPs in Camel routes written in Java code or XML files.
- How to get started developing with Camel, including how to set up new projects from scratch using Maven and Eclipse.
- With a live demo, how to build Camel applications in Java, Spring, and OSGi Blueprint.
- How ready-to-use features make integration much easier.
- About the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
- Useful resources to learn more about Camel.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
За последние годы разными специалистами и компаниями (от Google до Сноудена) был проделан колоссальный объём работы с целью популяризации протокола SSL, а позже и TLS. Дорабатывались протоколы и шифры, обнаруживались десятки уязвимостей, криптографические библиотеки форкались и проводили аудиты, правозащитные фонды выдавали сотни миллионов сертификатов "забесплатно". В конце концов, TLS явочным порядком, в обход стандарта, стал обязательным для HTTP/2-серверов. Так много сил было приложено, что просто-напросто уже невежливо всё это игнорировать.
Однако процесс внедрения TLS за это время, как это ни удивительно, не стал проще ни на йоту. Сисадмины, приступающие к развёртыванию TLS, вынуждены столкнуться с классификацией типов сертификатов, с множеством центров сертификации (которые непонятно, чем друг друга лучше) и с великим множеством дополнительных заголовков и "ручек", каждую из которых можно подёргать с непредсказуемым результатом. В результате даже крупные компании при внедрении TLS допускают ошибки той или иной степени серьёзности (включая, но не ограничиваясь масштабным даунтаймом клиентов GlobalSign), а небольшие стартапы предпочитают, вообще, обходить криптографию стороной.
За отведённые на доклад 45 минут мы постараемся дать описание каждой из пресловутых "ручек" и рекомендации по их [не]применению, а также дадим рекомендации по развёртыванию TLS на крупной инфраструктуре.
Getting Buzzed on Buzzwords: Using Cloud & Big Data to Pentest at ScaleBishop Fox
You’ve heard about cloud, big data, server-less infrastructure, web scale, and other buzzwords that cause VCs to throw money at people - but how does this help you? If you’re getting bored going over the same checklist in your pentests then you’re missing out on what some of these new technologies can offer you. Using some of the newer cloud technologies not only can you automate all of your workflows, but you can do so with almost zero maintenance at a low cost with almost infinite scalability! This talk will show you how to blow conventional pentesters out of the water using some cool new technologies along with a little bit of trickery.
Some of the topics we’ll go over include: * Cheap and scalable rainbow tables with BigQuery, 5TB in 10 seconds * SQS & Lambda, like Burp Intruder but 10K QPS * Scalable GPU Clusters on the cheap with Spot Instances and Elastic Beanstalk * Cloud exit nodes, rotating IPs via Elastic Beanstalk and nano instances * Cost effective fuzzing with Elastic Beanstalk and Spot Instances
(This was originally presented on November 16, 2018 at Kiwicon 2038).
Apache Camel Introduction & What's in the boxClaus Ibsen
Slides from JavaBin talk in Grimstad Norway, presented by Claus Ibsen in February 2016.
This slide deck is full up to date with latest Apache Camel 2.16.2 release and includes additional slides to present many of the features that Apache Camel provides out of the box.
This is a talk given at Clojure Conj 2014 in Washington DC. The title was Paradigms of core.async and it was given by Julian Gamble.
The code and demos are available here: https://github.com/juliangamble/clojure-conj-2014-paradigms-of-core-async
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...Stefan Richter
There are almost no good books about JavaScript. But you can be sure: This is the language of the future. We build a large HTML5 client. On the server-side we are using Clojure (a lisp on the JVM). On the client-side we are using JavaScript with Google Closure Library. Here we show some of our insights.
This is a presentation I gave at the last HackFwd Build Event. HackFwd is a european pre-seed Investment company focusing on programmers only. A video of the talk will follow in November 2010.
Building a Network IP Camera using ErlangFrank Hunleth
This is my Erlang Factory SF 2014 talk on using the Nerves project to make a streaming IP camera with the Beaglebone Black and a custom image sensor cape. The presentation provides throughput, latency, and memory usage measurements to motivate using Erlang in embedded Linux-based devices.
Erlang - Because s**t Happens by Mahesh Paolini-SubramanyaHakka Labs
Mahesh talks about the buddha-nature of Erlang/OTP, pointing out how the various features of the language tie together into one seamless Fault Tolerant whole. Mahesh emphasizes that Erlang begins and ends with Fault Tolerance. Fault Tolerance is baked into the very genes of Erlang/OTP - something that ends up being amazingly useful when building any kind of system. Mahesh Paolini-Subramanya is the V.P. of R&D at Ubiquiti Networks - a manufacturer of disruptive technology platforms for emerging markets. He has spent the recent past building out Erlang-based massively concurrent Cloud Services and VoIP platforms. Mahesh was previously the CTO of Vocalocity after its merger with Aptela, where he was a founder and CTO.
Having a fast, low-friction Edit/Build/Test cycle is one of the best and easiest ways to increase developer productivity across an organization.
This breadth-first tour covers some of the tools we use at Basho to speed up and streamline the Edit/Build/Test cycle for our Erlang projects.
There is an increasing interest in functional programming from Java developers and the organisations in which they work. For many companies the challenge now is how to make use of the competitive advantage of functional programming. For developers, how do you adapt your mindset to this newly reimagined paradigm? Through the use of examples and a modular approach to design, Clojure made simple will show how developers can be productive quickly without a major change to their current development life-cycle. We will also cover the Clojure build process, tools and exciting projects out there.
VoltDB and Erlang: two very promising beasts, made for the new parallel world, but still lingering in the wings. Not only are they addressing todays challenges but they are using parallel architectures as corner stone of their new and surprising approach to be faster and more productive. What are they good for? Why are we working to team them up?
Erlang promises faster implementation, way better maintenance and 4 times shorter code. VoltDB claims to be two orders of magnitude faster than its competitors. The two share many similarities: both are the result of scientific research and designed from scratch to address the new reality of parallel architectures with full force.
This talk presents the case for Erlang as server language, where it shines, how it looks, and how to get started. It details Erlang's secret sauce: microprocesses, actors, atoms, immutable variables, message passing and pattern matching. (Note: for a longer version of this treatment of Erlang only see: Why Erlang? http://www.slideshare.net/eonblast/why-erlang-gdc-online-2012)
VoltDB's inner workings are explained to understand why it can be so incredibly fast and still better than its NoSQL competitors. The well publicized Node.js benchmark clocking in at 695,000 transactions per second is described and the simple steps to get VoltDB up and running to see the prodigy from up close.
Source examples are presented that show Erlang and VoltDB in action.
The speaker is creator and maintainer of the Erlang VoltDB driver Erlvolt.
Become an artisan web analytics practitioner by building your own analytics QA tool. For Adobe Analytics but you could do the same with Google Analytics, A/B testing, tag management, VOC tools and many other analytics tools
This is a presentation for International Lisp Conference 2012 which was held in Kyoto, Japan.
Clack is a web application environment for Common Lisp to make your web applications be portable and reusable by abstracting HTTP into a simple API.
In this paper, I describe what are problems in web development and how Clack solves them.
ClojureScript: I can't believe this is JavaScriptEric Normand
There are 6 difficult problems frameworks and libraries try to solve in JavaScript, but never quite get there. Learn how these problems (and more!) are solved by ClojureScript and how it can provide a platform for new solutions.
A walkthrough of various application performance tuning tools and a good workflow for where to start, from a presentation at WindyCityRails 2011 in Chicago, IL.
See the video, and more Web and Ruby/Rails Performance info at www.RailsPerformance.com
-John McCaffrey
BuildStuff 2019: Let me handle that for you... Why you need a reverse proxyElton Stoneman
Let me handle that for you... Why you need a reverse proxy in your architecture.
Containers are the runtime for distributed apps - that's old .NET monoliths being broken down into multiple components, as well as new .NET Core microservices projects. Your orchestrator can connect containers together without making any of them publicly accessible, so you can make your entire app private with just a single, secure entrypoint to your application.
That's a reverse proxy, a piece of software which receives all external network traffic and fetches the response from a private container, before sending it back to the client. You can offload a lot of concerns to your reverse proxy and keep your application code clean - the proxy handles SSL, compression, load-balancing, routing and healthchecks.
In this session you'll see the popular open-source reverse proxy Traefik in action. I'll use Traefik as the front-end to distributed .NET applications running in a Docker cluster, and show you to add the features of a reverse proxy without any changes to application code.
Let's try understanding common challenges faced while building fullstack applications, We built an experimental fullstack framework that solves a lot of issues faced while developing apps using traditional methods. Combining the mordern tech with ease of API integration gluestack framework will prove to be your go to app development platform for any use case. The talk explains how we managed to solves these challenges and why we did it. For more information regarding the same lets connect on twitter.
Twitter handle: @VidhiKataria2
Talk link: https://www.youtube.com/live/JuedZFbhyL0?si=yyXy_V5LwlWjjVDL&t=25584
Another new version of Rails. Delightful. And terrifying. What's changed this time? Fear Not!
We'll be reviewing the changes and additions to Rails 3.1, giving you a walk-through of what it all means (asset pipeline, what?), in the context of a brand new app, and an older app that will need to be upgraded.
"Finding Bad Needles on a Worldwide Scale" - presentation on our experience of developing, testing and improving cross-site scripting scanners and the methods of more accurate web application security testing. See 2015.appsec.eu for more information.
OSDC 2013 | Introduction into Chef by Andy HawkinsNETWAYS
This presentation will give an overview about what Chef is and how to access it. It will describe the typical use cases and architecture as well as Cookbooks, data bags and other concepts and will explain how to implement your CM solution. Finally it will show how to drive a successful Chef project.
Writing concurrent program is hard; maintaining concurrent program even is a nightmare. Actually, a pattern which helps us to write good concurrent code is available, that is, using “channels” to communicate.
This talk will share the channel concept with common libraries, like threading and multiprocessing, to make concurrent code elegant.
It's the talk at PyCon TW 2017 [1] and PyCon APAC/MY 2017 [2].
[1]: https://tw.pycon.org/2017
[2]: https://pycon.my/pycon-apac-2017-program-schedule/
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
6. Clojure Scramble
• A multiplayer game for practicing clojure
• Transform given clojure collection into a new
one in as many different ways as you can
using list of permitted values
7. Clojure Scramble
• A multiplayer game for practicing clojure
• Transform given clojure collection into a new
one in as many different ways as you can
using list of permitted values
• Compete against other clojurians for high score
8. Clojure Scramble
• A multiplayer game for practicing clojure
• Transform given clojure collection into a new
one in as many different ways as you can
using list of permitted values
• Compete against other clojurians for high score
• A work in progress - will launch at
www.clojurescramble.com soon
10. Clojure For
Web Server
HTML
Css
Javascript
Web Sockets
Data Transfer
Deployment
11. Clojure For
Web Server • Noir - github.com/noir-clojure/noir
HTML
Css
Javascript
Web Sockets
Data Transfer
Deployment
12. Clojure For
Web Server • Noir - github.com/noir-clojure/noir
HTML • Hiccup - github.com/weavejester/hiccup
Css
Javascript
Web Sockets
Data Transfer
Deployment
13. Clojure For
Web Server • Noir - github.com/noir-clojure/noir
HTML • Hiccup - github.com/weavejester/hiccup
Css • Cssgen- github.com/paraseba/cssgen
Javascript
Web Sockets
Data Transfer
Deployment
14. Clojure For
Web Server • Noir - github.com/noir-clojure/noir
HTML • Hiccup - github.com/weavejester/hiccup
Css • Cssgen- github.com/paraseba/cssgen
Javascript • Clojurescript - github.com/clojure/clojurescript
Web Sockets
Data Transfer
Deployment
15. Clojure For
Web Server • Noir - github.com/noir-clojure/noir
HTML • Hiccup - github.com/weavejester/hiccup
Css • Cssgen- github.com/paraseba/cssgen
Javascript • Clojurescript - github.com/clojure/clojurescript
Web Sockets • Web Sockets - aleph, lamina, noir-async
Data Transfer
Deployment
16. Clojure For
Web Server • Noir - github.com/noir-clojure/noir
HTML • Hiccup - github.com/weavejester/hiccup
Css • Cssgen- github.com/paraseba/cssgen
Javascript • Clojurescript - github.com/clojure/clojurescript
Web Sockets • Web Sockets - aleph, lamina, noir-async
Data Transfer • Data Transfer - strings/reader. outgoing only!
Deployment
17. Clojure For
Web Server • Noir - github.com/noir-clojure/noir
HTML • Hiccup - github.com/weavejester/hiccup
Css • Cssgen- github.com/paraseba/cssgen
Javascript • Clojurescript - github.com/clojure/clojurescript
Web Sockets • Web Sockets - aleph, lamina, noir-async
Data Transfer • Data Transfer - strings/reader. outgoing only!
Deployment • Leinengen - superjar. upstart/monit. nginx proxy
20. Benefits of pure clojure
• No context switching
• Share server and client code
21. Benefits of pure clojure
• No context switching
• Share server and client code
• Enabled higher level abstractions
22. Benefits of pure clojure
• No context switching
• Share server and client code
• Enabled higher level abstractions
• Avoid web language pitfalls
23. Benefits of pure clojure
• No context switching
• Share server and client code
• Enabled higher level abstractions
• Avoid web language pitfalls
• Everything maps easily to lisp
25. Clojure MVC
• Namespaces make relationships explicit - good
for architectural discipline. Control very directly who
can see who.
26. Clojure MVC
• Namespaces make relationships explicit - good
for architectural discipline. Control very directly who
can see who.
• Quarantine state - lots of state inevitable in web
programming. Can still be minimized compared to
imperative programming. I’ve used atoms for everything
so far. Simple updates. Other approaches?
27. Clojure MVC
• Namespaces make relationships explicit - good
for architectural discipline. Control very directly who
can see who.
• Quarantine state - lots of state inevitable in web
programming. Can still be minimized compared to
imperative programming. I’ve used atoms for everything
so far. Simple updates. Other approaches?
• Async events through lamina channels -
decoupled interactions
28. Clojure MVC
• Namespaces make relationships explicit - good
for architectural discipline. Control very directly who
can see who.
• Quarantine state - lots of state inevitable in web
programming. Can still be minimized compared to
imperative programming. I’ve used atoms for everything
so far. Simple updates. Other approaches?
• Async events through lamina channels -
decoupled interactions
• I ended up with a thick ‘manager’ tier - async
creates responsibilities that don’t fall neatly into mvc
30. Noir
• Lightweight - gives you what you need. Server start
(server.clj), routes (defpage), and basic http stuff
(sessions, cookies, etc.). Mostly stays out of your way
31. Noir
• Lightweight - gives you what you need. Server start
(server.clj), routes (defpage), and basic http stuff
(sessions, cookies, etc.). Mostly stays out of your way
• Unopinionated - you must determine and enforce
your own architecture. Doesn’t try to save you from
yourself.
35. Hiccup
• Expressive syntax
• Composable in interesting ways
• Crate - hiccup in clojurescript - github.com/ibdknox/
crate
36. Hiccup
• Expressive syntax
• Composable in interesting ways
• Crate - hiccup in clojurescript - github.com/ibdknox/
crate
• Death to xml! - xml is ugly and poorly implemented
lisp. The designers will be fine.
39. cssgen
• Specify nested rules in clojure
• Mixins for functional css
40. cssgen
• Specify nested rules in clojure
• Mixins for functional css
• Has a long way to go - less/sass/compass/etc. and
some asset build tool like sprockets much better option at
this point
41. cssgen
• Specify nested rules in clojure
• Mixins for functional css
• Has a long way to go - less/sass/compass/etc. and
some asset build tool like sprockets much better option at
this point
• Clojure needs a serious tool like clojurescript for
css
42. cssgen
• Specify nested rules in clojure
• Mixins for functional css
• Has a long way to go - less/sass/compass/etc. and
some asset build tool like sprockets much better option at
this point
• Clojure needs a serious tool like clojurescript for
css
• Don’t underestimate front end organization! -
clojure can and should take css to new heights
44. Clojurescript
• Namespaces are a huge improvement over js/
coffeescript - makes client side development feel a lot
less like wandering through a dark Malaysian jungle
45. Clojurescript
• Namespaces are a huge improvement over js/
coffeescript - makes client side development feel a lot
less like wandering through a dark Malaysian jungle
• You don’t need much state! - clojurescript can often
function as a straight pipeline from server to ui. Don’t
hold onto data unless you need it!
46. Clojurescript
• Namespaces are a huge improvement over js/
coffeescript - makes client side development feel a lot
less like wandering through a dark Malaysian jungle
• You don’t need much state! - clojurescript can often
function as a straight pipeline from server to ui. Don’t
hold onto data unless you need it!
• Feels like clojure! But native js interop can be
tricky - javascript is a mutable paradigm. Leads to
verbosity.
47. Clojurescript
• Namespaces are a huge improvement over js/
coffeescript - makes client side development feel a lot
less like wandering through a dark Malaysian jungle
• You don’t need much state! - clojurescript can often
function as a straight pipeline from server to ui. Don’t
hold onto data unless you need it!
• Feels like clojure! But native js interop can be
tricky - javascript is a mutable paradigm. Leads to
verbosity.
• Check out Chris Granger libs - (ibdnox - noir/light
table dude). jayq, crate, fetch. best cljs tutorial: chris-
granger.com/2012/02/20/overtone-and-clojurescript/
48. Clojurescript
• Namespaces are a huge improvement over js/
coffeescript - makes client side development feel a lot
less like wandering through a dark Malaysian jungle
• You don’t need much state! - clojurescript can often
function as a straight pipeline from server to ui. Don’t
hold onto data unless you need it!
• Feels like clojure! But native js interop can be
tricky - javascript is a mutable paradigm. Leads to
verbosity.
• Check out Chris Granger libs - (ibdnox - noir/light
table dude). jayq, crate, fetch. best cljs tutorial: chris-
granger.com/2012/02/20/overtone-and-clojurescript/
56. Data transfer
• Server to client. Clojure over the wire! - send
clojure forms as strings and read them straight into
context with clojurescript reader.
57. Data transfer
• Server to client. Clojure over the wire! - send
clojure forms as strings and read them straight into
context with clojurescript reader.
• Client to server. Use intermediary. - eval-ing
client supplied strings = fail. Could use some sort of
whitelist or safe eval? I used json -- encode and parse it on
at both ends. Good json parser: github.com/dakrone/
cheshire
59. Deployment
• lein uberjar gotchas - specify :main and :keep-non-
project-classes true in project.clj. specify (:gen-class) and
require all views in server.clj
60. Deployment
• lein uberjar gotchas - specify :main and :keep-non-
project-classes true in project.clj. specify (:gen-class) and
require all views in server.clj
• nginx, upstart, monit - I haven’t deployed yet, but
based on preliminary research, this lightweight stack
should get the job done.
61. Deployment
• lein uberjar gotchas - specify :main and :keep-non-
project-classes true in project.clj. specify (:gen-class) and
require all views in server.clj
• nginx, upstart, monit - I haven’t deployed yet, but
based on preliminary research, this lightweight stack
should get the job done.
• Continuous deploys? - git hooks? uberjar + scp +
upstart?
62. Deployment
• lein uberjar gotchas - specify :main and :keep-non-
project-classes true in project.clj. specify (:gen-class) and
require all views in server.clj
• nginx, upstart, monit - I haven’t deployed yet, but
based on preliminary research, this lightweight stack
should get the job done.
• Continuous deploys? - git hooks? uberjar + scp +
upstart?
• Environment config? - dev/staging/prod
64. Drawbacks of pure clojure
• Rough setup process
• Cryptic stack traces - especially cljs
• Lack of polished utilities - sass/compass, asset
pipeline
• Minor issues - overall, clojure is awesome for web dev!
67. Next steps
• DB integration
• Test suite - unit/integration tests
68. Next steps
• DB integration
• Test suite - unit/integration tests
• Advanced clojure - amazing what can be elegantly
accomplished with 1/100th of the standard lib. I still
don’t fully understand macros, state mechanisms,
clojure concurrency, and a lot of functional constructs,
but I’ve caught a glimpse of their power.
69. Next steps
• DB integration
• Test suite - unit/integration tests
• Advanced clojure - amazing what can be elegantly
accomplished with 1/100th of the standard lib. I still
don’t fully understand macros, state mechanisms,
clojure concurrency, and a lot of functional constructs,
but I’ve caught a glimpse of their power.
• Thanks for listening!