SlideShare une entreprise Scribd logo
1  sur  109
Télécharger pour lire hors ligne
Wissenstransfer 2.0: 

Liest du noch, oder programmierst du schon?
The knowledge transfer company
• Project Lead of Eclipse Code Recommenders
• Eclipse Committer since 2010
• Plug-in Developer for 10 years (Eclipse 2.1)
• Member of the Eclipse Architecture Council
• Co-Lead of Java User Group Darmstadt
• Speaker at JUGs, EclipseCon, JAX, JavaOne…
• PhD in Computer Science
• CEO of Codetrails
!
• Passion to improve developers day-to-day work
with intelligent and practical tools - mostly using
Data Mining on Big (Software Engineering) Data.
About Me
2
@MarcelBruch
+MarcelBruch
Codetrails at a Glance
• The company behind Eclipse Code Recommenders
• Eclipse RCP Experts & Consultants
• Software Tool Developers
• Data Mining Specialists
• Research Spin-off Darmstadt University of Technology
3
supported by
About Eclipse Code Recommenders
4
2006 2009 2011
2012 2013 2014
Research
begins
CR
published
CR goes
Eclipse
CR 1.0 

Part of IDE CR 2.0
CR 2.1
Awards & Traction
5
2012
• >3.000.000 downloads
Top 20
• Talks at 50+ Democamps, Eclipse Days,
and Java User Groups all over Europe.
• Talks at 10+ intl. and
local conferences.
• articles every 4 months,
• lots of general coverage
PROBLEM
Problem #1: Knowledge Drain
7
Problem #1: Knowledge Drain
8
Problem #1: Knowledge Drain
9
Software
Problem #2: Continuous Learning
10
A typical developer day
11
Comprehend Task
3 %
Handling Interruptions
20 %
Navigate Code
14 %
Study Code
19 %
Searching Web
12 %
Reading Docs
6 %
Write Code
27 %
51% of their time, developers invest in searching
and understanding code
How we search
12
What developers look for
13
Question + Answer + Code Example = ✓
A typical developer day
14
Comprehend Task
3 %
Handling Interruptions
20 %
Navigate Code
14 %
Study Code
19 %
Searching Web
12 %
Reading Docs
6 %
Write Code
27 %
Even when writing code
we search…
If we don’t google…
15
1 of 387 ?
17
Code Completion
Frequency : 100 completions / day
Duration (⌀) : 27 seconds / completion
Sum : 45 minutes / day
9% of their time developers spent
searching in their code completion
Problem
18
Comprehend Task
3 %
Handling Interruptions
20 %
Searching Code
12 %
Navigate Code
14 %
Reading Code
19 %
Reading Docs
6 %
Edit Code
27 %
Problem
19
Comprehend Task
3 %
Handling Interruptions
20 %
Searching Code
12 %
Navigate Code
14 %
Reading Code
19 %
Reading Docs
6 %
Edit Code
27 %
• 51% of their time, developers spent searching the
web and existing code for help
• In addition, even when programming, they spent
9% searching in their code completion
• In total, 60% is about finding the right information
to solve a programming task
SOLUTION
„Leveraging the power of the crowds“
Behind every answered question…
21
… there is some code
22
Use the code
23
INTELLIGENT CODE COMPLETION
„Other developers frequently bought used the following methods…“
@Override!
protected Control createDialogArea(final Composite parent) {!
Composite container = (Composite) super.createDialogArea(parent);!
!
swtTextWidget = new Text(container, SWT.BORDER);!
swtTextWidget.|!
return container;!
}
Code Completion…
What does the developer need, i.e., which methods
should the code completion present to the user?
25
All 164 Methods of Text ?
Intelligent Code Completion
What your team really needs to know…
27
Snippet Completion (1)
28
HOW IT WORKS
„Finding the hidden gems in your code“
class Example extends Page {!
Text t;!
!
@Override!
void createContents() {!
t = new Text();!
t.setText(..);!
...!
}!
...!
}
in:Page.performOk()
Text.<init>()
Text.getText()
Text.setFont()
...
Text.setText()
… … … … … … …
0 0 0 …
30
1 1 1
From code to models...
in:Page.createContents()
31
class Example extends Page {!
Text t;!
...!
!
@Override!
void performOk() {!
t.getText();!
...!
}!
!
}
in:Page.performOk()
Text.<init>()
Text.getText()
Text.setFont()
...
Text.setText()
1 0 1 1
1 1
0 0
0 0 0 0
… … … … … …
…
…
…
From code to models...
in:Page.createContents()
32
class MyPage extends Page {!
!
Text t;!
@Override!
void createContents() {!
t = new Text();!
t.|<^space>!
}!
...!
}
1 …1 ?? ?0
From models to recommendations...
in:Page.performOk()
Text.<init>()
Text.getText()
Text.setFont()
...
Text.setText()
in:Page.createContents()
33
1 …1 ?? ?0
in:Page.performOk()
Text.<init>()
Text.getText()
Text.setFont()
...
Text.setText()
01 10 0 …
1 10 0 0 0
… … … … … …
…
…
1
0 1 1 1 0 …1
01 00 0 …1
⅔ ⅓ 0
From models to recommendations...
in:Page.createContents()
CALL-CHAIN COMPLETION
“Welcome to the jungle...”
public class MyView extends ViewPart {!
!
public void updateMessage(final String newMessage) {!
!
// How do I get an instance of IStatusLineManager?!
final IStatusLineManager manager = |!
!
}
How to obtain an instance of...
There is no trivial solution.
Again, what should code completion return?
35
What we need...
36
ViewPart
IViewSite
IAc-onBars
IStatusLineManager
getStatusLineManager()
getAc-onbars()
getViewSite()
public void updateMessage(final String newMessage) {!
!
// How do I get an instance of !
!
final IStatusLineManager manager = !
this!
.getViewSite()!
.getActionBars()!
.getStatusLineManager();!
!
manager.setMessage(newMessage);!
}
SUBWORDS COMPLETION
“BecausePureCamelCaseMatching****s!”
Use speaking names...?
38
When letters become just guidelines...
39I Like?
Source: http://vimeo.com/19369928
EXTENDING API DOCUMENTATION
“Developers who bought overwrote this method typically also overwrote...”
In good documentation we trust...
41
good
/**!
* Rollsback the transaction if any and clears different lists to!
* start with an empty resource again.!
* Note that the super.doUnload is not called because that clears!
* the list resulting in all kinds of undesirable inverseremoves.!
*/!
@Override!
protected void doUnload() {!
super.doUnload();!
}!
!
No? Are you sure?
Generating high-quality API documentation
42
/**!
* The number of questions.!
*/!
private int numberOfQuestions;!
!
!
/**!
* Sets the number of questions.!
* !
* @param numberOfQuestions the number of questions!
* @throws IllegalArgumentException the illegal argument exception!
*/!
public void setNumberOfQuestions(int numberOfQuestions) !
throws IllegalArgumentException {!
if (numberOfQuestions < 0) {!
throw new IllegalArgumentException("numberOfQuestions < 0");!
}!
this.numberOfQuestions = numberOfQuestions;!
}
What people say about JAutodoc...
43
User: Anonymous Rating: 9 2009-08-02 11:32:37
Wow exactly what I needed!
User: Anonymous Rating: 9 2009-02-13 19:58:32
Thank you... this plugin rocks!
User: Anonymous Rating: 9 2009-02-13 19:58:32
Works perfectly. Smarter than I expected!
WTH? What did you expect?!
How Recommenders is coming to rescue...
44
What documentation would you expect when
subclassing Dialog?
45
package org.eclipse.recommenders.examples.demo;!
!
import org.eclipse.jface.*;!
!
public class MyDialog extends Dialog {!
!
protected MyDialog(final IShellProvider parentShell) {!
super(parentShell);!
} !
}!
!
What Javadoc gives you...
46
A dialog is a specialized window used for narrow-
focused communication with the user.
!
Dialogs are usually modal. Consequently, it is
generally bad practice to open a dialog without a
parent. A modal dialog without a parent is not
prevented from disappearing behind the application's
other windows, making it very confusing for the user.
!
If there is more than one modal dialog is open the
second one should be parented off of the shell of the
first one otherwise it is possible that the OS will cus to
the first dialog potentially blocking the UI.
But what are the
hot-spots of Dialog?
org.eclipse.jface.dialogs.Dialog
What code completion offers...
47
Which of the 56 methods
should we override?
Recommending method overrides...
48
!
public class MyDialog extends Dialog {!
!
Recommending self-calls
49
public class MyWizard extends Wizard {!
!
! @Override!
public void addPages() {!
!
};
Mining for subclassing patterns
50
!
public class MyViewerSorter extends ViewerComparator {
Mined example code snippets…
51
!
public class MyDialog extends Dialog {!
!
@Override!
protected Control createDialogArea(Composite parent) {!
!
SNIPMATCH
„Stop searching Stackoverflow for code snippets“
Why do you use code templates?
53
Safe time typing
54
<ctrl+space>
<ctrl+space>
{
<ctrl+space>
<ctrl+space>
}
Learning from snippets
55
Eclipse Java Templates
56
42x Java Templates.
35x SWT Templates.
Learning from snippets
57
The rise of code snippet repositories
58
and many more...
Snipmatch
59
Recom
m
enders 2.1
AND IF THERE IS NO CODE TO ANALYZE?
„From code analysis to crowd sourcing“
Being for Software Developers
How 39 million click events make your IDE a smarter place
62
63
The amazon success factors
64
65
How about applying the very same
principles to software development?
So, instead of using the web browser…
66
68
!
!
!
Disclaimer
!
Data sharing is
involved!
!
Not Eclipse anymore!
Crowdsourced Code Completion
Developers that bought used a StringBuilder, typically…
69
A fairly trivial example…
70
Instead saying…
71
What if we‘d just count calls...?
72
Codetrails Connect Community Edition,

Install from http://www.codetrails.com/connect
!
void ctor() {	
!
	 	 List l = new A…	
}	
Crowdsourced Constructor Completion
73
What is the mostly likely completion a
developer looks for in this particular situation ?
74
1 out of 302
!
void ctor() {	
!
	 	 List l = new A…	
}	
Use (costly) subtype checks
75
Codetrails Completion Tweaks for Eclipse,

Install from http://download.codetrails.com/updates/connect/
Crowdsourcing constructor completions...?
76
It learns from you. From the very 1st moment.
Codetrails Connect Community Edition,

Install from http://download.codetrails.com/updates/connect/
public class MyDialog extends Dialog {	
!
|	
!
!
Crowdsourcing override completions...?
77
!
void quickfix() {	
!
	 	 List l = new A	
}	
How about fixing quick-fix?
78
Not fixed yet. But could be easily - when you start sharing your knowledge…
39.000.000 clicks for a smarter IDE
79
Read more (October 2013)

http://www.codetrails.com/blog/powered-33-million-code-completions-codetrails-connect-12
Method Overrides
1.579.303
Constructor Calls
8.915.540
Method Calls
38.254.438
48.749.281
Bootstrapped with

30++ GB Java Bytecode.
Powered by Maven Central
and EclipseSource Yoxos.
56.424 crowdsourced completion events
80
org.eclipse.*
11 %org.apache.*
4 %
com.google.*
9 %
com.vaadin.*
5 %
com.codetrails.*
3 %
others
14 %
javax.*
3 %
java.[n]io.*
6 %
java.util.*
25 %
java.lang.*
21 %
From December 22 to March 12
Trend: Events sent by the community
81
Visit the Codetrails Connect live dashboard:

http://download.codetrails.com/connect/dashboard/
How well does it work?
82
What do you expect?
How well does it work?
83
Numberofproposalsmade
1
2
3
4
5
6
7
Position in code completion window
-1 0 1 2 3 4 5 6
993
475
304
214
189
123
1.094
833
327 238
197 114 87
145 56 40 38
96 61 23 22 21
77 52 19 21 20 10
963 591 373 243 285 151 157
Hit
Miss
not found
Successfully concluded sessions
84
Codetrails
78,8
JDT
67,9
JDT standalone vs. Codetrails
Developers find what they need 11% more often with smart code completion.
Number of documentation lookups saved in 3 months: 3.000!
What get’s shared?
85
What is shared?
86
{!
„type“: „StringBuilder“,!
„completion“: „append(String)“!
}
Sharing Preferences
87
Still scared of crowdsourcing?
88
Do you also suffer from Anatidaephobia?
„Big Brother is watching you“

http://anniemachon.ch/annie_machon/2013/11/cryptofestival-london-30th-november.html
89
ANATIDAEPHOBIA IS THE FEAR

THAT SOMEWHERE IN THE WORLD,
THERE IS A DUCK WATCHING YOU.
90
https://vaadin.com/blog/-/blogs/crowdsourcing-vaadin-with-codetrails-connect
91
Snippets going social
5 0
Enriching Javadoc
92
Eclipse Code Recommenders Livedoc 0.8 Incubator

Install from http://eclipse.org/recommenders/incubators
Javadocs with mined snippets
93http://download.codetrails.com/livedoc/published/latest/org/eclipse/jface/org.eclipse.jface/3.8.102/
94
Breaking News:!
Words carry meaning!
As leading scientists found out, words....
Rethinking Recommendation
for Code Completion
A simple observation
95
You wouldn‘t expect a call to #dispose()

in #createSomething(), right?
What you expect is...
96
How many words do you have for ‟create” ?
97
So, it works for #createSomething too!
98
Almost no difference!
99
Precision
0
25
50
75
100
Recall
0 10 20 30 40 50 60 70 80 90 100
Classic
Verbs
Interpolated Precision Recall Curves over 136.761 samples on JRE
What get‘s shared?
100
{!
„method“: „create“!
„type“: „Composite“,!
„completion“: „setLayout(...)“!
}
Let‘s back up here for a second!
101
We get (almost) language agnostic!
102
Read More
103
Installation
104
WRAP UP
„Closing notes“
All that only happens if you share…
106
107
Yes, there is a duck somewhere.
108But it probably doesn’t care what you are doing.
THANK YOU
@MarcelBruch
+MarcelBruch

Contenu connexe

Tendances

API workshop: Deep dive into Java
API workshop: Deep dive into JavaAPI workshop: Deep dive into Java
API workshop: Deep dive into JavaTom Johnson
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross SeminarXamarin
 
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QAFest
 
Holy PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood editionHoly PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood editionDave Diehl
 
API Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterAPI Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterTom Johnson
 
Titanium - Making the most of your single thread
Titanium - Making the most of your single threadTitanium - Making the most of your single thread
Titanium - Making the most of your single threadRonald Treur
 
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)
212 kuliah 01   pengenalan pemrograman berorientasi objek (java)212 kuliah 01   pengenalan pemrograman berorientasi objek (java)
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)yuan99
 
Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!Chris Roberts
 
Java fx smart code econ
Java fx smart code econJava fx smart code econ
Java fx smart code econTom Schindl
 
Advanced SQL Injection Attack & Defenses
Advanced SQL Injection Attack & DefensesAdvanced SQL Injection Attack & Defenses
Advanced SQL Injection Attack & DefensesTiago Mendo
 
Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012Hazem Saleh
 
Is code review the solution?
Is code review the solution?Is code review the solution?
Is code review the solution?Tiago Mendo
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)Tom Johnson
 
API Documentation Workshop tcworld India 2015
API Documentation Workshop tcworld India 2015API Documentation Workshop tcworld India 2015
API Documentation Workshop tcworld India 2015Tom Johnson
 
Eclipse Indigo DemoCamp Walldorf 2011
Eclipse Indigo DemoCamp Walldorf 2011Eclipse Indigo DemoCamp Walldorf 2011
Eclipse Indigo DemoCamp Walldorf 2011Marcel Bruch
 
2010 06-24 karlsruher entwicklertag
2010 06-24 karlsruher entwicklertag2010 06-24 karlsruher entwicklertag
2010 06-24 karlsruher entwicklertagMarcel Bruch
 
Node.js exception handling
Node.js exception handlingNode.js exception handling
Node.js exception handlingMinh Hoang
 

Tendances (20)

API workshop: Deep dive into Java
API workshop: Deep dive into JavaAPI workshop: Deep dive into Java
API workshop: Deep dive into Java
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross Seminar
 
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
 
Holy PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood editionHoly PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood edition
 
API Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterAPI Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC Chapter
 
Titanium - Making the most of your single thread
Titanium - Making the most of your single threadTitanium - Making the most of your single thread
Titanium - Making the most of your single thread
 
iOS Application Exploitation
iOS Application ExploitationiOS Application Exploitation
iOS Application Exploitation
 
Design patterns
Design patternsDesign patterns
Design patterns
 
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)
212 kuliah 01   pengenalan pemrograman berorientasi objek (java)212 kuliah 01   pengenalan pemrograman berorientasi objek (java)
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)
 
Basic Selenium Training
Basic Selenium TrainingBasic Selenium Training
Basic Selenium Training
 
Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!
 
Java fx smart code econ
Java fx smart code econJava fx smart code econ
Java fx smart code econ
 
Advanced SQL Injection Attack & Defenses
Advanced SQL Injection Attack & DefensesAdvanced SQL Injection Attack & Defenses
Advanced SQL Injection Attack & Defenses
 
Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012
 
Is code review the solution?
Is code review the solution?Is code review the solution?
Is code review the solution?
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)
 
API Documentation Workshop tcworld India 2015
API Documentation Workshop tcworld India 2015API Documentation Workshop tcworld India 2015
API Documentation Workshop tcworld India 2015
 
Eclipse Indigo DemoCamp Walldorf 2011
Eclipse Indigo DemoCamp Walldorf 2011Eclipse Indigo DemoCamp Walldorf 2011
Eclipse Indigo DemoCamp Walldorf 2011
 
2010 06-24 karlsruher entwicklertag
2010 06-24 karlsruher entwicklertag2010 06-24 karlsruher entwicklertag
2010 06-24 karlsruher entwicklertag
 
Node.js exception handling
Node.js exception handlingNode.js exception handling
Node.js exception handling
 

En vedette

Eclipse Neon Webinar Automated Error Reporting
Eclipse Neon Webinar Automated Error ReportingEclipse Neon Webinar Automated Error Reporting
Eclipse Neon Webinar Automated Error ReportingMarcel Bruch
 
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1Marcel Bruch
 
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Marcel Bruch
 
Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Marcel Bruch
 
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Marcel Bruch
 
The Sin City of Code - No Images
The Sin City of Code - No ImagesThe Sin City of Code - No Images
The Sin City of Code - No ImagesMarcel Bruch
 

En vedette (7)

Eclipse Neon Webinar Automated Error Reporting
Eclipse Neon Webinar Automated Error ReportingEclipse Neon Webinar Automated Error Reporting
Eclipse Neon Webinar Automated Error Reporting
 
Need 4 Speed FI
Need 4 Speed FINeed 4 Speed FI
Need 4 Speed FI
 
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
 
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
 
Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...
 
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
 
The Sin City of Code - No Images
The Sin City of Code - No ImagesThe Sin City of Code - No Images
The Sin City of Code - No Images
 

Similaire à JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0

To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016
To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016
To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016Codemotion
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done rightWekoslav Stefanovski
 
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...AboutYouGmbH
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworksYuri Visser
 
walkmod: An open source tool for coding conventions
walkmod: An open source tool for coding conventionswalkmod: An open source tool for coding conventions
walkmod: An open source tool for coding conventionswalkmod
 
Writing clean code in C# and .NET
Writing clean code in C# and .NETWriting clean code in C# and .NET
Writing clean code in C# and .NETDror Helper
 
ASP.NET Session 3
ASP.NET Session 3ASP.NET Session 3
ASP.NET Session 3Sisir Ghosh
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software DevelopmentZeeshan MIrza
 
Practices and Tools for Building Better APIs
Practices and Tools for Building Better APIsPractices and Tools for Building Better APIs
Practices and Tools for Building Better APIsPeter Hendriks
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesInductive Automation
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScriptJeremy Likness
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesInductive Automation
 
Everything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPLEverything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPLMario-Leander Reimer
 
Everything-as-code - A polyglot adventure
Everything-as-code - A polyglot adventureEverything-as-code - A polyglot adventure
Everything-as-code - A polyglot adventureQAware GmbH
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross IntroductionStuart Lodge
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesFab L
 
LECTURE 1 - Introduction to Programming.pptx
LECTURE 1 - Introduction to Programming.pptxLECTURE 1 - Introduction to Programming.pptx
LECTURE 1 - Introduction to Programming.pptxAOmaAli
 
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...DevSecCon
 

Similaire à JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0 (20)

To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016
To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016
To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
 
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworks
 
walkmod: An open source tool for coding conventions
walkmod: An open source tool for coding conventionswalkmod: An open source tool for coding conventions
walkmod: An open source tool for coding conventions
 
Core JavaScript
Core JavaScriptCore JavaScript
Core JavaScript
 
Writing clean code in C# and .NET
Writing clean code in C# and .NETWriting clean code in C# and .NET
Writing clean code in C# and .NET
 
The ABC's of IaC
The ABC's of IaCThe ABC's of IaC
The ABC's of IaC
 
ASP.NET Session 3
ASP.NET Session 3ASP.NET Session 3
ASP.NET Session 3
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software Development
 
Practices and Tools for Building Better APIs
Practices and Tools for Building Better APIsPractices and Tools for Building Better APIs
Practices and Tools for Building Better APIs
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
 
Everything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPLEverything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPL
 
Everything-as-code - A polyglot adventure
Everything-as-code - A polyglot adventureEverything-as-code - A polyglot adventure
Everything-as-code - A polyglot adventure
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation Slides
 
LECTURE 1 - Introduction to Programming.pptx
LECTURE 1 - Introduction to Programming.pptxLECTURE 1 - Introduction to Programming.pptx
LECTURE 1 - Introduction to Programming.pptx
 
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...DevSecCon Singapore 2018 -  Remove developers’ shameful secrets or simply rem...
DevSecCon Singapore 2018 - Remove developers’ shameful secrets or simply rem...
 

Plus de Marcel Bruch

Snipmatch - Snippets for the World
Snipmatch - Snippets for the WorldSnipmatch - Snippets for the World
Snipmatch - Snippets for the WorldMarcel Bruch
 
DWX 2013 Nuremberg
DWX 2013 NurembergDWX 2013 Nuremberg
DWX 2013 NurembergMarcel Bruch
 
2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler Democamps2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler DemocampsMarcel Bruch
 
Eclipse Democamp Zurich
Eclipse Democamp ZurichEclipse Democamp Zurich
Eclipse Democamp ZurichMarcel Bruch
 
Eclipse Code Recommenders @ MAJUG 2011
Eclipse Code Recommenders @ MAJUG 2011Eclipse Code Recommenders @ MAJUG 2011
Eclipse Code Recommenders @ MAJUG 2011Marcel Bruch
 
Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...
Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...
Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...Marcel Bruch
 
IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011Marcel Bruch
 

Plus de Marcel Bruch (7)

Snipmatch - Snippets for the World
Snipmatch - Snippets for the WorldSnipmatch - Snippets for the World
Snipmatch - Snippets for the World
 
DWX 2013 Nuremberg
DWX 2013 NurembergDWX 2013 Nuremberg
DWX 2013 Nuremberg
 
2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler Democamps2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler Democamps
 
Eclipse Democamp Zurich
Eclipse Democamp ZurichEclipse Democamp Zurich
Eclipse Democamp Zurich
 
Eclipse Code Recommenders @ MAJUG 2011
Eclipse Code Recommenders @ MAJUG 2011Eclipse Code Recommenders @ MAJUG 2011
Eclipse Code Recommenders @ MAJUG 2011
 
Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...
Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...
Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...
 
IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011
 

Dernier

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 

Dernier (20)

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 

JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0