JavaScript is a scripting language most commonly implemented in browsers that has been used for several decades now to enrich web-based applications. A a dynamically typed language that was rapidly developed for a narrow purpose, JavaScript has many nuances that make it difficult to manage in large enterprise applications. TypeScript was developed as the answer to provide a way to build large JavaScript applications without changing the language itself. TypeScript is a superset of JavaScript that provides mostly development-time features such as auto-completion, type checking, and discovery of interfaces. Learn from Wintellect principal consultant Jeremy Likness about the challenges JavaScript brings to enterprise development and how TypeScript provides an elegant solution through its implementation of types, interfaces, classes, modules and definitions.
Wintellect - Devscovery - Enterprise JavaScript Development 1 of 2Jeremy Likness
In this three hour training session Jeremy Likness will cover the nuances of building extremely large enterprise applications that rely heavily on JavaScript. Today’s web platforms have more reach than ever before, and use of JavaScript is evolving rapidly to take advantage of libraries that provide services ranging from cross-browser compatibility to organization and streamlining of code. Learn about some of the popular JavaScript libraries in use today including jQuery and related plugins, Requires, Backbone, Kendo UI, Postal and more. Learn how Wintellect tackles the challenge of working with JavaScript within large development teams and how these technologies correlate closely to server side technologies like MVC and Web API. In building a reference application, Jeremy will uncover some of these challenges and proposed solutions, provide an overview of current best practices and patterns in JavaScript, and discuss challenges like scoping code, enforcing standards, and unit testing. This session is designed to provide you with the tools and insights you need to take advantage of modern web development using the HTML5, CSS3, and JavaScript stack.
Matteo Vaccari - TDD per Android | Codemotion Milan 2015Codemotion
This document discusses test-driven development (TDD) for Android applications. It begins by explaining the benefits of testing such as helping design code, checking code works, and delivering software faster. It then discusses different types of tests and how to structure tests for Android applications using techniques like model-view separation, presenter-first, and mocking Android APIs. The document provides examples of unit tests, acceptance tests, and how to separate an Android app from core logic. It emphasizes programming skill over libraries and delivering valuable software sustainably through TDD.
In this quality assurance training session, you will learn Core Java for Selenium Testing. Topics covered in this course are:
• What is JAVA?
• Steps to install Java for Development
• What is IDE?
• Eclipse
• Variables and Types
• Conditions
• Loops
• Arrays
• Oops Concepts
• Class and Object
• Encapsulation
• Inheritance
• Polymorphism
• Abstraction
• Java Access Modifiers
• Constructor in Java
• Errors & Exceptions
• Exceptions handling
To know more, visit this link: https://www.mindsmapped.com/courses/quality-assurance/software-testing-quality-assurance-qa-training-with-hands-on-exercises/
The document discusses clean code principles such as writing code for readability by other programmers, using meaningful names, following the DRY principle of not repeating yourself, and focusing on writing code that is maintainable and changeable. It provides examples of clean code versus less clean code and emphasizes that code is written primarily for human consumption by other programmers, not for computers. The document also discusses principles like the Single Responsibility Principle and the Boy Scout Rule of leaving the code cleaner than how you found it. It questions how to measure clean code and emphasizes the importance of writing tests for code and refactoring legacy code without tests.
This document provides an overview of key object-oriented programming concepts including classes and objects, inheritance, encapsulation, polymorphism, interfaces, abstract classes, and design patterns. It discusses class construction and object instantiation. Inheritance is described as both exposing implementation details and potentially breaking encapsulation. Composition is presented as an alternative to inheritance. The document also covers method overriding, overloading, and duck typing as forms of polymorphism. Finally, it briefly introduces common design principles like SOLID and patterns like delegation.
OWF12/PAUG Conf Days Dart a new html5 technology, nicolas geoffray, softwar...Paris Open Source Summit
Dart is a programming language developed by Google to make web development easier. It aims to improve on JavaScript by providing better support for structuring large applications, faster startup performance, static typing for documentation and error prevention, and isolation-based concurrency. Dart code compiles to JavaScript, allowing it to run in any modern browser. It is open source and designed for programmer productivity and application performance.
This document summarizes the key lessons learned from converting a legacy robotics project from Objective-C to Swift. It discusses issues with the original Objective-C code like silent nil failures, weak type safety with NSCoding, and problems with error handling. The document then covers how Swift addresses these issues through features like optional values, type safety, value types, and improved error handling with enums, throws, and do-catch. Overall, converting to Swift reduced the code base size by 75%, removed classes of bugs, found subtle bugs earlier, and allowed new features by making the code more robust.
Wintellect - Devscovery - Enterprise JavaScript Development 1 of 2Jeremy Likness
In this three hour training session Jeremy Likness will cover the nuances of building extremely large enterprise applications that rely heavily on JavaScript. Today’s web platforms have more reach than ever before, and use of JavaScript is evolving rapidly to take advantage of libraries that provide services ranging from cross-browser compatibility to organization and streamlining of code. Learn about some of the popular JavaScript libraries in use today including jQuery and related plugins, Requires, Backbone, Kendo UI, Postal and more. Learn how Wintellect tackles the challenge of working with JavaScript within large development teams and how these technologies correlate closely to server side technologies like MVC and Web API. In building a reference application, Jeremy will uncover some of these challenges and proposed solutions, provide an overview of current best practices and patterns in JavaScript, and discuss challenges like scoping code, enforcing standards, and unit testing. This session is designed to provide you with the tools and insights you need to take advantage of modern web development using the HTML5, CSS3, and JavaScript stack.
Matteo Vaccari - TDD per Android | Codemotion Milan 2015Codemotion
This document discusses test-driven development (TDD) for Android applications. It begins by explaining the benefits of testing such as helping design code, checking code works, and delivering software faster. It then discusses different types of tests and how to structure tests for Android applications using techniques like model-view separation, presenter-first, and mocking Android APIs. The document provides examples of unit tests, acceptance tests, and how to separate an Android app from core logic. It emphasizes programming skill over libraries and delivering valuable software sustainably through TDD.
In this quality assurance training session, you will learn Core Java for Selenium Testing. Topics covered in this course are:
• What is JAVA?
• Steps to install Java for Development
• What is IDE?
• Eclipse
• Variables and Types
• Conditions
• Loops
• Arrays
• Oops Concepts
• Class and Object
• Encapsulation
• Inheritance
• Polymorphism
• Abstraction
• Java Access Modifiers
• Constructor in Java
• Errors & Exceptions
• Exceptions handling
To know more, visit this link: https://www.mindsmapped.com/courses/quality-assurance/software-testing-quality-assurance-qa-training-with-hands-on-exercises/
The document discusses clean code principles such as writing code for readability by other programmers, using meaningful names, following the DRY principle of not repeating yourself, and focusing on writing code that is maintainable and changeable. It provides examples of clean code versus less clean code and emphasizes that code is written primarily for human consumption by other programmers, not for computers. The document also discusses principles like the Single Responsibility Principle and the Boy Scout Rule of leaving the code cleaner than how you found it. It questions how to measure clean code and emphasizes the importance of writing tests for code and refactoring legacy code without tests.
This document provides an overview of key object-oriented programming concepts including classes and objects, inheritance, encapsulation, polymorphism, interfaces, abstract classes, and design patterns. It discusses class construction and object instantiation. Inheritance is described as both exposing implementation details and potentially breaking encapsulation. Composition is presented as an alternative to inheritance. The document also covers method overriding, overloading, and duck typing as forms of polymorphism. Finally, it briefly introduces common design principles like SOLID and patterns like delegation.
OWF12/PAUG Conf Days Dart a new html5 technology, nicolas geoffray, softwar...Paris Open Source Summit
Dart is a programming language developed by Google to make web development easier. It aims to improve on JavaScript by providing better support for structuring large applications, faster startup performance, static typing for documentation and error prevention, and isolation-based concurrency. Dart code compiles to JavaScript, allowing it to run in any modern browser. It is open source and designed for programmer productivity and application performance.
This document summarizes the key lessons learned from converting a legacy robotics project from Objective-C to Swift. It discusses issues with the original Objective-C code like silent nil failures, weak type safety with NSCoding, and problems with error handling. The document then covers how Swift addresses these issues through features like optional values, type safety, value types, and improved error handling with enums, throws, and do-catch. Overall, converting to Swift reduced the code base size by 75%, removed classes of bugs, found subtle bugs earlier, and allowed new features by making the code more robust.
Dart is a new language for the web, enabling you to write JavaScript on a secure and manageable way. No need to worry about "JavaScript: The bad parts".
This presentation concentrates on the developer experience converting from the Java based GWT to Dart.
The document provides an introduction to design patterns developed by the Gang of Four (GoF). It discusses several common design patterns in JavaScript like the constructor pattern, module pattern, singleton pattern, observer pattern, mediator pattern, prototype pattern, command pattern, facade pattern, and mixin pattern. For each pattern, it explains the problem it addresses, provides an example implementation, and notes advantages and disadvantages of the pattern. The overall document serves as a high-level overview of fundamental design patterns and their usage in JavaScript applications.
The document discusses how programming languages can influence thought by enabling or limiting the types of solutions that can be conceived and implemented. It argues that languages without closures or metaprogramming make some design solutions unthinkable. As an example, it shows how duplicated code in a Java program can be removed by defining a select method that accepts a closure, thus abstracting the common logic into a reusable concept. The document advocates learning diverse languages, including Lisp variants, to broaden one's thinking beyond the constraints of a single language.
This BJUG presentation is focused on the unique inter-process communication (IPC) mechanism introduced by Android, namely Binder. As such, we will be exploring the entire Android software stack, starting from the Linux kernel, moving up to the Linux userspace, reaching the Android framework and ending our journey with some real-life usages of Binder in Android applications.
We will show how widely used Binder actually is in Android, thus proving that it is a cornerstone of the operating system. The main focus is on the programming model exposed towards developers and we will highlight when, how and why it should be used.
https://bjug.ro/binding-android-piece-by-piece/
Core Java Tutorial. In case you want to get trained in Spring Framework you can refer here:
<a href="https://www.emexotechnologies.com/courses/java-development-training/core-java-training/">Java Training</a>
This document provides an overview of object-oriented programming and the Java platform. It discusses the history of computing and the development of object-oriented programming. It then covers key concepts of object-oriented programming like classes, objects, encapsulation, inheritance and polymorphism. The document also provides details about the Java programming language, its benefits like portability and its components like the Java Runtime Environment. It concludes with explaining the phases of creating and executing a Java program from writing code to running the compiled bytecode.
This document discusses method handles and lambda expressions in Java 8. It explains that method handles are references to methods that can be executed and are obtained through reflection. Method handles improve on reflection by caching access at lookup rather than invocation time. Lambda expressions allow anonymous blocks of code and are implemented using invokedynamic and method handles. When the compiler encounters a lambda expression, it is "desugared" into a private method and an invokedynamic instruction generates an instance of a functional interface to reference the lambda expression.
Presentation on the principles, philosophy and a few applications of object oriented programming along with a few pointers on how to effectively code. Presented at a session aimed at undergrad computer science students at the University of Pune.
Present along with Mr. Anirudh Tomer and Mr. Toshish Jawale.
This document provides an overview and introduction to LINQ (Language Integrated Query). It discusses key LINQ concepts like LINQ to SQL, LINQ providers, extension methods, lambda expressions, and expression trees. It explains that LINQ allows querying over various data sources using a consistent SQL-like syntax. The document also previews upcoming sections on LINQ usage, performance, advanced topics, and references additional learning resources.
1. Code refactoring involves changing the internal structure of code to improve its understandability and maintainability without changing its external behavior.
2. Refactoring techniques include extracting methods, inline methods, managing temporary variables, simplifying conditionals, and moving features between objects.
3. Refactoring should be done regularly in small steps to avoid bugs, improve readability and design, and facilitate future changes, but it is important to avoid over-refactoring or refactoring close to deadlines.
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Fwdays
It’s easy to underestimate a front-end project's complexity, which leads to shallow and thus incorrect implementation. Attempts to fix this problem result in uncontrolled complexity growth and undefined behavior in corner cases.
We'll discuss ways of revealing the inherent complexity of a problem and dealing with it both on theoretical and practical levels.
- Codetrails is a company that develops intelligent code completion tools for the Eclipse IDE using data mining techniques on large datasets of software engineering data.
- They developed Eclipse Code Recommenders which provides smarter code completion recommendations based on patterns found in existing code repositories rather than just the local project.
- Codetrails is working on crowdsourcing recommendations by having developers share anonymous usage data to further improve recommendations over time based on a large and diverse set of real-world code examples.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. It adds optional static types, classes, and interfaces to JavaScript to enable scalable application development. TypeScript uses type inference and structural subtyping and works seamlessly with existing JavaScript code and libraries. Type annotations provide compile-time safety while not impacting runtime behavior. TypeScript supports popular module systems and compiles to idiomatic JavaScript that runs on any browser, host, or operating system.
TDD involves writing tests before code to help design and develop software incrementally. It can find defects earlier and make software easier to maintain with fewer bugs. While difficult to learn, TDD seeks to build better modular code through a simple iterative process. Starting small with katas and practicing regularly, including pair programming, can help adapt to TDD's mechanics. Though challenges exist, it is worth trying TDD to potentially improve software quality and reduce costs over time.
This document provides an introduction to JavaScript, covering the basics of how the web works, a brief history of JavaScript, key JavaScript concepts like variables, data types, and functions. It discusses clients and servers, and how JavaScript fits into frontend web development. The document includes examples and challenges for readers to practice basic JavaScript concepts in their browser.
TDD - Seriously, try it - Codemotion (May '24)Nacho Cougil
Ever wondered about the wonders of Test-Driven Development (TDD)? Curious devs, this session is for you!
Get ready to dive into TDD and explore its benefits. We'll see the "secrets" behind TDD, its roots, and the rules surrounding it. But that's not all! We'll also uncover the ups and downs of TDD, plus we'll share some tips and tricks... including a live coding session in Java. Get ready to level up your development skills with TDD – more insights, more advantages, and more confidence in your coding adventures!
PS: Building tests before production code can sound more fun than it sounds 😉.
---
Presentation shared at Codemotion Madrid '24
Feedback form:
https://bit.ly/tdd-seriously-try-it-feedback
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)ssusercaf6c1
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Trójmiasto Java User Group
Public group 17th of May '23
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)Nacho Cougil
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Trójmiasto Java User Group (17th May '23)
Dart is a new language for the web, enabling you to write JavaScript on a secure and manageable way. No need to worry about "JavaScript: The bad parts".
This presentation concentrates on the developer experience converting from the Java based GWT to Dart.
The document provides an introduction to design patterns developed by the Gang of Four (GoF). It discusses several common design patterns in JavaScript like the constructor pattern, module pattern, singleton pattern, observer pattern, mediator pattern, prototype pattern, command pattern, facade pattern, and mixin pattern. For each pattern, it explains the problem it addresses, provides an example implementation, and notes advantages and disadvantages of the pattern. The overall document serves as a high-level overview of fundamental design patterns and their usage in JavaScript applications.
The document discusses how programming languages can influence thought by enabling or limiting the types of solutions that can be conceived and implemented. It argues that languages without closures or metaprogramming make some design solutions unthinkable. As an example, it shows how duplicated code in a Java program can be removed by defining a select method that accepts a closure, thus abstracting the common logic into a reusable concept. The document advocates learning diverse languages, including Lisp variants, to broaden one's thinking beyond the constraints of a single language.
This BJUG presentation is focused on the unique inter-process communication (IPC) mechanism introduced by Android, namely Binder. As such, we will be exploring the entire Android software stack, starting from the Linux kernel, moving up to the Linux userspace, reaching the Android framework and ending our journey with some real-life usages of Binder in Android applications.
We will show how widely used Binder actually is in Android, thus proving that it is a cornerstone of the operating system. The main focus is on the programming model exposed towards developers and we will highlight when, how and why it should be used.
https://bjug.ro/binding-android-piece-by-piece/
Core Java Tutorial. In case you want to get trained in Spring Framework you can refer here:
<a href="https://www.emexotechnologies.com/courses/java-development-training/core-java-training/">Java Training</a>
This document provides an overview of object-oriented programming and the Java platform. It discusses the history of computing and the development of object-oriented programming. It then covers key concepts of object-oriented programming like classes, objects, encapsulation, inheritance and polymorphism. The document also provides details about the Java programming language, its benefits like portability and its components like the Java Runtime Environment. It concludes with explaining the phases of creating and executing a Java program from writing code to running the compiled bytecode.
This document discusses method handles and lambda expressions in Java 8. It explains that method handles are references to methods that can be executed and are obtained through reflection. Method handles improve on reflection by caching access at lookup rather than invocation time. Lambda expressions allow anonymous blocks of code and are implemented using invokedynamic and method handles. When the compiler encounters a lambda expression, it is "desugared" into a private method and an invokedynamic instruction generates an instance of a functional interface to reference the lambda expression.
Presentation on the principles, philosophy and a few applications of object oriented programming along with a few pointers on how to effectively code. Presented at a session aimed at undergrad computer science students at the University of Pune.
Present along with Mr. Anirudh Tomer and Mr. Toshish Jawale.
This document provides an overview and introduction to LINQ (Language Integrated Query). It discusses key LINQ concepts like LINQ to SQL, LINQ providers, extension methods, lambda expressions, and expression trees. It explains that LINQ allows querying over various data sources using a consistent SQL-like syntax. The document also previews upcoming sections on LINQ usage, performance, advanced topics, and references additional learning resources.
1. Code refactoring involves changing the internal structure of code to improve its understandability and maintainability without changing its external behavior.
2. Refactoring techniques include extracting methods, inline methods, managing temporary variables, simplifying conditionals, and moving features between objects.
3. Refactoring should be done regularly in small steps to avoid bugs, improve readability and design, and facilitate future changes, but it is important to avoid over-refactoring or refactoring close to deadlines.
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Fwdays
It’s easy to underestimate a front-end project's complexity, which leads to shallow and thus incorrect implementation. Attempts to fix this problem result in uncontrolled complexity growth and undefined behavior in corner cases.
We'll discuss ways of revealing the inherent complexity of a problem and dealing with it both on theoretical and practical levels.
- Codetrails is a company that develops intelligent code completion tools for the Eclipse IDE using data mining techniques on large datasets of software engineering data.
- They developed Eclipse Code Recommenders which provides smarter code completion recommendations based on patterns found in existing code repositories rather than just the local project.
- Codetrails is working on crowdsourcing recommendations by having developers share anonymous usage data to further improve recommendations over time based on a large and diverse set of real-world code examples.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. It adds optional static types, classes, and interfaces to JavaScript to enable scalable application development. TypeScript uses type inference and structural subtyping and works seamlessly with existing JavaScript code and libraries. Type annotations provide compile-time safety while not impacting runtime behavior. TypeScript supports popular module systems and compiles to idiomatic JavaScript that runs on any browser, host, or operating system.
TDD involves writing tests before code to help design and develop software incrementally. It can find defects earlier and make software easier to maintain with fewer bugs. While difficult to learn, TDD seeks to build better modular code through a simple iterative process. Starting small with katas and practicing regularly, including pair programming, can help adapt to TDD's mechanics. Though challenges exist, it is worth trying TDD to potentially improve software quality and reduce costs over time.
This document provides an introduction to JavaScript, covering the basics of how the web works, a brief history of JavaScript, key JavaScript concepts like variables, data types, and functions. It discusses clients and servers, and how JavaScript fits into frontend web development. The document includes examples and challenges for readers to practice basic JavaScript concepts in their browser.
TDD - Seriously, try it - Codemotion (May '24)Nacho Cougil
Ever wondered about the wonders of Test-Driven Development (TDD)? Curious devs, this session is for you!
Get ready to dive into TDD and explore its benefits. We'll see the "secrets" behind TDD, its roots, and the rules surrounding it. But that's not all! We'll also uncover the ups and downs of TDD, plus we'll share some tips and tricks... including a live coding session in Java. Get ready to level up your development skills with TDD – more insights, more advantages, and more confidence in your coding adventures!
PS: Building tests before production code can sound more fun than it sounds 😉.
---
Presentation shared at Codemotion Madrid '24
Feedback form:
https://bit.ly/tdd-seriously-try-it-feedback
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)ssusercaf6c1
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Trójmiasto Java User Group
Public group 17th of May '23
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)Nacho Cougil
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Trójmiasto Java User Group (17th May '23)
This document provides an introduction to JavaScript, covering key concepts like variables, data types, functions, and how the web works. It begins with introductions from the instructor and mentor. It then discusses programming fundamentals like defining problems, finding solutions, and implementing them in code. The document explains that JavaScript is used for both front-end and back-end development. It covers JavaScript variables, strings, numbers, Booleans, and basic functions. It provides examples and challenges for readers to practice the concepts. In the end, it discusses continuing education options through 1-on-1 mentorship.
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...Sang Don Kim
This document summarizes new features and improvements in Visual Studio 2015 and future directions for C++ development. Key highlights include improved C++ refactoring tools, better IDE productivity features like single-file IntelliSense, enhanced diagnostics tools, support for new C++11/14 language features, and a focus on making Visual Studio the best IDE for all C++ developers.
How I learned to stop worrying and love embedding JavaScriptKevin Read
Embed your Javascript code in your native mobile app for fun and profit. We showcase our approach to embed Canvas-heavy interactive JS code within our iOS and Android app.
This document provides biographical information about the speaker Matt Stine and outlines the topics he will cover in his presentation. Stine will discuss how software designs tend to degrade over time due to various factors, and how following the SOLID principles of object-oriented design can help address this problem and make designs more functional in nature. He will also cover trends in how software systems evolve, different programming paradigms, and the ongoing quest for software design "best practices."
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
===
Presentation (revisited & updated) shared at JDD 2022:
https://jdd.org.pl/lecture_2022/#id=78434
Why should we use TDD to develop in Elixir? When we are applying it correctly? What are the differences that we can find in a code developed with TDD and in code not developed with it? Is it TDD about testing? Really? In this talk, I'll show what is TDD and how can be used it in functional programming like Elixir to design the small and the big parts of your system, showing what are the difference and the similarities between an OOP and FP environment. Showing what is the values of applying a technique like TDD in Elixir and what we should obtain applying it.
How to crack java script certificationKadharBashaJ
1) The document provides an outline for a webinar on preparing for the Salesforce Certified JavaScript Developer I certification.
2) It covers key topics like variables, types, objects, functions, classes, debugging, asynchronous programming and testing. Sample questions are provided for each topic.
3) Valuable online resources for preparation are suggested, including blogs, video tutorials and sample question sites. Tips are given on time management during the exam and relying on conceptual understanding over guessing.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
2. what we do
consulting training design debugging
who we are
Founded by top experts on Microsoft – Jeffrey Richter, Jeff Prosise, and John Robbins –
we pull out all the stops to help our customers achieve their goals through advanced
software-based consulting and training solutions.
how we do it Training
• On-site instructor-led training
Consulting & Debugging • Virtual instructor-led training
• Architecture, analysis, and design services • Devscovery conferences
• Full lifecycle custom software development
• Content creation Design
• Project management • User Experience Design
• Debugging & performance tuning • Visual & Content Design
• Video & Animation Production
consulting training design debugging wintellect.com
3. Agenda
• JavaScript: The Problem
• TypeScript: The Solution
• Types
• Interfaces
• Classes
• Modules
• Before/After Example
consulting training design debugging wintellect.com
5. JavaScript – Why?
• 1995 – Netscape, “make Java more accessible to non-Java
programmers”
• Goal was to make it easy to tie into page elements without the need
for a compiler or knowledge of object-oriented design
• Loosely-typed scripting language
• Codenamed “Mocha” started out as “LiveScript” then renamed to
“JavaScript” (oops, this caused a little bit of confusion, some think this
was an intentional marketing move between Netscape and Sun)
• Moved from manipulation of Java applets to manipulation of DOM
elements
• 1996 – Microsoft does this a little differently (surprise!) and releases
VBScript and Jscript – IE 3.0 gets stuck behind the mainstream (1998)
• 1997 - ECMAScript adopted (ISO in 1998)
• 2006 – jQuery (no, it’s not JavaScript, but it is certainly ubiquitous)
consulting training design debugging wintellect.com
6. JavaScript – What?
• Dynamic – variables are not bound to types, only values
• Object-based (not oriented) – arrays and prototypes
– myObj.foo = myObj[“foo”]
• Interpreted, not compiled
• Functional
• Supports anonymous functions
• Closures
• Global scope
• Unfortunately, not consistently implemented
consulting training design debugging wintellect.com
7. Values are … What?! (1 of 2)
false.toString();
[1,2,3].toString();
"2".toString();
2.toString();
02.toString();
2 .toString();
consulting training design debugging wintellect.com
8. Values are … What?! (2 of 2)
var one = 1; var one = [1,2,3];
one; one;
typeof one; typeof one;
var two = '2', var two = ['1', '2', '3']
two; two;
typeof two; typeof two;
var three = one + two; one[0] == two[0];
three; one[0] === two[0];
typeof three;
var three = one + two;
var three = Number(one) + typeof three;
Number(two); three;
typeof three;
three; var three = one.concat(two);
typeof three;
three;
consulting training design debugging wintellect.com
9. Case Sensitive? At least tell me!
var myObj = { foo : 1, Bar: 2 };
var result = myObj.foo + myObj.bar;
typeof result;
result;
consulting training design debugging wintellect.com
10. Parameters … more like “Guidelines”
var myFunc = function(something) {
console.log(something); return 1; };
myfunc();
myFunc('test');
myFunc(myFunc);
myFunc('test', myFunc);
var myFunc = function() {
console.log(Array.prototype.slice.call(arguments)); };
myFunc();
myFunc('test', 2);
consulting training design debugging wintellect.com
11. Scope is not a Block Party
var foo = 42;
function test() { foo = 21; console.log(foo); };
test();
foo;
var foo = 42;
function test() { var foo = 21; console.log(foo); };
test();
foo;
for(var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);}, 1000);};
for (var i = 0; i < 10; i++) {
(function(e) {
setTimeout(function() { console.log(e); },
1000); })(i); };
consulting training design debugging wintellect.com
12. Who Knows How to Count?
for (var x = 0; x < 5; x++) {
console.log(x);
}
for (var x = 0; x < 5; ++x) {
console.log(x);
}
consulting training design debugging wintellect.com
13. Can You Guess the Result?
(function() {
logMe();
var logMe = function() {
console.log('TypeScript is more than JavaScript.');
};
logMe();
function logMe() {
console.log('All JavaScript is valid TypeScript.');
}
logMe();
console.log(parseInt('0114624476'));
})();
consulting training design debugging wintellect.com
14. Can You Guess the Result?
Variable declaration was hoisted
(function() { Function declaration was hoisted
var logMe;
function logMe() {
console.log('All JavaScript is valid TypeScript.');
}
logMe();
logMe = function() {
console.log('TypeScript is more than JavaScript.');
} parseInt assumes Octal
logMe();
logMe();
console.log(parseInt('0114624476'));
})();
consulting training design debugging wintellect.com
15. TypeScript: The Solution
• A language for application-scale JavaScript
• Typed superset of JavaScript that compiles to plain
JavaScript
• All valid JavaScript is valid TypeScript!
• Runs in any browser, host, and OS that supports JavaScript
• Provides classes, modules, and interfaces to build robust
components
• Features available for development-time
• Gain insight into existing libraries
https://github.com/borisyankov/DefinitelyTyped
• http://www.typescriptlang.org
consulting training design debugging wintellect.com
16. TypeScript: Types
• Any
• Number
• Boolean
• String
• Null
• Undefined
• Object
• Void
• HTMLElement
• Call Signatures
• Casting
• Types don't exist at runtime
consulting training design debugging wintellect.com
17. TypeScript: Interfaces
• Set of type definitions
• Definitions without implementations
• No constructor definitions
• No defaults
• Parameters may be optional
• No run-time representation; only development-time
• Interfaces with the same signature are equivalent
• May extend other interfaces
• Interfaces don't exist at runtime
consulting training design debugging wintellect.com
18. TypeScript: Classes
• Aligned with ECMAScript 6 specification
• Named types with implementations
• Class instance type and constructor function
• May implement multiple interfaces
• Supports inheritance
• May have public and private members
• Classes exist at runtime and are
implemented as self-invoking functions
consulting training design debugging wintellect.com
19. TypeScript: Modules
• Body of statements and declarations that create a
singleton instance
• May be exported
• Internal modules are contained within other modules
• External modules are separately loaded bodies of code
• Exports declare publicly accessible module members
• Imports introduce a local identifier to reference a module
• Ambient declarations allow describing existing JavaScript
with type definitions
• Allows modules to be defined with declaration source files
(*.d.ts)
consulting training design debugging wintellect.com
20. demo
TypeScript: Event Aggregator
consulting training design debugging wintellect.com
21. demo
TypeScript: Before and After
consulting training design debugging wintellect.com
22. Questions?
Jeremy Likness (@JeremyLikness)
Principal Consultant
jlikness@wintellect.com
consulting training design debugging wintellect.com
var one = 1;one;typeof one;var two = '2',two;typeof two;var three = one + two;three;typeof three; var three = Number(one) + Number(two);typeof three;three;var one = [1,2,3];one;typeof one;var two = ['1', '2', '3']two;typeof two;one[0] == two[0];one[0] === two[0];var three = one + two;typeof three;three;var three = one.concat(two);three;typeof three;
varmyObj = { foo : 1, Bar: 2 };var result = myObj.foo + myObj.bar;typeof result;result;
var foo = 42;function test() { foo = 21; console.log(foo); };test();foo;(clear the screen) var foo = 42;function test() { var foo = 21; console.log(foo); };test();foo; for(vari = 0; i < 10; i++) { setTimeout(function() { console.log(i);}, 1000);};for (vari = 0; i < 10; i++) { (function(e) { setTimeout(function() { console.log(e); }, 1000); })(i); };
for (var x = 0; x < 5; x++) { console.log(x); }for (var x = 0; x < 5; ++x) { console.log(x);}
(function() {logMe();varlogMe = function() { console.log('TypeScript is more than just JavaScript.'); };logMe(); function logMe() { console.log('All JavaScript is valid TypeScript.'); }logMe(); console.log(parseInt('0114624476'));})();
function Add(x: any, y: any): any { return x + y;}function AddNumbers(x: number, y: number): number { return x + y; }Add("this", "that"); AddNumbers("this", "that"); function toDomElement(func: () => string): string { return func();}toDomElement(function () { return "this"; });function toDomElement(parm: string): HTMLElement { return <HTMLElement>parm; }