https://telecombcn-dl.github.io/2017-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
The goal of the tutorial is that participants understand the capabilities of LoLA and can assess the applicability of the tool in their context. They learn how to optimally exploit the available state space reduction techniques. They learn about several opportunities for linking LoLA to their problem domain.
This talk is about the release of Triton, a concolic execution framework based on Pin. It provides components like a taint engine, a dynamic symbolic execution engine, a snapshot engine, translation of x64 instruction to SMT2, a Z3 interface to solve constraints and Python bindings. Based on these components, Triton offers the possibility to build tools for vulnerabilities research or reverse-engineering assistance.
Dynamic Binary Analysis and Obfuscated Codes Jonathan Salwan
At this presentation we will talk about how a DBA (Dynamic Binary Analysis) may help a reverse engineer to reverse obfuscated code. We will first introduce some basic obfuscation techniques and then expose how it's possible to break some stuffs (using our open-source DBA framework - Triton) like detect opaque predicates, reconstruct CFG, find the original algorithm, isolate sensible data and many more... Then, we will conclude with a demo and few words about our future work.
https://telecombcn-dl.github.io/2017-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
The goal of the tutorial is that participants understand the capabilities of LoLA and can assess the applicability of the tool in their context. They learn how to optimally exploit the available state space reduction techniques. They learn about several opportunities for linking LoLA to their problem domain.
This talk is about the release of Triton, a concolic execution framework based on Pin. It provides components like a taint engine, a dynamic symbolic execution engine, a snapshot engine, translation of x64 instruction to SMT2, a Z3 interface to solve constraints and Python bindings. Based on these components, Triton offers the possibility to build tools for vulnerabilities research or reverse-engineering assistance.
Dynamic Binary Analysis and Obfuscated Codes Jonathan Salwan
At this presentation we will talk about how a DBA (Dynamic Binary Analysis) may help a reverse engineer to reverse obfuscated code. We will first introduce some basic obfuscation techniques and then expose how it's possible to break some stuffs (using our open-source DBA framework - Triton) like detect opaque predicates, reconstruct CFG, find the original algorithm, isolate sensible data and many more... Then, we will conclude with a demo and few words about our future work.
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...Sehrish Asif
Message Passing, Remote Procedure Calls and
Distributed Shared Memory as Communication Paradigms for Distributed Systems & Remote Procedure Call Implementation Using Distributed Algorithms
Presentation about nice functional programming things you can do with python. and some simple techniques you can use to do a good and functional design
LINCX is an OpenFlow switch written in Erlang and running on LING (Erlang on Xen). It shows some remarkable performance. The presentation discusses various speed-related optimizations.
Simon Peyton Jones: Managing parallelismSkills Matter
If you want to program a parallel computer, it obviously makes sense to start with a computational paradigm in which parallelism is the default (ie functional programming), rather than one in which computation is based on sequential flow of control (the imperative paradigm). And yet, and yet ... functional programmers have been singing this tune since the 1980s, but do not yet rule the world. In this talk I’ll say why I think parallelism is too complex a beast to be slain at one blow, and how we are going to be driven, willy-nilly, towards a world in which side effects are much more tightly controlled than now. I’ll sketch a whole range of ways of writing parallel program in a functional paradigm (implicit parallelism, transactional memory, data parallelism, DSLs for GPUs, distributed processes, etc, etc), illustrating with examples from the rapidly moving Haskell community, and identifying some of the challenges we need to tackle.
A short presentation about Erlang, specifically designed for concurrency characteristics.
For the course: Scientific Writing and Communication (KTH Royal Institute of Technology)
Erlang Developments: The Good, The Bad and The Uglyenriquepazperez
A bunch of personal views about the main characteristics of Erlang, including myths and rumors.
A quick overview about what has lately been improved in the three areas.
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.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
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
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
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.
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.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
3. Problem domain
Highly concurrent (hundreds of thousands of parallel
activities)
Real time
Distributed
High Availability (down times of minutes/year – never down)
Complex software (million of lines of code)
Continuous operation (years)
Continuous evolution
In service upgrade
4. Erlang
Very light-weight processes
Very fast message passing
Total separation between processes
Automatic marshalling/demarshalling
Fast sequential code
Strict functional code
Dynamic typing
Transparent distribution
Compose sequential AND concurrent code
7. Fraction of Chip reachable in one clock cycle
[source] Erik Hagersten http://www.sics.se/files/projects/
multicore/day2007/ErikH-intro.pdf
8. Clock Frequency
Clock frequency trend for Intel Cpus (Linux Journal)
Read: Clock rate verses IPC. The end of the road for
Conventional Microarchitectures. Agarwal et.al 2000
9.
10. Due to hardware changes:
Each year your sequential
programs will go slower
Each year your concurrent
programs will go faster
15. THREE – network on
Intel Polaris – 2007 Chip (NOC)
1 Tflop at 24 Watts
16. ASCI RED- 1997 - 1997
- First machine over 1 Tera
Flop
- 2,500 sq ft floor space
104 cabinets
- 9326 pentium pro
processors
- 850 KW
17. 2 cores won't hurt you
4 cores will hurt a little
8 cores will hurt a bit
16 will start hurting
32 cores will hurt a lot (2009)
...
1 M cores ouch (2019)
(complete paradigm shift)
1997 1 Tflop = 850 KW
2007 1 Tflop = 24 W (factor 35,000)
2017 1 Tflop = ?
18. Goal
Make my program run N times faster on an
N core CPU with
no changes to the program
no pain and suffering
Can we do this?
Yes Sometimes (often)
19. Due to hardware changes:
Each year your sequential
programs will go slower
Each year your concurrent
programs will go faster
30. Problem 1
Your program
crashes in
the critical region
having corrupted
memory
31. Problem 2
Sweden ? Australia
Where do we (physically) locate the
shared memory?
Impossible to get low-latency and make
consistent (violates laws of physics)
39. What is COP?
Machine
Process
Message
Large number of processes
Complete isolation between processes
Location transparency
No Sharing of data
Pure message passing systems
40. Why is COP nice?
We intuitively understand concurrency
The world is parallel
The world is distributed
Making a real-world application is based on
observation of the concurrency patterns and
message channels in the application
Easy to make scalable, distributed applications
41. Concurrency Oriented Programming
A style of programming where
concurrency is used to structure the
application
My first message is that
Large numbers of processes concurrency
Complete isolation of is best regarded as a program
processes
structuring principle”
No sharing of data
Location transparency
Pure message passing Structured concurrent programming
– Tony Hoare
42. Examples of COP architectures
remember – no shared memory
– pure message passing
Email
Google – map – reduce (450,000
machines)
People (no shared state, message
passing via voiceGrams, waving
arms, non-reliable etc.)
49. Functional programming languages
FLPs carry state with them
wherever the flow of control
goes. Different FPLs provide
different notations and In,S Out,S'
mechanisms for hiding this
from the user.
In Erlang we hide the state
in a process. In Haskell in a
monad
FLPs have are based on a formal FP
mathematical model
Lambda calculus (Pi calc, CSP)
50. Why is this important?
Compositional properties
Output of one function must be input to next
f(g(h(i(k(X)))))
Echo “foo” | k | i | h | g | f
No mutable state means nothing to lock and
automatic thread safety when parallelised
Can reuse pure functions
52. BAD STUFF
Very very bad
Threads
Sharing
Mutexes - Locks
Synchronized methods
Mutable state
Mutable state is the root of all evil
FPLs have no mutable state
56. Erlang in 11 Minutes
Sequential Erlang 5 examples
Concurrent Erlang 2 examples
Distributed Erlang 1 example
Fault-tolerant Erlang 2 examples
Bit syntax 1 example
57. Sequential Erlang
Factorial -module(math).
-export([fac/1]).
Dynamic types
Pattern matching fac(N) when N > 0 -> N*fac(N-1);
No mutable data fac(0) -> 1
structures
> math:fac(25).
Binary Tree Search 15511210043330985984000000
lookup(Key, {Key, Val,_,_}) -> {ok, Val};
lookup(Key, {Key1,Val,S,B}) when Key < Key1 ->
lookup(Key, S);
lookup(Key, {Key1, Val, S, B})->
lookup(Key, B);
lookup(key, nil) ->
not_found.
58. Sequential Erlang
append append([H|T], L) -> [H|append(T, L)];
append([], L) -> L.
sort sort([Pivot|T]) ->
sort([X||X <- T, X < Pivot]) ++
[Pivot] ++
sort([X||X <- T, X >= Pivot]);
sort([]) -> [].
> Adder = fun(N) -> fun(X) -> X + N end end.
adder #Fun
> G = Adder(10).
#Fun
> G(5).
15
59. Concurrent Erlang
spawn Pid = spawn(fun() -> loop(0) end)
send Pid ! Message,
.....
receive receive
Message1 ->
Actions1;
Message2 ->
Actions2;
...
after Time ->
TimeOutActions
end
The concurrency is in the language NOT the OS
61. Fault-tolerant Erlang
...
case (catch foo(A, B)) of
{abnormal_case1, Y} ->
...
{'EXIT', Opps} ->
...
Val ->
...
end,
...
foo(A, B) ->
...
throw({abnormal_case1, ...})
62. Monitor a process
...
process_flag(trap_exit, true),
Pid = spawn_link(fun() -> ... end),
receive
{'EXIT', Pid, Why} ->
...
end
63. Bit Syntax - parsing IP datagrams
-define(IP_VERSION, 4).
-define(IP_MIN_HDR_LEN,5).
DgramSize = size(Dgram),
case Dgram of
<<?IP_VERSION:4, HLen:4,
SrvcType:8, TotLen:16, ID:16, Flgs:3,
This code parses the
FragOff:13, TTL:8, Proto:8, HdrChkSum:16,
header and extracts
SrcIP:32, DestIP:32, Body/binary>> when
the data from an IP
HLen >= 5, 4*HLen =< DgramSize ->
OptsLen = 4*(HLen - ?IP_MIN_HDR_LEN),
protocol version 4
<<Opts:OptsLen/binary,Data/binary>> = Body, datagram
...
65. Some code
loop() ->
receive
{email,From,Subject,Text} = Email ->
{ok, S} = file:open(quot;inboxquot;,[append,write]),
io:format(S, quot;~p.~nquot;,[Email]),
file:close(S);
{msg, From, Message} ->
io:format(quot;msg (~s) ~s~nquot;, [From, Message]);
{From, get, File} ->
From ! file:read_file(File)
end,
loop().
Mike ! {email, quot;joequot;, quot;dinnerquot;, quot;see you at 18.00quot;}.
Helen ! {msg, quot;joequot;, quot;Can you buy some milk on your way
home?quot;}
66. Programming Multicore computers is difficult
because of shared mutable state.
Functional programming languages have no shared
state and no mutable state
Erlang has the right intrinsic properties for
programming multicore computers (concurrency
maps to the multiple CPUs, non-mutability means we
don't get any problems with memory corruption)
67.
68.
69.
70. - Use “lots” of processes
- Avoid sequential bottlenecks
- Use “large computation”
small data transfer (if
possible)
- New abstractions (pmap,
mapreduce)
71. Commercial projects
Ericsson AXD301 (part of “Engine”)
Ericsson GPRS system
Alteon (Nortel) SSL accelerator
Alteon (Nortel) SSL VPN
Teba Bank (credit card system – South Africa)
T-mobile SMS system (UK)
Kreditor (Sweden)
Synapse
Tail-f
jabber.org /uses ejabberd)
Twitter (uses ejabberd)
Lshift (RabbitMQ) AMQP (Advanced Message Queuing protocol)
73. Finally
We've known how to program parallel
computers for the last twenty years
We can make highly reliable fault tolerant
distributed real-time systems
ww.erlang.org