SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Hire a machine to code
Michael Arthur Bucko, Aurélien Nicolas
1
We are learning the relation between human
communication and source code to take
communication to the next level.
2
Agenda
● What is Deckard? Our vision and products
● Software team’s and developer’s perspectives
● Problems and solutions in coding
● Understanding source code
● Our work
● Demo!
3
Our vision
Step 1: Machines joining regular software teams to help them
create better code faster
Step 2: First large-scale code transplants
Step 3: First machines writing their own code without humans
4
Our product
● Deckard is building a framework for making code-based
interactions between human and intelligent machines more relevant
○ We approach the problem from (at least) two angles:
■ Enriching human software developer’s and team’s context
■ Learning novel code representations to enable more
effective communication between machines and humans
5
Team
Engineer
Brain
Helping single developer
By enriching individual
Contexts and
communication
Helping single
developer
And enriching their
context
IDEs
Independent of IDE
Not only finding all information relevant on time, but
Also enabling a completely new interaction with
software
Ensemble-based decisions using novel
representations of problems, users and
source code data
Teams and developers
6
Problems in communication using code
7
Problems in communication using code
Connecting humans with code by
creating innovative code exploration
Enriching human-human interaction
(real-time)
Learning better code representations
Researching code transplantation
Code context Understanding developer’s
preferences
Code understanding Understanding current code
in real-time
Code navigation Understanding where to go
next, what to do
Knowledge sharing Sharing code intelligence
8
Software team’s perspective
● Small teams define and build products that people love
● Not only engineers in teams, even engineers have diverse skills sets
● Team members share knowledge using a variety of channels
● Engineers learn from many sources of data
9
Software developer’s perspective
● Developers are overwhelmed by data in their current contexts -- they need
assistants who do part of their job
● Developers lack the right data -- they should know better ways of solving
their problems to avoid tweaking and patching
● Assistants should be able to provide highly relevant data in real-time
10
Our work
11
Step 1
Step 1: Machines joining regular software teams to help them
create better code faster
Step 2: First large-scale code transplants
Step 3: First machines writing their own code without humans
12
Plan for Step 1
PROBLEM SOLUTION
Ineffective interaction between human
members of software teams
Profiling developers and making information more
relevant
Ineffective interaction between humans and
code
Requires understanding code better
Augmenting “working memory” (navigation)
Better knowledge sharing (dd protocol)
Relevant information on time
13
Plan for Step 1
PROBLEM SOLUTION
Coding faster Better real-time navigation (using summarization)
Sharing code knowledge more effectively (dd
protocol)
Making code more re-usable (transplantation)
Understanding software development better
(learning paths, code exploration modes, diversity
of technology and skills)
14
Understanding source code
15
Ensemble
- Understanding source code requires is more than regular text
summarization
- Regular: sentence reduction, sentence combination, syntactic transformation,
paraphrasing, generalisation etc.[1]
- Source-code-related concepts: code folding, code execution flow, code re-usability, etc.
- Source code data: var names, method names, logic, comments, git commits, types, etc.
- NLG: Generating project metadata [2]
- We create an ensemble with source code-related features (novel
representation of code)
1. A Neural Attention Model for Abstractive Sentence Summarization,Alexander M. Rush, Sumit Chopra, Jason Weston
2. Automatic Documentation Generation via Source Code Summarization of Method Context,Paul W. McBurney and Collin McMillan 16
...
Data
- Who you are in the team,
- What you do,
- What you know about codebase,
- What is known about your problem in the web,
- Who might be able to help you.
...
Representations
Creating novel representations of source code:
- diverse programming languages with different
syntaxes
- we not only want to understand the current
code, but also create better programming
languages
Understanding source code
requires novel representations
17
Features- Introduction
- We experiment with SWUM (Software Word Usage Model) and NLG
- We model source code using call graphs
- We use both abstractive and extractive summarization used for
understanding source code
- Focus on abstractive methods -- we experiment with building source representation
- For user profiling: we have access to programmer’s interaction with code,
but also needs, settings, code styles, search results
18
1. Autofolding for Source Code Summarization, Jaroslav Fowke, Razvan Ranca , Miltiadis Allamanis , Mirella Lapata and Charles Sutton
2. Automatic Documentation Generation via Source Code Summarization of Method Context, Paul W. McBurney and Collin McMillan
Features- 1/6
- We use a tree-based TASSAL (using scoped topic model) for creating
some of the source code summarization features
- We use NAMAS (attention-based summarization) for creating some of the
code summarization features
- We test code execution tools like code2flow or pycallgraph for creating
code flow features
19
Features- 2/6
- We use a tree-based TASSAL (using scoped topic model) for creating
some of the source code summarization features
- We use NAMAS (attention-based summarization) for creating some of
the code summarization features
- We test code execution tools like code2flow or pycallgraph for creating
code flow features
20
Features- 3/6
- We use a tree-based TASSAL (using scoped topic model) for creating
some of the source code summarization features
- We use NAMAS (attention-based summarization) for creating some of the
code summarization features
- We experiment with code execution tools like code2flow or pycallgraph
for creating code flow features
21
Features- 4/6
- We use our proprietary file tree-based parser independent of language to
create:
- Call graph feature
- Code flow-related features
- Code meaning features
- Complexity-related features
- We use multi-class classification for learning about specific files
- We use RAKE (rapid automatic keyword extraction)
22
Features- 5/6
- We also use our proprietary file tree-based parser independent of language
to create:
- Call graph feature
- Code flow-related features
- Code meaning features
- Complexity-related features
- We use multi-class classification for learning about specific files
- We use RAKE (rapid automatic keyword extraction)
23
Features- 6/6
- We also use our proprietary file tree-based parser independent of language
to create:
- Call graph feature
- Code flow-related features
- Code meaning features
- Complexity-related features
- We use multi-class classification for learning about specific files
- We use RAKE (rapid automatic keyword extraction)
24
We are also researching novel approaches to
dealing with source code
25
Summarization leads to
transplantation
● Summarization is going to make everything clear, clarity is going to make
more code re-usable
○ Re-usability can lead to successful code transplantation attempts
● Making code transplantation easier is going to boost software development
○ We are researching how to transplant source code to increase the capabilities of virtual
assistants
26
Summarization needs navigation
● When we show new (and more relevant) data to developers, they will be
solving different problems (in different ways)
○ We need to give them new ways of traversing the code and sharing code information
● Current navigation you can see in the demo!
27
Understanding code requires
learning paths
● All problems have follow-up problems
○ Example: searching for more specific terms like “collision detection” often indicates that
you will be trying to create a computer game or simulation
● Deckard learns not only about the current code context, but also about the
bigger picture related to the problem
○ We come up with numerous metrics measuring source code’s performance from novel
perspectives
28
Understanding code requires
assistance
- Why is coding machines (currently) “difficult” for humans?
- Making machines do what we imagine is tough, because we speak different languages
- Things are started, but not finished, then no one can use them
- Lots of code and no one knows all of it, make code simpler, document it
- Many capabilities of programming languages are unknown, patching != solving
- There’s many problems in software engineering that machines can solve
- Machines are already among us, but now they will be more proactive and have more
serious responsibilities
29
Our work
30
Our work
- We want machines to work in software teams together with people, so we
create proactive assistants
- We also want to transform coders into supercoders, so we re-invent source
code navigation
- Finally, we want to make source code re-usable, so we work on
summarization and code transplantation tools
31
Suggestions:
unrelated
random ()
otherone
something
weeksago
duh
String
String
String
boolean
int
Your thing
</>
Thanks
Google search
Autocomplete
IDE code search
Search tickets/commits
Ask someone
Time consuming > provides pages
Limited > too little documentation
IDE search > keyword based, no relevancy
Messy search > few code references
Efficient...but high cost
32
33
Click on/highlight
any part of your code...
...and get contextual insights
dynamically & in real time
Click on any link and navigate
through the code in both
directions
Ask task-related questions &
get code recommendation
(from own or open code)
TEXT EDITOR / IDE DECKARD
34
Slack integration
35
API
- deckardSummarise: deckard summarises your source code.
- deckardClarity: deckard recognises typical reusable code vs unique logic.
- deckardGraph: deckard turns your source code into knowledge graph.
- We are working on our API!
36
DCODE for sharing source code
information
Team
IDEs
dcode:// code link
Sees code
in own IDE
37
Use cases:
- Chats
- Tickets
- In-code
hyperlinks
Code
Reads code
Shares code
github.com / deckardai
DCODE A URL scheme for sharing source
code information
CodeSearch A get-started tool for discovering
code using graph representations
PuppyParachute A semi-automated testing helper for
Python
YaP A modern shell language derived
from Python
38
Thank you!
Let’s revolutionise development
39

Contenu connexe

Tendances

GPU Computing with Python and Anaconda: The Next Frontier
GPU Computing with Python and Anaconda: The Next FrontierGPU Computing with Python and Anaconda: The Next Frontier
GPU Computing with Python and Anaconda: The Next FrontierNVIDIA
 
GTC 2016 Opening Keynote
GTC 2016 Opening KeynoteGTC 2016 Opening Keynote
GTC 2016 Opening KeynoteNVIDIA
 
組み込みから HPC まで ARM コアで実現するエコシステム
組み込みから HPC まで ARM コアで実現するエコシステム組み込みから HPC まで ARM コアで実現するエコシステム
組み込みから HPC まで ARM コアで実現するエコシステムShinnosuke Furuya
 
GTC 2017 オートモーティブ最新情報
GTC 2017 オートモーティブ最新情報GTC 2017 オートモーティブ最新情報
GTC 2017 オートモーティブ最新情報NVIDIA Japan
 
2016 06 nvidia-isc_supercomputing_car_v02
2016 06 nvidia-isc_supercomputing_car_v022016 06 nvidia-isc_supercomputing_car_v02
2016 06 nvidia-isc_supercomputing_car_v02Carlo Nardone
 
Classification of aerial photographs using DIGITS 2 - Mike Wang
Classification of aerial photographs using DIGITS 2 - Mike WangClassification of aerial photographs using DIGITS 2 - Mike Wang
Classification of aerial photographs using DIGITS 2 - Mike WangPAPIs.io
 
Possibilities of generative models
Possibilities of generative modelsPossibilities of generative models
Possibilities of generative modelsAlison B. Lowndes
 
車載組み込み用ディープラーニング・エンジン NVIDIA DRIVE PX
車載組み込み用ディープラーニング・エンジン NVIDIA DRIVE PX車載組み込み用ディープラーニング・エンジン NVIDIA DRIVE PX
車載組み込み用ディープラーニング・エンジン NVIDIA DRIVE PXNVIDIA Japan
 
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...Jason Dai
 
Implementing AI: High Performance Architectures: A Universal Accelerated Comp...
Implementing AI: High Performance Architectures: A Universal Accelerated Comp...Implementing AI: High Performance Architectures: A Universal Accelerated Comp...
Implementing AI: High Performance Architectures: A Universal Accelerated Comp...KTN
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Intel® Software
 
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發 GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發 NVIDIA Taiwan
 
Embedded and Reliable Computer Vision
Embedded and Reliable Computer VisionEmbedded and Reliable Computer Vision
Embedded and Reliable Computer VisionNVIDIA Taiwan
 
“Streamlining Development of Edge AI Applications,” a Presentation from NVIDIA
“Streamlining Development of Edge AI Applications,” a Presentation from NVIDIA“Streamlining Development of Edge AI Applications,” a Presentation from NVIDIA
“Streamlining Development of Edge AI Applications,” a Presentation from NVIDIAEdge AI and Vision Alliance
 
Kevin Shaw at AI Frontiers: AI on the Edge: Bringing Intelligence to Small De...
Kevin Shaw at AI Frontiers: AI on the Edge: Bringing Intelligence to Small De...Kevin Shaw at AI Frontiers: AI on the Edge: Bringing Intelligence to Small De...
Kevin Shaw at AI Frontiers: AI on the Edge: Bringing Intelligence to Small De...AI Frontiers
 
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...Intel® Software
 

Tendances (20)

GPU Computing with Python and Anaconda: The Next Frontier
GPU Computing with Python and Anaconda: The Next FrontierGPU Computing with Python and Anaconda: The Next Frontier
GPU Computing with Python and Anaconda: The Next Frontier
 
GTC 2016 Opening Keynote
GTC 2016 Opening KeynoteGTC 2016 Opening Keynote
GTC 2016 Opening Keynote
 
組み込みから HPC まで ARM コアで実現するエコシステム
組み込みから HPC まで ARM コアで実現するエコシステム組み込みから HPC まで ARM コアで実現するエコシステム
組み込みから HPC まで ARM コアで実現するエコシステム
 
GTC 2017 オートモーティブ最新情報
GTC 2017 オートモーティブ最新情報GTC 2017 オートモーティブ最新情報
GTC 2017 オートモーティブ最新情報
 
2016 06 nvidia-isc_supercomputing_car_v02
2016 06 nvidia-isc_supercomputing_car_v022016 06 nvidia-isc_supercomputing_car_v02
2016 06 nvidia-isc_supercomputing_car_v02
 
NVIDIA Keynote #GTC21
NVIDIA Keynote #GTC21 NVIDIA Keynote #GTC21
NVIDIA Keynote #GTC21
 
Classification of aerial photographs using DIGITS 2 - Mike Wang
Classification of aerial photographs using DIGITS 2 - Mike WangClassification of aerial photographs using DIGITS 2 - Mike Wang
Classification of aerial photographs using DIGITS 2 - Mike Wang
 
Possibilities of generative models
Possibilities of generative modelsPossibilities of generative models
Possibilities of generative models
 
JETSON : AI at the EDGE
JETSON : AI at the EDGEJETSON : AI at the EDGE
JETSON : AI at the EDGE
 
車載組み込み用ディープラーニング・エンジン NVIDIA DRIVE PX
車載組み込み用ディープラーニング・エンジン NVIDIA DRIVE PX車載組み込み用ディープラーニング・エンジン NVIDIA DRIVE PX
車載組み込み用ディープラーニング・エンジン NVIDIA DRIVE PX
 
DRIVE PX 2
DRIVE PX 2DRIVE PX 2
DRIVE PX 2
 
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
 
AI on the Edge
AI on the EdgeAI on the Edge
AI on the Edge
 
Implementing AI: High Performance Architectures: A Universal Accelerated Comp...
Implementing AI: High Performance Architectures: A Universal Accelerated Comp...Implementing AI: High Performance Architectures: A Universal Accelerated Comp...
Implementing AI: High Performance Architectures: A Universal Accelerated Comp...
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
 
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發 GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
 
Embedded and Reliable Computer Vision
Embedded and Reliable Computer VisionEmbedded and Reliable Computer Vision
Embedded and Reliable Computer Vision
 
“Streamlining Development of Edge AI Applications,” a Presentation from NVIDIA
“Streamlining Development of Edge AI Applications,” a Presentation from NVIDIA“Streamlining Development of Edge AI Applications,” a Presentation from NVIDIA
“Streamlining Development of Edge AI Applications,” a Presentation from NVIDIA
 
Kevin Shaw at AI Frontiers: AI on the Edge: Bringing Intelligence to Small De...
Kevin Shaw at AI Frontiers: AI on the Edge: Bringing Intelligence to Small De...Kevin Shaw at AI Frontiers: AI on the Edge: Bringing Intelligence to Small De...
Kevin Shaw at AI Frontiers: AI on the Edge: Bringing Intelligence to Small De...
 
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
 

Similaire à Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas

Synapse india fundamentals of dotnet development
Synapse india fundamentals of dotnet  developmentSynapse india fundamentals of dotnet  development
Synapse india fundamentals of dotnet developmentSynapseindiappsdevelopment
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart softwareJordi Cabot
 
Lecture 2 | Industry, Career Paths, Essential Skills
Lecture 2 | Industry, Career Paths, Essential SkillsLecture 2 | Industry, Career Paths, Essential Skills
Lecture 2 | Industry, Career Paths, Essential Skillsosamahjaleel
 
GDSC career guide presentation.pptx
GDSC career guide presentation.pptxGDSC career guide presentation.pptx
GDSC career guide presentation.pptxAryanSharma853911
 
GDSC career guide presentation.pptx
GDSC career guide presentation.pptxGDSC career guide presentation.pptx
GDSC career guide presentation.pptxDishaSharma737984
 
Sudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfSudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfsudipto801
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsShafiul Azam Chowdhury
 
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...yaminohime
 
2014 01-ticosa
2014 01-ticosa2014 01-ticosa
2014 01-ticosaPharo
 
Specification Of The Programming Language Of Java
Specification Of The Programming Language Of JavaSpecification Of The Programming Language Of Java
Specification Of The Programming Language Of JavaKim Moore
 
Er ravi kumar new
Er ravi kumar newEr ravi kumar new
Er ravi kumar newravi kumar
 
Er ravi kumar new
Er ravi kumar newEr ravi kumar new
Er ravi kumar newravi kumar
 
A knowledge-workbench-for-software-development
A knowledge-workbench-for-software-developmentA knowledge-workbench-for-software-development
A knowledge-workbench-for-software-developmentDimitris Panagiotou
 
Data science tools of the trade
Data science tools of the tradeData science tools of the trade
Data science tools of the tradeFangda Wang
 
The Development History of PVS-Studio for Linux
The Development History of PVS-Studio for LinuxThe Development History of PVS-Studio for Linux
The Development History of PVS-Studio for LinuxPVS-Studio
 

Similaire à Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas (20)

Synapse india fundamentals of dotnet development
Synapse india fundamentals of dotnet  developmentSynapse india fundamentals of dotnet  development
Synapse india fundamentals of dotnet development
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
 
Lecture 2 | Industry, Career Paths, Essential Skills
Lecture 2 | Industry, Career Paths, Essential SkillsLecture 2 | Industry, Career Paths, Essential Skills
Lecture 2 | Industry, Career Paths, Essential Skills
 
GDSC career guide presentation.pptx
GDSC career guide presentation.pptxGDSC career guide presentation.pptx
GDSC career guide presentation.pptx
 
GDSC career guide presentation.pptx
GDSC career guide presentation.pptxGDSC career guide presentation.pptx
GDSC career guide presentation.pptx
 
Sudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfSudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdf
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
 
Uc13.chapter.13
Uc13.chapter.13Uc13.chapter.13
Uc13.chapter.13
 
2014 01-ticosa
2014 01-ticosa2014 01-ticosa
2014 01-ticosa
 
Specification Of The Programming Language Of Java
Specification Of The Programming Language Of JavaSpecification Of The Programming Language Of Java
Specification Of The Programming Language Of Java
 
History Of C Essay
History Of C EssayHistory Of C Essay
History Of C Essay
 
Er ravi kumar new
Er ravi kumar newEr ravi kumar new
Er ravi kumar new
 
Er ravi kumar new
Er ravi kumar newEr ravi kumar new
Er ravi kumar new
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
A knowledge-workbench-for-software-development
A knowledge-workbench-for-software-developmentA knowledge-workbench-for-software-development
A knowledge-workbench-for-software-development
 
Data science tools of the trade
Data science tools of the tradeData science tools of the trade
Data science tools of the trade
 
The Development History of PVS-Studio for Linux
The Development History of PVS-Studio for LinuxThe Development History of PVS-Studio for Linux
The Development History of PVS-Studio for Linux
 
Resume_Up
Resume_UpResume_Up
Resume_Up
 

Plus de WithTheBest

Riccardo Vittoria
Riccardo VittoriaRiccardo Vittoria
Riccardo VittoriaWithTheBest
 
Recreating history in virtual reality
Recreating history in virtual realityRecreating history in virtual reality
Recreating history in virtual realityWithTheBest
 
Engaging and sharing your VR experience
Engaging and sharing your VR experienceEngaging and sharing your VR experience
Engaging and sharing your VR experienceWithTheBest
 
How to survive the early days of VR as an Indie Studio
How to survive the early days of VR as an Indie StudioHow to survive the early days of VR as an Indie Studio
How to survive the early days of VR as an Indie StudioWithTheBest
 
Mixed reality 101
Mixed reality 101 Mixed reality 101
Mixed reality 101 WithTheBest
 
Unlocking Human Potential with Immersive Technology
Unlocking Human Potential with Immersive TechnologyUnlocking Human Potential with Immersive Technology
Unlocking Human Potential with Immersive TechnologyWithTheBest
 
Building your own video devices
Building your own video devicesBuilding your own video devices
Building your own video devicesWithTheBest
 
Maximizing performance of 3 d user generated assets in unity
Maximizing performance of 3 d user generated assets in unityMaximizing performance of 3 d user generated assets in unity
Maximizing performance of 3 d user generated assets in unityWithTheBest
 
Haptics & amp; null space vr
Haptics & amp; null space vrHaptics & amp; null space vr
Haptics & amp; null space vrWithTheBest
 
How we use vr to break the laws of physics
How we use vr to break the laws of physicsHow we use vr to break the laws of physics
How we use vr to break the laws of physicsWithTheBest
 
The Virtual Self
The Virtual Self The Virtual Self
The Virtual Self WithTheBest
 
You dont have to be mad to do VR and AR ... but it helps
You dont have to be mad to do VR and AR ... but it helpsYou dont have to be mad to do VR and AR ... but it helps
You dont have to be mad to do VR and AR ... but it helpsWithTheBest
 
Omnivirt overview
Omnivirt overviewOmnivirt overview
Omnivirt overviewWithTheBest
 
VR Interactions - Jason Jerald
VR Interactions - Jason JeraldVR Interactions - Jason Jerald
VR Interactions - Jason JeraldWithTheBest
 
Japheth Funding your startup - dating the devil
Japheth  Funding your startup - dating the devilJapheth  Funding your startup - dating the devil
Japheth Funding your startup - dating the devilWithTheBest
 
Transported vr the virtual reality platform for real estate
Transported vr the virtual reality platform for real estateTransported vr the virtual reality platform for real estate
Transported vr the virtual reality platform for real estateWithTheBest
 
Measuring Behavior in VR - Rob Merki Cognitive VR
Measuring Behavior in VR - Rob Merki Cognitive VRMeasuring Behavior in VR - Rob Merki Cognitive VR
Measuring Behavior in VR - Rob Merki Cognitive VRWithTheBest
 
Global demand for Mixed Realty (VR/AR) content is about to explode.
Global demand for Mixed Realty (VR/AR) content is about to explode. Global demand for Mixed Realty (VR/AR) content is about to explode.
Global demand for Mixed Realty (VR/AR) content is about to explode. WithTheBest
 
VR, a new technology over 40,000 years old
VR, a new technology over 40,000 years oldVR, a new technology over 40,000 years old
VR, a new technology over 40,000 years oldWithTheBest
 

Plus de WithTheBest (20)

Riccardo Vittoria
Riccardo VittoriaRiccardo Vittoria
Riccardo Vittoria
 
Recreating history in virtual reality
Recreating history in virtual realityRecreating history in virtual reality
Recreating history in virtual reality
 
Engaging and sharing your VR experience
Engaging and sharing your VR experienceEngaging and sharing your VR experience
Engaging and sharing your VR experience
 
How to survive the early days of VR as an Indie Studio
How to survive the early days of VR as an Indie StudioHow to survive the early days of VR as an Indie Studio
How to survive the early days of VR as an Indie Studio
 
Mixed reality 101
Mixed reality 101 Mixed reality 101
Mixed reality 101
 
Unlocking Human Potential with Immersive Technology
Unlocking Human Potential with Immersive TechnologyUnlocking Human Potential with Immersive Technology
Unlocking Human Potential with Immersive Technology
 
Building your own video devices
Building your own video devicesBuilding your own video devices
Building your own video devices
 
Maximizing performance of 3 d user generated assets in unity
Maximizing performance of 3 d user generated assets in unityMaximizing performance of 3 d user generated assets in unity
Maximizing performance of 3 d user generated assets in unity
 
Wizdish rovr
Wizdish rovrWizdish rovr
Wizdish rovr
 
Haptics & amp; null space vr
Haptics & amp; null space vrHaptics & amp; null space vr
Haptics & amp; null space vr
 
How we use vr to break the laws of physics
How we use vr to break the laws of physicsHow we use vr to break the laws of physics
How we use vr to break the laws of physics
 
The Virtual Self
The Virtual Self The Virtual Self
The Virtual Self
 
You dont have to be mad to do VR and AR ... but it helps
You dont have to be mad to do VR and AR ... but it helpsYou dont have to be mad to do VR and AR ... but it helps
You dont have to be mad to do VR and AR ... but it helps
 
Omnivirt overview
Omnivirt overviewOmnivirt overview
Omnivirt overview
 
VR Interactions - Jason Jerald
VR Interactions - Jason JeraldVR Interactions - Jason Jerald
VR Interactions - Jason Jerald
 
Japheth Funding your startup - dating the devil
Japheth  Funding your startup - dating the devilJapheth  Funding your startup - dating the devil
Japheth Funding your startup - dating the devil
 
Transported vr the virtual reality platform for real estate
Transported vr the virtual reality platform for real estateTransported vr the virtual reality platform for real estate
Transported vr the virtual reality platform for real estate
 
Measuring Behavior in VR - Rob Merki Cognitive VR
Measuring Behavior in VR - Rob Merki Cognitive VRMeasuring Behavior in VR - Rob Merki Cognitive VR
Measuring Behavior in VR - Rob Merki Cognitive VR
 
Global demand for Mixed Realty (VR/AR) content is about to explode.
Global demand for Mixed Realty (VR/AR) content is about to explode. Global demand for Mixed Realty (VR/AR) content is about to explode.
Global demand for Mixed Realty (VR/AR) content is about to explode.
 
VR, a new technology over 40,000 years old
VR, a new technology over 40,000 years oldVR, a new technology over 40,000 years old
VR, a new technology over 40,000 years old
 

Dernier

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Dernier (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas

  • 1. Hire a machine to code Michael Arthur Bucko, Aurélien Nicolas 1
  • 2. We are learning the relation between human communication and source code to take communication to the next level. 2
  • 3. Agenda ● What is Deckard? Our vision and products ● Software team’s and developer’s perspectives ● Problems and solutions in coding ● Understanding source code ● Our work ● Demo! 3
  • 4. Our vision Step 1: Machines joining regular software teams to help them create better code faster Step 2: First large-scale code transplants Step 3: First machines writing their own code without humans 4
  • 5. Our product ● Deckard is building a framework for making code-based interactions between human and intelligent machines more relevant ○ We approach the problem from (at least) two angles: ■ Enriching human software developer’s and team’s context ■ Learning novel code representations to enable more effective communication between machines and humans 5
  • 6. Team Engineer Brain Helping single developer By enriching individual Contexts and communication Helping single developer And enriching their context IDEs Independent of IDE Not only finding all information relevant on time, but Also enabling a completely new interaction with software Ensemble-based decisions using novel representations of problems, users and source code data Teams and developers 6
  • 8. Problems in communication using code Connecting humans with code by creating innovative code exploration Enriching human-human interaction (real-time) Learning better code representations Researching code transplantation Code context Understanding developer’s preferences Code understanding Understanding current code in real-time Code navigation Understanding where to go next, what to do Knowledge sharing Sharing code intelligence 8
  • 9. Software team’s perspective ● Small teams define and build products that people love ● Not only engineers in teams, even engineers have diverse skills sets ● Team members share knowledge using a variety of channels ● Engineers learn from many sources of data 9
  • 10. Software developer’s perspective ● Developers are overwhelmed by data in their current contexts -- they need assistants who do part of their job ● Developers lack the right data -- they should know better ways of solving their problems to avoid tweaking and patching ● Assistants should be able to provide highly relevant data in real-time 10
  • 12. Step 1 Step 1: Machines joining regular software teams to help them create better code faster Step 2: First large-scale code transplants Step 3: First machines writing their own code without humans 12
  • 13. Plan for Step 1 PROBLEM SOLUTION Ineffective interaction between human members of software teams Profiling developers and making information more relevant Ineffective interaction between humans and code Requires understanding code better Augmenting “working memory” (navigation) Better knowledge sharing (dd protocol) Relevant information on time 13
  • 14. Plan for Step 1 PROBLEM SOLUTION Coding faster Better real-time navigation (using summarization) Sharing code knowledge more effectively (dd protocol) Making code more re-usable (transplantation) Understanding software development better (learning paths, code exploration modes, diversity of technology and skills) 14
  • 16. Ensemble - Understanding source code requires is more than regular text summarization - Regular: sentence reduction, sentence combination, syntactic transformation, paraphrasing, generalisation etc.[1] - Source-code-related concepts: code folding, code execution flow, code re-usability, etc. - Source code data: var names, method names, logic, comments, git commits, types, etc. - NLG: Generating project metadata [2] - We create an ensemble with source code-related features (novel representation of code) 1. A Neural Attention Model for Abstractive Sentence Summarization,Alexander M. Rush, Sumit Chopra, Jason Weston 2. Automatic Documentation Generation via Source Code Summarization of Method Context,Paul W. McBurney and Collin McMillan 16
  • 17. ... Data - Who you are in the team, - What you do, - What you know about codebase, - What is known about your problem in the web, - Who might be able to help you. ... Representations Creating novel representations of source code: - diverse programming languages with different syntaxes - we not only want to understand the current code, but also create better programming languages Understanding source code requires novel representations 17
  • 18. Features- Introduction - We experiment with SWUM (Software Word Usage Model) and NLG - We model source code using call graphs - We use both abstractive and extractive summarization used for understanding source code - Focus on abstractive methods -- we experiment with building source representation - For user profiling: we have access to programmer’s interaction with code, but also needs, settings, code styles, search results 18 1. Autofolding for Source Code Summarization, Jaroslav Fowke, Razvan Ranca , Miltiadis Allamanis , Mirella Lapata and Charles Sutton 2. Automatic Documentation Generation via Source Code Summarization of Method Context, Paul W. McBurney and Collin McMillan
  • 19. Features- 1/6 - We use a tree-based TASSAL (using scoped topic model) for creating some of the source code summarization features - We use NAMAS (attention-based summarization) for creating some of the code summarization features - We test code execution tools like code2flow or pycallgraph for creating code flow features 19
  • 20. Features- 2/6 - We use a tree-based TASSAL (using scoped topic model) for creating some of the source code summarization features - We use NAMAS (attention-based summarization) for creating some of the code summarization features - We test code execution tools like code2flow or pycallgraph for creating code flow features 20
  • 21. Features- 3/6 - We use a tree-based TASSAL (using scoped topic model) for creating some of the source code summarization features - We use NAMAS (attention-based summarization) for creating some of the code summarization features - We experiment with code execution tools like code2flow or pycallgraph for creating code flow features 21
  • 22. Features- 4/6 - We use our proprietary file tree-based parser independent of language to create: - Call graph feature - Code flow-related features - Code meaning features - Complexity-related features - We use multi-class classification for learning about specific files - We use RAKE (rapid automatic keyword extraction) 22
  • 23. Features- 5/6 - We also use our proprietary file tree-based parser independent of language to create: - Call graph feature - Code flow-related features - Code meaning features - Complexity-related features - We use multi-class classification for learning about specific files - We use RAKE (rapid automatic keyword extraction) 23
  • 24. Features- 6/6 - We also use our proprietary file tree-based parser independent of language to create: - Call graph feature - Code flow-related features - Code meaning features - Complexity-related features - We use multi-class classification for learning about specific files - We use RAKE (rapid automatic keyword extraction) 24
  • 25. We are also researching novel approaches to dealing with source code 25
  • 26. Summarization leads to transplantation ● Summarization is going to make everything clear, clarity is going to make more code re-usable ○ Re-usability can lead to successful code transplantation attempts ● Making code transplantation easier is going to boost software development ○ We are researching how to transplant source code to increase the capabilities of virtual assistants 26
  • 27. Summarization needs navigation ● When we show new (and more relevant) data to developers, they will be solving different problems (in different ways) ○ We need to give them new ways of traversing the code and sharing code information ● Current navigation you can see in the demo! 27
  • 28. Understanding code requires learning paths ● All problems have follow-up problems ○ Example: searching for more specific terms like “collision detection” often indicates that you will be trying to create a computer game or simulation ● Deckard learns not only about the current code context, but also about the bigger picture related to the problem ○ We come up with numerous metrics measuring source code’s performance from novel perspectives 28
  • 29. Understanding code requires assistance - Why is coding machines (currently) “difficult” for humans? - Making machines do what we imagine is tough, because we speak different languages - Things are started, but not finished, then no one can use them - Lots of code and no one knows all of it, make code simpler, document it - Many capabilities of programming languages are unknown, patching != solving - There’s many problems in software engineering that machines can solve - Machines are already among us, but now they will be more proactive and have more serious responsibilities 29
  • 31. Our work - We want machines to work in software teams together with people, so we create proactive assistants - We also want to transform coders into supercoders, so we re-invent source code navigation - Finally, we want to make source code re-usable, so we work on summarization and code transplantation tools 31
  • 32. Suggestions: unrelated random () otherone something weeksago duh String String String boolean int Your thing </> Thanks Google search Autocomplete IDE code search Search tickets/commits Ask someone Time consuming > provides pages Limited > too little documentation IDE search > keyword based, no relevancy Messy search > few code references Efficient...but high cost 32
  • 33. 33
  • 34. Click on/highlight any part of your code... ...and get contextual insights dynamically & in real time Click on any link and navigate through the code in both directions Ask task-related questions & get code recommendation (from own or open code) TEXT EDITOR / IDE DECKARD 34
  • 36. API - deckardSummarise: deckard summarises your source code. - deckardClarity: deckard recognises typical reusable code vs unique logic. - deckardGraph: deckard turns your source code into knowledge graph. - We are working on our API! 36
  • 37. DCODE for sharing source code information Team IDEs dcode:// code link Sees code in own IDE 37 Use cases: - Chats - Tickets - In-code hyperlinks Code Reads code Shares code
  • 38. github.com / deckardai DCODE A URL scheme for sharing source code information CodeSearch A get-started tool for discovering code using graph representations PuppyParachute A semi-automated testing helper for Python YaP A modern shell language derived from Python 38