SlideShare una empresa de Scribd logo
1 de 40
Richard Tibbetts CTO, StreamBase OSCON, July 2011 StreamBase EventFlowVisual Programming for Complex Event Processing
StreamBase EventFlow How many people have heard of CEP, Event Processing, Streambase? Demo with StreamBase Studio Input streams, output streams State management Running applications Showing performance and latency So, CEP is a great new way to build realtime data processing systems
EventFlow Diagrams
StreamBase EventFlow What’s Complex Event Processing? Where did StreamBase come from and why is it visual? Learning from our experience: Lesson 1: Visual is great, but it starts out hard Lesson 2: Not every bit of visual has to be programming Lesson 3: Errors, errors, errors Lesson 4: Not every bit of programming has to be visual Lesson 5: Visual is great, and it ends up hard Conclusion: Benefits of Visual Programming for Real Programmers
What is Complex Event Processing? Static Data Processing:“What were the best performing stocks last week?” Event Streams time 1 2 3 4 5 6 7 8 9 Complex Event Processing: “When Microsoft moves 2% outside its 5-minute moving average, buy now.” Execute
Complex Event Processing aka Event Processing Software organized by events (compare object oriented) What’s an event? What’s an object? And event is something can trigger processing, can include data. Naturally but not usually represents a “real world” event or observation. Complex Event Processing Platforms Software stack for event based systems, event driven architectures Event Programming Language – SQL-based, Rules-based, or State-based Commercial and open source: StreamBase, Progress, Microsoft, IBM, Oracle, SAP, Esper, Drools and many more Adopted in financial services and other markets System monitoring, industrial process, logistics, defense/intelligence Other Event Processing Approaches: Erlang, Actors, node.js, .NET Rx
Applications Data Output (publish) ,[object Object]
 Gateways
 Venues
 Messaging
Visualization
 More….Data Ingest ,[object Object]
 Pricing
 Orders
 Files
 Signals
 Database queriesStreamBase Server  Adapters Read and write to any database StreamBase Event Processing Platform Studio Integrated Development Environment Visualization StreamBase Developer Studio Graphical StreamSQL for developing,  back testing and deploying applications.   StreamBase Component Exchange StreamBase Frameworks  Adapters Data Management
StreamBase has been Visual from the Beginning Mike Stonebraker always wanted to build a visual environment The Aurora project
Why a Visual Domain-Specific programming Language High level Graphical Appropriate for purpose Understandable Flexible
Visual Programming for Real Programmers Target audience is not end users or non-experts Generally people who could do it in C++ or low level Java/.NET if they wanted to So don’t hold back on functionality But do deliver on the usability and discoverability people expect from visual languages
StreamBase Development Studio Today Projects & Resources Development Canvas Configurable  Properties Operator Palette
How did we get there To here: From here: While these guys: Imagined this:
Building an IDE Defining your visual model Making it easy to build simple things quickly Lesson 1: Visual is great, but it starts out hard
Building an IDE The IDE is going to be as important as your runtime and language Build on a platform (Eclipse, maybe something else) Do as little as possible, leverage the platform, leave things out The platform is going to keep getting better, so delaying reduces work Early adopters are forgiving if you get the core right.
Defining your visual model You’ve never had a syntactic holy war until you’ve had a syntactic holy war about icons Benefits of being based on a visual paradigm with some history Existing terminology Example “applications” you can draw from Existing icons Easier for some developers to learn, but only if they know your paradigm A manageable piece of a visual model has 30-40 items in it, so information density must be relatively high StreamBase applications before good modularity ran to 600 items. Now they run to several thousand.
Get your serialization format right Serialization format is not to be taken lightly We did XML, but it our schema too verbose and fragile in places Chicken-and-egg choices when developing features mean you will hand coding a lot of apps until IDE support is there for what you build. Until you build diff/merge support, and whenever you have bugs, developers are going to deal with your serialization Especially for backwards compatibility
Making it easy to build simple things quickly Wherever possible, let people quickly hack things together, so their initial experience is positive Useful defaults for newly instantiated components Avoid modal dialogs, required questions Support both mouse and keyboard Keyboard accelerators only used by a fraction of developers, and generally only for initial application construction If you get the information density and right, coding speed should not be bottlenecked on graph construction Except that it will always be for demos and trivial apps
Non-semantic information is important Modules versus Groups Parallel Regions versus Parallel Items Lesson 2:Not every bit of visual has to be programming
Non-Semantic Information is Important Text languages have non-semantic information Whitespace, comments, variable names Visual languages do too, possibly even more Graphical layout of applications, colors, sizes of things, in addition to above Opinion: Layout is an important way to convey understanding Opinion: Any application too large for auto-layout needs modules
Modules versus Groups Group Module Module in a Group
Parallel Regions versus Parallel Items Color determines synchronization Modularity determines synchronization
Good Errors Located Errors Capture Fields Lesson 3:Errors, Errors, Errors
Bad Errors
Good Errors
Good Errors
Capture Fields – Change the language to improve errors Polymorphic modules were previously macro-style substitution Strongly typed parameters for template-style polymorphism reduce flexibility, enable call-site friendly errors Typing is done at the edges, instead of in the middle @T= population points w/ capt points w/ pop points w/ capt points w/ pop points w/ capt Capture Fields: Modularity in a Stream-Relational Event Processing Language Naomi Seyfer, Richard Tibbetts and Nathaniel Mishkin. DEBS 2011
SSQL text language Interfaces, event dispatch, parallelism, extension points Easy stuff and key info is still visible Lesson 4:Not every bit of programming has to be visual
StreamSQL Text Language In version 3.7 we introduced a textual, SQL-style dialect of the StreamSQL language Adoption by developers has been limited to a few areas Embedding queries in other languages, code generation 99% of developers still write exclusively in EventFlow But there has been significant value for the development team Faster prototyping of new features Easier testing Would recommend a textual dialect, but tricky to keep it from limiting adoption of your visual dialect.
Interfaces Interfaces are non-visual, edited through properties panes Often created by refactorings
Event Dispatch and Parallelism

Más contenido relacionado

Similar a Stream SQL eventflow visual programming for real programmers presentation

Latest_Edwin_Alberto_Arias_Espinoza
Latest_Edwin_Alberto_Arias_EspinozaLatest_Edwin_Alberto_Arias_Espinoza
Latest_Edwin_Alberto_Arias_Espinoza
Edwin Espinoza
 

Similar a Stream SQL eventflow visual programming for real programmers presentation (20)

Training report
Training reportTraining report
Training report
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinForm
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
Envisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesEnvisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010
 
How .NET Framework Supports Cost-Effective Application Development
How .NET Framework Supports Cost-Effective Application DevelopmentHow .NET Framework Supports Cost-Effective Application Development
How .NET Framework Supports Cost-Effective Application Development
 
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
Get your mobile app in production in 3 months: Native and Reactive Mobile AppsGet your mobile app in production in 3 months: Native and Reactive Mobile Apps
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
 
Latest_Edwin_Alberto_Arias_Espinoza
Latest_Edwin_Alberto_Arias_EspinozaLatest_Edwin_Alberto_Arias_Espinoza
Latest_Edwin_Alberto_Arias_Espinoza
 
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonIntroduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
 
EGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL OverviewEGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL Overview
 
Sudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfSudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdf
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 
Sudipta_Mukherjee_Resume-Nov_2022.pdf
Sudipta_Mukherjee_Resume-Nov_2022.pdfSudipta_Mukherjee_Resume-Nov_2022.pdf
Sudipta_Mukherjee_Resume-Nov_2022.pdf
 
Why Choose .NET Framework for Web Development
Why Choose .NET Framework for Web DevelopmentWhy Choose .NET Framework for Web Development
Why Choose .NET Framework for Web Development
 
Eclipse Developement @ Progress Software
Eclipse Developement @ Progress SoftwareEclipse Developement @ Progress Software
Eclipse Developement @ Progress Software
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 
EGL Conference 2011 - Keynote
EGL Conference 2011 - KeynoteEGL Conference 2011 - Keynote
EGL Conference 2011 - Keynote
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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
 

Stream SQL eventflow visual programming for real programmers presentation

  • 1. Richard Tibbetts CTO, StreamBase OSCON, July 2011 StreamBase EventFlowVisual Programming for Complex Event Processing
  • 2. StreamBase EventFlow How many people have heard of CEP, Event Processing, Streambase? Demo with StreamBase Studio Input streams, output streams State management Running applications Showing performance and latency So, CEP is a great new way to build realtime data processing systems
  • 4. StreamBase EventFlow What’s Complex Event Processing? Where did StreamBase come from and why is it visual? Learning from our experience: Lesson 1: Visual is great, but it starts out hard Lesson 2: Not every bit of visual has to be programming Lesson 3: Errors, errors, errors Lesson 4: Not every bit of programming has to be visual Lesson 5: Visual is great, and it ends up hard Conclusion: Benefits of Visual Programming for Real Programmers
  • 5. What is Complex Event Processing? Static Data Processing:“What were the best performing stocks last week?” Event Streams time 1 2 3 4 5 6 7 8 9 Complex Event Processing: “When Microsoft moves 2% outside its 5-minute moving average, buy now.” Execute
  • 6. Complex Event Processing aka Event Processing Software organized by events (compare object oriented) What’s an event? What’s an object? And event is something can trigger processing, can include data. Naturally but not usually represents a “real world” event or observation. Complex Event Processing Platforms Software stack for event based systems, event driven architectures Event Programming Language – SQL-based, Rules-based, or State-based Commercial and open source: StreamBase, Progress, Microsoft, IBM, Oracle, SAP, Esper, Drools and many more Adopted in financial services and other markets System monitoring, industrial process, logistics, defense/intelligence Other Event Processing Approaches: Erlang, Actors, node.js, .NET Rx
  • 7.
  • 12.
  • 17. Database queriesStreamBase Server Adapters Read and write to any database StreamBase Event Processing Platform Studio Integrated Development Environment Visualization StreamBase Developer Studio Graphical StreamSQL for developing, back testing and deploying applications. StreamBase Component Exchange StreamBase Frameworks Adapters Data Management
  • 18. StreamBase has been Visual from the Beginning Mike Stonebraker always wanted to build a visual environment The Aurora project
  • 19. Why a Visual Domain-Specific programming Language High level Graphical Appropriate for purpose Understandable Flexible
  • 20. Visual Programming for Real Programmers Target audience is not end users or non-experts Generally people who could do it in C++ or low level Java/.NET if they wanted to So don’t hold back on functionality But do deliver on the usability and discoverability people expect from visual languages
  • 21. StreamBase Development Studio Today Projects & Resources Development Canvas Configurable Properties Operator Palette
  • 22. How did we get there To here: From here: While these guys: Imagined this:
  • 23. Building an IDE Defining your visual model Making it easy to build simple things quickly Lesson 1: Visual is great, but it starts out hard
  • 24. Building an IDE The IDE is going to be as important as your runtime and language Build on a platform (Eclipse, maybe something else) Do as little as possible, leverage the platform, leave things out The platform is going to keep getting better, so delaying reduces work Early adopters are forgiving if you get the core right.
  • 25. Defining your visual model You’ve never had a syntactic holy war until you’ve had a syntactic holy war about icons Benefits of being based on a visual paradigm with some history Existing terminology Example “applications” you can draw from Existing icons Easier for some developers to learn, but only if they know your paradigm A manageable piece of a visual model has 30-40 items in it, so information density must be relatively high StreamBase applications before good modularity ran to 600 items. Now they run to several thousand.
  • 26. Get your serialization format right Serialization format is not to be taken lightly We did XML, but it our schema too verbose and fragile in places Chicken-and-egg choices when developing features mean you will hand coding a lot of apps until IDE support is there for what you build. Until you build diff/merge support, and whenever you have bugs, developers are going to deal with your serialization Especially for backwards compatibility
  • 27. Making it easy to build simple things quickly Wherever possible, let people quickly hack things together, so their initial experience is positive Useful defaults for newly instantiated components Avoid modal dialogs, required questions Support both mouse and keyboard Keyboard accelerators only used by a fraction of developers, and generally only for initial application construction If you get the information density and right, coding speed should not be bottlenecked on graph construction Except that it will always be for demos and trivial apps
  • 28. Non-semantic information is important Modules versus Groups Parallel Regions versus Parallel Items Lesson 2:Not every bit of visual has to be programming
  • 29. Non-Semantic Information is Important Text languages have non-semantic information Whitespace, comments, variable names Visual languages do too, possibly even more Graphical layout of applications, colors, sizes of things, in addition to above Opinion: Layout is an important way to convey understanding Opinion: Any application too large for auto-layout needs modules
  • 30. Modules versus Groups Group Module Module in a Group
  • 31. Parallel Regions versus Parallel Items Color determines synchronization Modularity determines synchronization
  • 32. Good Errors Located Errors Capture Fields Lesson 3:Errors, Errors, Errors
  • 36. Capture Fields – Change the language to improve errors Polymorphic modules were previously macro-style substitution Strongly typed parameters for template-style polymorphism reduce flexibility, enable call-site friendly errors Typing is done at the edges, instead of in the middle @T= population points w/ capt points w/ pop points w/ capt points w/ pop points w/ capt Capture Fields: Modularity in a Stream-Relational Event Processing Language Naomi Seyfer, Richard Tibbetts and Nathaniel Mishkin. DEBS 2011
  • 37. SSQL text language Interfaces, event dispatch, parallelism, extension points Easy stuff and key info is still visible Lesson 4:Not every bit of programming has to be visual
  • 38. StreamSQL Text Language In version 3.7 we introduced a textual, SQL-style dialect of the StreamSQL language Adoption by developers has been limited to a few areas Embedding queries in other languages, code generation 99% of developers still write exclusively in EventFlow But there has been significant value for the development team Faster prototyping of new features Easier testing Would recommend a textual dialect, but tricky to keep it from limiting adoption of your visual dialect.
  • 39. Interfaces Interfaces are non-visual, edited through properties panes Often created by refactorings
  • 40. Event Dispatch and Parallelism
  • 41. Extension Points Referenced applications are defined on a tab, or externally in configuration files
  • 42. Keep key info for application understanding visible How to decide what to keep visible? Application correctness and dependencies are visible Important non-visible stuff gets badges Code review and auditing is important Tooltips on canvas items show all operator information Diff tools help, align canvas with diff of serialized code
  • 43. If you succeed, people are going to expect a full IDE Backwards compatibility,Debuggers, Diff/Merge, Document Generators Lesson 5: Visual is great, and it ends up hard
  • 44. People are going to expect a full IDE If you’re successful, people will want everything, perfect Debuggers, Diff/merge Documentation management Refactoring support, and more refactoring supportx Commenting out code Forward and backward compat Unit testing frameworks, Dependency injection frameworks Framework frameworks In many cases choosing the right IDE platform helps a lot Luckily if you get here you are successful and have help
  • 46. Heterogeneous teams Match the whiteboard Natural interaction with compiler Benefits of a visual languageThe future of visual languages
  • 47. Big Win for Visual – Heterogeneous teams The traditional separation between “business” and “IT” is eroding – this is a good thing People who run the business have technical backgrounds and want to stay in the loop Continuum of people interacting with EventFlow apps Hardcore system software developers Enterprise IT developers Quantitative analysts Business experts End users and business leadership All of them on the same project, all of them in the code.
  • 48. Big Win for Visual – Matching the Mental Model What does your language align to? The hardware/machine model A compromise in the interest of software engineering (Object Oriented) The mental model of the solution Aligning to the mental model of the solution is good for the programmer and great for the compiler Fewer design patterns means faster code Doesn’t have to be visual, can apply to non-visual DSLs Of course, there is always room for improvement in impedance match between the problem domain, the language, and the execution environment.
  • 49. Shameless Plugs StreamBase Download and try it out: http:/www.streambase.com Build something and submit to the StreamBase Component Exchange http://sbx.streambase.com We’re hiring and we’re training http://www.streambase.com/developers-training-events.htm DEBS – Distributed Event Based Systems Academic (ACM) Conference, July 16-20, 2012 in Berlin http://www.csw.inf.fu-berlin.de/debs2012/ EPTS – Event Processing Technology Society http://ep-ts.org industry consortium Questions?
  • 50. Download StreamBase and More Information http://www.streambase.com Questions?

Notas del editor

  1. Speaker: Richard
  2. :06
  3. :08
  4. EDDIE BUILDS APP STARTING HERE (BUILDS)
  5. C++ Errors
  6. Java Eclipse IDE error and Quickfix
  7. :48