This document discusses how crowdsourcing ideas and feedback within an integrated development environment (IDE) can speed up the software development process. It proposes collecting data on code usage patterns from developers and using that data to provide automated code completions, documentation, and help for common tasks. Error reports could also be crowdsourced and linked to existing solutions to help developers quickly resolve issues. The goal is to leverage collective intelligence and experience within the development community to reduce individual learning curves and speeds.
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Marcel Bruch
Democamp slides show-casing how to set up automated error reporting for Eclipse and OSGI-based products. Check out the webinar [1] for details steps.
[1] https://www.youtube.com/watch?v=TDSv9Tm7hGA
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Marcel Bruch
Democamp slides show-casing how to set up automated error reporting for Eclipse and OSGI-based products. Check out the webinar [1] for details steps.
[1] https://www.youtube.com/watch?v=TDSv9Tm7hGA
The "Top 54 JavaScript Interview Questions" PDF covers a comprehensive set of JavaScript topics, including data types, object creation, functions, cookies, variable scopes, the 'this' keyword, closures, arrow functions, debugging, and more. It provides detailed insights into JavaScript concepts through questions and answers. You can access the full document for an in-depth understanding of these essential JavaScript interview topics.
1. What do you understand about JavaScript?
2. What’s the difference between JavaScript and Java?
3. What are the different types of data available in JavaScript?
4. What are the features of JavaScript?
5. What benefits does JavaScript offer compared to other web technologies?
6. How can an object be created in JavaScript?
7. How can an array be created in JavaScript?
8. What are some of the pre-existing methods available in JavaScript?
9. What are the scopes of a variable in JavaScript?
10. What is the ‘this’ keyword in JavaScript?
11. What are the conventions of naming a variable in JavaScript?
12. What is Callback in JavaScript?
13. How do you debug a JavaScript code?
14. What distinguishes a Function declaration and Function expression?
15. How can you include JavaScript code in an HTML file?
16. What do you understand about cookies?
17. How would you create a cookie?
18. How would you read a cookie?
19. How would you delete a cookie?
20. What’s the difference between let and var?
21. What are Closures in JavaScript?
22. What are the arrow functions in JavaScript?
23. What are the various methods to access an HTML element in JavaScript code?
24. What are the methods for defining a variable in JavaScript?
25. What are Imports and Exports in JavaScript?
26. What is the differences between Document and Window in JavaScript?
27. What are some of the JavaScript frameworks and their purposes?
28. What is the difference between Undefined and Undeclared in JavaScript?
29. What is the differences between Undefined and Null in JavaScript?
30. What is the difference between Session storage and Local storage?
31. What are the different data types that exist in JavaScript?
32. What is the ‘this’ keyword in JavaScript?
33. What is the difference between Call and Apply? (explain in detail with examples)
34. What are the scopes of a variable in JavaScript?
35. What are the arrow functions in JavaScript?
36. Explain Hoisting in JavaScript. (with examples)
37. Difference between “==” and “===” operators (with examples)
38. Difference between var and let keyword
39. Implicit Type Coercion in JavaScript (in detail with examples)
40. Is JavaScript a statically typed or a dynamically typed language?
41. NaN property in JavaScript
42. Passed by value and passed by reference
43. Immediately Invoked Function in JavaScript
44. Characteristics of JavaScript strict mode
45. Higher Order Functions (with examples)
#JavaScriptInterviewQuestions #JavaScriptCoding #WebDevelopment #JavaScriptBasics
Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform. Software IP management and project development governance are provided by Outercurve Foundation, a nonprofit fund.
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPStéphanie Roger
Que vous soyez développeur ou entrepreneur, découvrez le projet STAMP piloté par Inria, l'institut national de recherche dédié aux sciences du numérique.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1VoUxQr.
Rachel Reese talks about Jet.com's chaos testing methods and code in depth, but also lays out a path to implementation that everyone can use. Filmed at qconlondon.com.
Rachel Reese is a long-time software engineer and math geek. She currently helps run the Nashville F# User group, NashFSharp, and previously ran the Burlington, VT functional programming user group, VTFun. She's also an ASPInsider, an F# MVP, a community enthusiast, one of the founding lambdaladies, and a Rachii.
To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016Codemotion
This talk focuses on analyzing the infamous 65K methods limit for Android apps, from a pragmatic and down-to-earth perspective for developers. You will get to understand what exactly this problem is about and why it exists in the first place. Moreover, we will go through the possible solutions, each one of them presented with pros and cons. At the end of this talk, you should be able to evaluate which solution best suits your app, and even if you need a solution in the first place.
Presented at JavaZone (10th September 2014)
Video available at https://vimeo.com/105758303
But how much reason supports the rituals and mantras often repeated as coding guidelines? It turns out that the advice often fails, even for the novices they are intended to guide. Let's reason through these rather than accept them as unquestioned habits.
How many asserts should a test case have or not have? How much work should a constructor (not) do? What mantra guides test-first programming? How do you name your classes and other identifiers? How do you lay out your code? These questions and others have standard answers based on received and repeated mantras, practices that are communicated in good faith to be passed on as habits. But how much reason supports these assertions? It turns out that the advice often fails, even for the novices they are intended to guide.
This talk has little respect for ritual and tradition and takes no prisoners: What actually makes sense and what doesn't when it comes to matters of practice? What guidelines offer the greatest effect and the greatest learning?
Testing is fundamental in software development. Quality gates demand high coverage levels, pull requests need sufficient tests, leading to teams spending considerable time writing and maintaining them. But are we using our tests to their full potential?
'If code is hard to test, the design can be improved'. Starting from this mantra, this deep-dive session unveils hints to simplify code, break-down complexity, and effectively use functional programming. We'll delve into topics like fixture creep, partial mocks, onion architecture, and pure functions, providing numerous best practices and practical tips for your testing.
Be warned: This session may significantly disrupt your work routine and will likely change how you see testing. Attend at your own risk.
original (better quality) on https://docs.google.com/presentation/d/1bnwj8CrFGo5KekONYSeIHySdkoXZiewJxkHcZjXnzkQ/
slides from OpenDaylight Summit Oct 2016 Seattle
There are tons of awesome new tools produced by terrific companies and developers that get everyone excited about using their fancy new tool-set by essentially starting from scratch. This talk is not about using a fancy new framework and rewriting your entire application. As a developer who has spent the majority of his time working in legacy codebases where the first commits pre-date jQuery, it's hard not to get wrapped up in the "I want to rewrite the whole app with X" mentality. But in reality, time constraints or just the legacy framework you're building your apps with doesn't allow for that. Or, more realistically, it just needs to work and there is no business case for a rewrite. What this talk will show you how you can still enhance your front-end operation within an existing legacy codebase. I'll talk about first steps to modularizing a monolith, or simply taking a portion of a legacy app and modernizing it with a new toolset. This not only helps you as a developer to succeed with new tools, it makes you feel like you aren't being left behind in the modern world. Whether you're using legacy jQuery, or just some crammed together JavaScript, you shouldn't lose the ability to modernize your application, just because you can't buy in 100% to a modern framework.
Tips on how to break apart your monolithic JavaScript
Building an extension method to modularize your application
Creating backcompat methods for legacy code modernization
Using a modern framework for a portion of your app, and integrating that with your existing code.
Other considerations (minification, module loaders, tests, etc)
My talk about automated error reporting, code cities and other problems on various Eclipse Democamps in Winter 2014. Many images have been removed for legal reasons.
The "Top 54 JavaScript Interview Questions" PDF covers a comprehensive set of JavaScript topics, including data types, object creation, functions, cookies, variable scopes, the 'this' keyword, closures, arrow functions, debugging, and more. It provides detailed insights into JavaScript concepts through questions and answers. You can access the full document for an in-depth understanding of these essential JavaScript interview topics.
1. What do you understand about JavaScript?
2. What’s the difference between JavaScript and Java?
3. What are the different types of data available in JavaScript?
4. What are the features of JavaScript?
5. What benefits does JavaScript offer compared to other web technologies?
6. How can an object be created in JavaScript?
7. How can an array be created in JavaScript?
8. What are some of the pre-existing methods available in JavaScript?
9. What are the scopes of a variable in JavaScript?
10. What is the ‘this’ keyword in JavaScript?
11. What are the conventions of naming a variable in JavaScript?
12. What is Callback in JavaScript?
13. How do you debug a JavaScript code?
14. What distinguishes a Function declaration and Function expression?
15. How can you include JavaScript code in an HTML file?
16. What do you understand about cookies?
17. How would you create a cookie?
18. How would you read a cookie?
19. How would you delete a cookie?
20. What’s the difference between let and var?
21. What are Closures in JavaScript?
22. What are the arrow functions in JavaScript?
23. What are the various methods to access an HTML element in JavaScript code?
24. What are the methods for defining a variable in JavaScript?
25. What are Imports and Exports in JavaScript?
26. What is the differences between Document and Window in JavaScript?
27. What are some of the JavaScript frameworks and their purposes?
28. What is the difference between Undefined and Undeclared in JavaScript?
29. What is the differences between Undefined and Null in JavaScript?
30. What is the difference between Session storage and Local storage?
31. What are the different data types that exist in JavaScript?
32. What is the ‘this’ keyword in JavaScript?
33. What is the difference between Call and Apply? (explain in detail with examples)
34. What are the scopes of a variable in JavaScript?
35. What are the arrow functions in JavaScript?
36. Explain Hoisting in JavaScript. (with examples)
37. Difference between “==” and “===” operators (with examples)
38. Difference between var and let keyword
39. Implicit Type Coercion in JavaScript (in detail with examples)
40. Is JavaScript a statically typed or a dynamically typed language?
41. NaN property in JavaScript
42. Passed by value and passed by reference
43. Immediately Invoked Function in JavaScript
44. Characteristics of JavaScript strict mode
45. Higher Order Functions (with examples)
#JavaScriptInterviewQuestions #JavaScriptCoding #WebDevelopment #JavaScriptBasics
Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform. Software IP management and project development governance are provided by Outercurve Foundation, a nonprofit fund.
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPStéphanie Roger
Que vous soyez développeur ou entrepreneur, découvrez le projet STAMP piloté par Inria, l'institut national de recherche dédié aux sciences du numérique.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1VoUxQr.
Rachel Reese talks about Jet.com's chaos testing methods and code in depth, but also lays out a path to implementation that everyone can use. Filmed at qconlondon.com.
Rachel Reese is a long-time software engineer and math geek. She currently helps run the Nashville F# User group, NashFSharp, and previously ran the Burlington, VT functional programming user group, VTFun. She's also an ASPInsider, an F# MVP, a community enthusiast, one of the founding lambdaladies, and a Rachii.
To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016Codemotion
This talk focuses on analyzing the infamous 65K methods limit for Android apps, from a pragmatic and down-to-earth perspective for developers. You will get to understand what exactly this problem is about and why it exists in the first place. Moreover, we will go through the possible solutions, each one of them presented with pros and cons. At the end of this talk, you should be able to evaluate which solution best suits your app, and even if you need a solution in the first place.
Presented at JavaZone (10th September 2014)
Video available at https://vimeo.com/105758303
But how much reason supports the rituals and mantras often repeated as coding guidelines? It turns out that the advice often fails, even for the novices they are intended to guide. Let's reason through these rather than accept them as unquestioned habits.
How many asserts should a test case have or not have? How much work should a constructor (not) do? What mantra guides test-first programming? How do you name your classes and other identifiers? How do you lay out your code? These questions and others have standard answers based on received and repeated mantras, practices that are communicated in good faith to be passed on as habits. But how much reason supports these assertions? It turns out that the advice often fails, even for the novices they are intended to guide.
This talk has little respect for ritual and tradition and takes no prisoners: What actually makes sense and what doesn't when it comes to matters of practice? What guidelines offer the greatest effect and the greatest learning?
Testing is fundamental in software development. Quality gates demand high coverage levels, pull requests need sufficient tests, leading to teams spending considerable time writing and maintaining them. But are we using our tests to their full potential?
'If code is hard to test, the design can be improved'. Starting from this mantra, this deep-dive session unveils hints to simplify code, break-down complexity, and effectively use functional programming. We'll delve into topics like fixture creep, partial mocks, onion architecture, and pure functions, providing numerous best practices and practical tips for your testing.
Be warned: This session may significantly disrupt your work routine and will likely change how you see testing. Attend at your own risk.
original (better quality) on https://docs.google.com/presentation/d/1bnwj8CrFGo5KekONYSeIHySdkoXZiewJxkHcZjXnzkQ/
slides from OpenDaylight Summit Oct 2016 Seattle
There are tons of awesome new tools produced by terrific companies and developers that get everyone excited about using their fancy new tool-set by essentially starting from scratch. This talk is not about using a fancy new framework and rewriting your entire application. As a developer who has spent the majority of his time working in legacy codebases where the first commits pre-date jQuery, it's hard not to get wrapped up in the "I want to rewrite the whole app with X" mentality. But in reality, time constraints or just the legacy framework you're building your apps with doesn't allow for that. Or, more realistically, it just needs to work and there is no business case for a rewrite. What this talk will show you how you can still enhance your front-end operation within an existing legacy codebase. I'll talk about first steps to modularizing a monolith, or simply taking a portion of a legacy app and modernizing it with a new toolset. This not only helps you as a developer to succeed with new tools, it makes you feel like you aren't being left behind in the modern world. Whether you're using legacy jQuery, or just some crammed together JavaScript, you shouldn't lose the ability to modernize your application, just because you can't buy in 100% to a modern framework.
Tips on how to break apart your monolithic JavaScript
Building an extension method to modularize your application
Creating backcompat methods for legacy code modernization
Using a modern framework for a portion of your app, and integrating that with your existing code.
Other considerations (minification, module loaders, tests, etc)
My talk about automated error reporting, code cities and other problems on various Eclipse Democamps in Winter 2014. Many images have been removed for legal reasons.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Need 4 Speed FI
1. NEXT GENERATION IDE
HOW CROWDSOURCING (IN) YOUR IDE SPEEDS UP
YOUR SOFTWARE DEVELOPMENT PROCESSES
2. About me
• 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.
2
Marcel Bruch
@marcelbruch
3. About Codetrails
• The company behind Eclipse Code Recommenders
• Software Tool Developers
• Data Mining Specialists
• Eclipse RCP Experts & Consultants
• Research Spin-off Darmstadt University of Technology
3
4. NEXT GENERATION IDE
HOW CROWDSOURCING (IN) YOUR IDE SPEEDS UP
YOUR SOFTWARE DEVELOPMENT PROCESSES
8. { ——– }
8
Your Software
{ — —– }
Developer
Your Software
9. Your Software
Your Software
9
Framework
Developer
?
{ ——– }
{ — —– }
ADpepvleicloaptioenr
Developer
!
10. Here the problems begin…
Documentation
10
{ ——– }
docs are
missing!
there are
no code
examples!
docs are
outdated!
api is
bloated!
code has
many bugs!
is the api
easy?
is
documentation
good?
does it work?
are there
bugs?
where to
improve?
where do
you struggle?
what do you
use?
what can I
remove?
11. How to leverage the crowd?
11
Documentation
Framework
Developer
{ ——— }
{ — —— { } ——— }
Application
Developers
{ — —— }
13. By integrating with your IDE…
13
Debugging
instructions
Source code
Used
frameworks
Selected
proposals
Viewed
documentation
Runtime errors
and stacktraces
15. In API documentation we trust
15
/**
* 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?
16. In those situations you wish you could…
16
/**
* 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();
}
17. …and let the committers know…
17
Hello committers,
we received a user feedback for TYPE «com.your.class». The user rated the
overall documentation quality as «NOT_AT_ALL_HELPFUL». In particular
he/she said:
1. UNCLEAR_INFORMATION
The user provided the following comment:
«The class is deprecated but no pointers are given which other class to use
instead. Please provide a hint in the class javadoc. Thanks, Frederik»
Thank you for caring.
Your friendly
Javadoc Feedback Inbox
The class is deprecated but no pointers are given which other
class to use instead. Please provide a hint in the class javadoc.
Thanks, Frederik
Customer case study & prototype at Codetrails.
19. These I’ve a great idea moments…
19
{ ——– }
Application
Developer
Product
Manager
20. How we learn about it…
20
{ ——– }
Application
Developer
21. But if we just could have asked Eclipse…
public class HelpExample extends WizardPage
{
|
21
Eclipse Code Recommenders Snipmatch
See http://eclipse.org/recommenders/manual/#snipmatch
24. Integrating Snippets into API docs
24
public class MyDialog extends Dialog {
(automatically, of course)
@Override
protected Control createDialogArea(Composite parent) {
33. One example…
33
@Override
public void create(JPanel parent) {
JButton button = new JButton();
button.|
Which method will you
call next in this situation?
35. A fairly trivial example…
StringBuilder sb = new StringBuilder();
sb.|
35
36. What if we’d just count clicks…?
StringBuilder sb = new StringBuilder();
sb.|
36
{ ——– }
Application
Developer
{
„type“: „StringBuilder“,
„completion“: „append(String)“
}
37. We could crowdsource code completion!
37
StringBuilder sb = new StringBuilder();
sb.|
Codetrails Connect Community Edition,
Install from http://www.codetrails.com/connect
38. How about argument completions?
38
@Override
protected Control createControl(final Composite parent) {
textWidget = new Text(parent, SWT.BORDER);
textWidget.addListener(eventType, listener)
Codetrails Connect Community Edition,
Install from http://www.codetrails.com/connect
39. And when extending a framework base class?
39
public class MyDialog extends Dialog {
|
Codetrails Connect Community Edition,
Install from http://www.codetrails.com/connect
40. Successfully concluded sessions
40
crowdsourced
79,5
JDT
66,5
JDT as-is vs. crowdsourced
13% less terminated sessions,
measured in over 400.000
sessions
42. Costs fixing a bug between code and production
42
Relative cost of a bugfix
25x
10x
0x 0x 1x
Req Design Code Acceptance Production
http://www.abeacha.com/NIST_press_release_bugs_cost.htm
43. What’s wrong with this code?
43
@Override
public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new GridLayout());
TableViewer tableViewer = new TableViewer(container);
tableViewer.setUseHashlookup(false);
tableViewer.addSelectionChangedListener(listener);
Table table = tableViewer.getTable();
tableViewer.setCellEditors(editors);
tableViewer.setColumnProperties(columnProperties);
tableViewer.setLabelProvider(labelProvider);
tableViewer.setInput(input);
tableViewer.setContentProvider(provider);
}
44. Findbugs’ crowd ed. would find it…
Codetrails Findbugs, currently closed alpha 44
50. Reporters get immediate feedback
50
Your report has been matched against an existing bug which
was closed as FIXED with comment:
Please update to the latest version.
See Bug 446841 for details.
52. Finding similar errors (aka duplicates)
org.eclipse.swt.SWTException: Invalid Thread access
at org.eclipse.swt.SWT.error(SWT.java:3884)
at org.eclipse.swt.SWT.error(SWT.java:3799)
at org.eclipse.swt.SWT.error(SWT.java:3770)
at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:355)
at org.eclipse.swt.widgets.ProgressBar.setSelection(ProgressBar.java:317)
at org.eclipse.recommenders.stacktraces.Demo.run(Demo.java:23)
at java.lang.Thread.run(Thread.java:619)
52
+ java version
+ bundle/jar versions
+ installed extensions
+ thread dumps
+ …
54. Debugging – the old way
54
Exception in thread “Thread-0” org.eclipse.swt.SWTException: Invalid Thread access
at org.eclipse.swt.SWT.error(SWT.java:3884)
at org.eclipse.swt.SWT.error(SWT.java:3799)
at org.eclipse.swt.SWT.error(SWT.java:3770)
at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:355)
at org.eclipse.swt.widgets.ProgressBar.setSelection(ProgressBar.java:317)
at org.eclipse.recommenders.stacktraces.Demo.run(Demo.java:23)
at java.lang.Thread.run(Thread.java:619)
57. How about sharing exceptions that
occurred at development time?
57
Exception in thread “Thread-0” org.eclipse.swt.SWTException: Invalid Thread access
at org.eclipse.swt.SWT.error(SWT.java:3884)
at org.eclipse.swt.SWT.error(SWT.java:3799)
at org.eclipse.swt.SWT.error(SWT.java:3770)
at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:355)
at org.eclipse.swt.widgets.ProgressBar.setSelection(ProgressBar.java:317)
at org.eclipse.recommenders.stacktraces.Demo.run(Demo.java:23)
at java.lang.Thread.run(Thread.java:619)
58. Telling your users what went wrong
Found a match!
We found a knowledge base entry that matches your stacktrace.
The SWTException “Invalid thread access” you experienced
is caused by calling an UI widget’s methods from a non-ui
thread. See knowledge base entry #341 for further details.
A concept yet, no prototype. 58
62. The IDE is your browser - let’s learn to use it as such
62
Debugging
instructions
Source code
Used
frameworks
Selected
proposals
Viewed
documentation
Runtime errors
and stacktraces