This document provides an overview of JavaScript development challenges and how EcmaScript 2015 and TypeScript address these challenges. It discusses the rise of JavaScript, traditional development challenges like lack of structuring capabilities and static types, new features in EcmaScript 2015 like arrow functions and classes, and how TypeScript adds static types and interfaces to provide benefits for large application development. The document contains code examples to demonstrate various JavaScript and TypeScript language features.
The document discusses several C and C++ concepts including:
1. How to read data from specific memory locations using the peekb() function by passing a segment and offset.
2. What a conversion operator is in C++ classes and provides an example using a double conversion operator.
3. The differences between macros and templates, noting that templates provide type safety while macros do not and can cause unexpected behavior.
Introduction to web programming with JavaScriptT11 Sessions
This document provides an overview of web programming with JavaScript. It discusses topics like:
- HTML and CSS which are used to structure and style web pages
- How browsers interpret HTML, CSS, and JavaScript to display web pages
- What backend and frontend development involve
- Common JavaScript concepts like variables, operators, functions, and events
- Tools that can be used for web development like text editors, browsers, and version control software
- Resources for learning more about JavaScript and web programming
This document provides an overview of JavaScript basics including data types, dynamic typing, strings, numbers, Booleans, arrays, objects, functions, scope, and common patterns like namespaces, modules, and immediately invoked function expressions (IIFEs). It covers topics like primitive vs reference types, type coercion, equality operators, object literals, constructors, and the revealing module pattern for encapsulating code.
PHP 8 introduces several new features and backward compatibility breaks. It includes a just-in-time compiler, match expression, constructor property promotion, union types, static return type, attributes, named arguments, and improved type handling. Notable BC breaks are stricter error handling by default, locale independence for float conversions, and warning promotion to type errors. The changes aim to improve performance, type safety, and consistency.
The document provides a summary of common mistakes made in C programming. It discusses issues like memory padding in structs, new line characters differences between Windows and Linux, binary mode in fopen(), potential crashes with strncpy(), only using memset() to initialize to zero, reading limits with fgets(), non-null terminated strings, include guards, getting thread IDs, and buffer overflows from writing outside array bounds. The purpose is to introduce common mistakes programmers make in C code and provide experiences to write better code.
Functional programming for production quality codeJack Fox
This document discusses functional programming techniques for production quality code. It covers topics like partial application, summation types, pattern matching, monadic binding, function composition, and units of measure. It also discusses using computation expressions for asynchronous code and functional approaches to working with relational data using F# types generated from SQL queries and stored procedures.
This document provides an overview of JavaScript development challenges and how EcmaScript 2015 and TypeScript address these challenges. It discusses the rise of JavaScript, traditional development challenges like lack of structuring capabilities and static types, new features in EcmaScript 2015 like arrow functions and classes, and how TypeScript adds static types and interfaces to provide benefits for large application development. The document contains code examples to demonstrate various JavaScript and TypeScript language features.
The document discusses several C and C++ concepts including:
1. How to read data from specific memory locations using the peekb() function by passing a segment and offset.
2. What a conversion operator is in C++ classes and provides an example using a double conversion operator.
3. The differences between macros and templates, noting that templates provide type safety while macros do not and can cause unexpected behavior.
Introduction to web programming with JavaScriptT11 Sessions
This document provides an overview of web programming with JavaScript. It discusses topics like:
- HTML and CSS which are used to structure and style web pages
- How browsers interpret HTML, CSS, and JavaScript to display web pages
- What backend and frontend development involve
- Common JavaScript concepts like variables, operators, functions, and events
- Tools that can be used for web development like text editors, browsers, and version control software
- Resources for learning more about JavaScript and web programming
This document provides an overview of JavaScript basics including data types, dynamic typing, strings, numbers, Booleans, arrays, objects, functions, scope, and common patterns like namespaces, modules, and immediately invoked function expressions (IIFEs). It covers topics like primitive vs reference types, type coercion, equality operators, object literals, constructors, and the revealing module pattern for encapsulating code.
PHP 8 introduces several new features and backward compatibility breaks. It includes a just-in-time compiler, match expression, constructor property promotion, union types, static return type, attributes, named arguments, and improved type handling. Notable BC breaks are stricter error handling by default, locale independence for float conversions, and warning promotion to type errors. The changes aim to improve performance, type safety, and consistency.
The document provides a summary of common mistakes made in C programming. It discusses issues like memory padding in structs, new line characters differences between Windows and Linux, binary mode in fopen(), potential crashes with strncpy(), only using memset() to initialize to zero, reading limits with fgets(), non-null terminated strings, include guards, getting thread IDs, and buffer overflows from writing outside array bounds. The purpose is to introduce common mistakes programmers make in C code and provide experiences to write better code.
Functional programming for production quality codeJack Fox
This document discusses functional programming techniques for production quality code. It covers topics like partial application, summation types, pattern matching, monadic binding, function composition, and units of measure. It also discusses using computation expressions for asynchronous code and functional approaches to working with relational data using F# types generated from SQL queries and stored procedures.
This document summarizes key aspects of iteration in Python based on the provided document:
1. Python supports multiple ways of iteration including for loops and generators. For loops are preferred for iteration over finite collections while generators enable infinite iteration.
2. Common iteration patterns include iterating over elements, indices, or both using enumerate(). Numerical iteration can be done with for loops or while loops.
3. Functions are first-class objects in Python and can be passed as arguments or returned as values, enabling functional programming patterns like mapping and filtering.
An introductory PowerPoint to understanding and applying the C++ programming language. Broken down into lessons covering:
Introduction: Definitions and the History of Programming
Lesson 1: Libraries, Variables and Types, Blocks and Namespaces, Functions
Lesson 2: If...Else Statements, For and While Loops, Scope
Exercise: Program a Gumball Game
Lesson 3: Classes and Objects, Pointers
This document discusses how to use three C++17 vocabulary types: std::optional, std::variant, and std::any. It begins with an introduction and overview of the types. It then provides examples and explanations of how to create, access, and manipulate values for each type. Key points covered include initialization, accessing contained values, performance characteristics, and common use cases.
This document is an introduction to an interactive tutorial on Python idioms and techniques by David Goodger. It discusses Goodger's background and credentials in Python programming. It also provides an overview of topics that will be covered, including Python coding style, whitespace, naming conventions, strings, and comments. The goal is to teach experienced techniques to make code more Pythonic and idiomatic.
A deep-dive into type checking a JS codebase with Flow. Get to learn the basics of Flow, how to integrate with 3rd party libraries, and how to type React and Redux code.
Vladymyr Bahrii Understanding polymorphism in C++ 16.11.17LogeekNightUkraine
The document discusses polymorphism in C++, including static polymorphism through function overloading and templates, and dynamic polymorphism using virtual functions and inheritance. It explains key concepts like the virtual method table that allows dynamic dispatch at runtime. The document provides examples of polymorphism techniques like the curiously recurring template pattern and proper use of virtual destructors. It warns against invoking virtual functions from constructors due to the class hierarchy not being fully established yet.
The author discusses how compilers go to great lengths to make poorly written C/C++ code work as intended, despite issues like passing non-POD types like std::string to variable argument functions. He provides examples of code that shouldn't work but does, due to efforts by compiler developers. The author suspects compiler optimizations are sometimes designed to produce practical rather than theoretically correct behavior for simple programs. Overall the document praises the unseen work of compiler developers in supporting legacy code.
The document provides an overview of C++17's std::filesystem library. It introduces the Path class for representing file system paths, the DirectoryEntry class for modeling directory entries, and DirectoryIterator for iterating over directories. It also summarizes key support functions for querying and modifying files and directories, handling permissions, and catching errors and exceptions. Examples are provided demonstrating how to get a file size, iterate over a directory, and monitor a directory for changes using std::filesystem.
This document compares key features of the C# and Java programming languages, including differences in their type systems, generics, keywords, exceptions handling, and specific features like anonymous classes, properties, delegates, and LINQ. It outlines common conventions and pitfalls between the two languages and provides code examples to illustrate differences in generics, constraints, exceptions, and language features like using blocks and lambda expressions.
Workshop fundamentos de Swift:
- Language Basics
- Playgrounds
- Variables
- Functions
- Optionals
- Control Flow
Presentado por nuestros ingenieros Alberto Irurueta y Pia Muñoz.
The document provides an overview of the JavaScript programming language, including its history, key concepts, values, operators, statements, and objects. It discusses JavaScript's misunderstood nature due to its name, design errors in early implementations, and use in browsers. Some key points made include: JavaScript is a functional language; it uses prototypal inheritance instead of classes; all values are objects except for primitive values; and functions are first-class objects that can be assigned and passed around.
This document provides an introduction to JavaScript, covering topics such as:
- What JavaScript is and its origins
- How to set up the browser console and load scripts
- Data types in JavaScript including numbers, strings, Booleans, objects, and more
- Variables, operators, and comparisons
- Logical flow and conditionals
- Basic programming concepts like functions, events, and objects
The document gives examples and explanations for JavaScript syntax and fundamentals to help newcomers get started with the language. It also outlines a simple task manager project as an introduction to building applications with JavaScript.
This document provides an introduction to developing applications for Mac OS X using Cocoa and Objective-C. It covers key concepts like the Cocoa framework, Xcode development tools, Objective-C syntax for classes and methods, properties, strings and memory management. It also mentions that web developers can integrate HTML, CSS and JavaScript using WebKit and only need to use Objective-C when necessary functionality is not available in other languages.
Groovy is a dynamic language for the Java Virtual Machine that aims to bring dynamic capabilities like Python and Ruby to Java developers. It has many features inspired by dynamic languages like closures, duck typing and metaprogramming, but also maintains compatibility with Java by having a Java-like syntax and the ability to interoperate with Java code. Groovy code can either be run directly from scripts or compiled into Java bytecode to be used within Java applications.
The document discusses the Hack programming language, which was developed by Facebook as an extension of PHP with additional features like strong typing. It provides an overview of key Hack concepts like type annotations, nullable types, generics, collections, and constructor argument promotion. The document also outlines different Hack modes for compatibility with PHP and converting existing PHP code to Hack.
This document contains a C programming assignment submitted by Vijayananda D Mohire for their Post Graduate Diploma in Information Technology. The assignment contains 11 questions on basic C programming concepts like data types, variables, functions, structures, file handling etc. For each question, the code for the algorithm/program is provided as the answer. The questions cover topics like checking odd/even numbers, calculating sum of numbers, interest calculation, number divisibility, swapping values, month to word conversion using switch case, structure to store employee data, reading and writing to files.
The presentation helps us in understanding the different concepts associated with TypeScript. What is TypeScript? Why is TypeScript used and the different applications of TypeScript. For more information you can simply visit: http://mobile.folio3.com/
Python is a great programming language. It is a complete tutorial of using this programming language.
This slides is split into two parts, and it is the second part. Another part is at: http://www.slideshare.net/moskytw/programming-with-python-basic.
The document discusses C programming concepts including operators, loops, functions, pointers, and file handling. It contains sample code to demonstrate:
1) Summing integers entered interactively using a while loop.
2) Calculating the average length of text lines using global variables and functions.
3) Adding and subtracting numbers using pointer variables and dereferencing operators.
4) Checking for a null pointer and using it as a placeholder.
5) Searching a specified file for a given character using command line arguments.
A talk about how Javascript developers can make better and less error prone code by adopting two practices: using type-checkers to validate types during the development process, using Flowtype as an example; and by applying some common clean code practices to make their code more readable.
This document summarizes key aspects of iteration in Python based on the provided document:
1. Python supports multiple ways of iteration including for loops and generators. For loops are preferred for iteration over finite collections while generators enable infinite iteration.
2. Common iteration patterns include iterating over elements, indices, or both using enumerate(). Numerical iteration can be done with for loops or while loops.
3. Functions are first-class objects in Python and can be passed as arguments or returned as values, enabling functional programming patterns like mapping and filtering.
An introductory PowerPoint to understanding and applying the C++ programming language. Broken down into lessons covering:
Introduction: Definitions and the History of Programming
Lesson 1: Libraries, Variables and Types, Blocks and Namespaces, Functions
Lesson 2: If...Else Statements, For and While Loops, Scope
Exercise: Program a Gumball Game
Lesson 3: Classes and Objects, Pointers
This document discusses how to use three C++17 vocabulary types: std::optional, std::variant, and std::any. It begins with an introduction and overview of the types. It then provides examples and explanations of how to create, access, and manipulate values for each type. Key points covered include initialization, accessing contained values, performance characteristics, and common use cases.
This document is an introduction to an interactive tutorial on Python idioms and techniques by David Goodger. It discusses Goodger's background and credentials in Python programming. It also provides an overview of topics that will be covered, including Python coding style, whitespace, naming conventions, strings, and comments. The goal is to teach experienced techniques to make code more Pythonic and idiomatic.
A deep-dive into type checking a JS codebase with Flow. Get to learn the basics of Flow, how to integrate with 3rd party libraries, and how to type React and Redux code.
Vladymyr Bahrii Understanding polymorphism in C++ 16.11.17LogeekNightUkraine
The document discusses polymorphism in C++, including static polymorphism through function overloading and templates, and dynamic polymorphism using virtual functions and inheritance. It explains key concepts like the virtual method table that allows dynamic dispatch at runtime. The document provides examples of polymorphism techniques like the curiously recurring template pattern and proper use of virtual destructors. It warns against invoking virtual functions from constructors due to the class hierarchy not being fully established yet.
The author discusses how compilers go to great lengths to make poorly written C/C++ code work as intended, despite issues like passing non-POD types like std::string to variable argument functions. He provides examples of code that shouldn't work but does, due to efforts by compiler developers. The author suspects compiler optimizations are sometimes designed to produce practical rather than theoretically correct behavior for simple programs. Overall the document praises the unseen work of compiler developers in supporting legacy code.
The document provides an overview of C++17's std::filesystem library. It introduces the Path class for representing file system paths, the DirectoryEntry class for modeling directory entries, and DirectoryIterator for iterating over directories. It also summarizes key support functions for querying and modifying files and directories, handling permissions, and catching errors and exceptions. Examples are provided demonstrating how to get a file size, iterate over a directory, and monitor a directory for changes using std::filesystem.
This document compares key features of the C# and Java programming languages, including differences in their type systems, generics, keywords, exceptions handling, and specific features like anonymous classes, properties, delegates, and LINQ. It outlines common conventions and pitfalls between the two languages and provides code examples to illustrate differences in generics, constraints, exceptions, and language features like using blocks and lambda expressions.
Workshop fundamentos de Swift:
- Language Basics
- Playgrounds
- Variables
- Functions
- Optionals
- Control Flow
Presentado por nuestros ingenieros Alberto Irurueta y Pia Muñoz.
The document provides an overview of the JavaScript programming language, including its history, key concepts, values, operators, statements, and objects. It discusses JavaScript's misunderstood nature due to its name, design errors in early implementations, and use in browsers. Some key points made include: JavaScript is a functional language; it uses prototypal inheritance instead of classes; all values are objects except for primitive values; and functions are first-class objects that can be assigned and passed around.
This document provides an introduction to JavaScript, covering topics such as:
- What JavaScript is and its origins
- How to set up the browser console and load scripts
- Data types in JavaScript including numbers, strings, Booleans, objects, and more
- Variables, operators, and comparisons
- Logical flow and conditionals
- Basic programming concepts like functions, events, and objects
The document gives examples and explanations for JavaScript syntax and fundamentals to help newcomers get started with the language. It also outlines a simple task manager project as an introduction to building applications with JavaScript.
This document provides an introduction to developing applications for Mac OS X using Cocoa and Objective-C. It covers key concepts like the Cocoa framework, Xcode development tools, Objective-C syntax for classes and methods, properties, strings and memory management. It also mentions that web developers can integrate HTML, CSS and JavaScript using WebKit and only need to use Objective-C when necessary functionality is not available in other languages.
Groovy is a dynamic language for the Java Virtual Machine that aims to bring dynamic capabilities like Python and Ruby to Java developers. It has many features inspired by dynamic languages like closures, duck typing and metaprogramming, but also maintains compatibility with Java by having a Java-like syntax and the ability to interoperate with Java code. Groovy code can either be run directly from scripts or compiled into Java bytecode to be used within Java applications.
The document discusses the Hack programming language, which was developed by Facebook as an extension of PHP with additional features like strong typing. It provides an overview of key Hack concepts like type annotations, nullable types, generics, collections, and constructor argument promotion. The document also outlines different Hack modes for compatibility with PHP and converting existing PHP code to Hack.
This document contains a C programming assignment submitted by Vijayananda D Mohire for their Post Graduate Diploma in Information Technology. The assignment contains 11 questions on basic C programming concepts like data types, variables, functions, structures, file handling etc. For each question, the code for the algorithm/program is provided as the answer. The questions cover topics like checking odd/even numbers, calculating sum of numbers, interest calculation, number divisibility, swapping values, month to word conversion using switch case, structure to store employee data, reading and writing to files.
The presentation helps us in understanding the different concepts associated with TypeScript. What is TypeScript? Why is TypeScript used and the different applications of TypeScript. For more information you can simply visit: http://mobile.folio3.com/
Python is a great programming language. It is a complete tutorial of using this programming language.
This slides is split into two parts, and it is the second part. Another part is at: http://www.slideshare.net/moskytw/programming-with-python-basic.
The document discusses C programming concepts including operators, loops, functions, pointers, and file handling. It contains sample code to demonstrate:
1) Summing integers entered interactively using a while loop.
2) Calculating the average length of text lines using global variables and functions.
3) Adding and subtracting numbers using pointer variables and dereferencing operators.
4) Checking for a null pointer and using it as a placeholder.
5) Searching a specified file for a given character using command line arguments.
A talk about how Javascript developers can make better and less error prone code by adopting two practices: using type-checkers to validate types during the development process, using Flowtype as an example; and by applying some common clean code practices to make their code more readable.
JavaScript for Web Analytics is a beginner's guide to using JavaScript for web analytics. It covers JavaScript basics like data types, operators, control structures and functions. It also discusses more advanced topics like scope, closures, callbacks, asynchronous programming and the event loop. The document is intended to teach readers JavaScript concepts from very basic to more complex topics in order to understand how to use JavaScript for web analytics.
Functions And Header Files In C++ | Bjarne stroustrupSyedHaroonShah4
This document discusses functions and header/source files in C++. It covers declarations, definitions, and the differences between them. Declarations introduce names and specify types, while definitions also fully specify the entity. Declarations allow interfaces to be specified. Headers contain declarations to share interfaces between parts of a program. Functions are described as units of operation that can take parameters and return values. The document also discusses scopes, namespaces, and storage classes like static.
The document discusses various topics in C programming including structures, unions, pointers, I/O statements, debugging, and testing techniques. It provides examples to explain structures as a way to represent records by combining different data types. Unions allow storing different data types in the same memory location. Pointers are variables that store memory addresses. I/O statements like printf and scanf are used for input and output. Debugging methods include detecting incorrect program behavior and fixing bugs. Testing and verification ensure programs are built correctly according to requirements.
This document summarizes some lesser known features of the ActionScript programming language. It begins by discussing various operators like equality, logical operators, and type casting. It then covers topics like namespaces, arguments, rest parameters, object references vs copies, and global functions. The document concludes by noting some gotchas and peculiarities in ActionScript, such as casting behaviors and behaviors of the Array and Date classes.
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...Doug Jones
We rarely dive into current programming languages, touting the next new framework or the new features that will be out next year. This is about JavaScript the language as it exists today, what I picked up in going from C# to JS, and what C# picked up from JS along the way as well. It is based on Douglas Crockford's seminal book "JavaScript: The Good Parts".
This document provides an overview of the C++ Boot Camp for CSE 380. It includes:
- A disclaimer that the presenter is not the grader and their opinions are their own.
- An outline of topics to be covered in this week's session, including basic C++ structure, control flow, pointers, references, classes and more.
- Code snippets demonstrating basic C++ syntax for many of these concepts.
The document serves as an introduction to the C++ Boot Camp, outlining what will be covered and including examples to demonstrate fundamental C++ concepts and syntax.
This document provides an overview of the C++ Boot Camp for CSE 380. It includes:
- A disclaimer that the presenter is not the grader and their opinions are their own.
- An outline of topics to be covered in the boot camp over two weeks, including basic C++ syntax like if/else statements, loops, functions, pointers, references, classes and inheritance.
- Code snippets demonstrating many of these basic C++ concepts like main program structure, preprocessor directives, exceptions, constructors and destructors.
03 and 04 .Operators, Expressions, working with the console and conditional s...Intro C# Book
The document discusses Java syntax and concepts including:
1. It introduces primitive data types in Java like int, float, boolean and String.
2. It covers variables, operators, and expressions - how they are used to store and manipulate data in Java.
3. It explains console input and output using Scanner and System.out methods for reading user input and printing output.
4. It provides examples of using conditional statements like if and if-else to control program flow based on conditions.
Game Design and Development Workshop Day 1Troy Miles
This course teaches you how to build awesome video games using Cocos2Dx. Cocos2Dx is a feature packed, free game development engine. It is cross platform, high performance, and supports three languages: C++, Lua and JavaScript. With it, you can write games for iOS, Android, Windows, Mac, and the Web. It is nothing short of amazing and this course teaches you how to use it. We will program Cocos2Dx in JavaScript, but this is not a programming class. If you don't know how to write code in JavaScript or some other curly brace language, this is not the course for you. For those whose JavaScript is rusty, we will do quick language overview. Don't let the JavaScript part fool you. Cocos2Dx is built from highly optimized C++ and OpenGL, JavaScript is used for game logic, not graphics. Our games will run at a super fast, 60 frames a second.
This document provides an introduction to the Kotlin programming language through a workshop series. It discusses key Kotlin concepts like statically typed vs dynamically typed languages, features of Kotlin like being interoperable with Java, and how to write basic Kotlin code like functions, variables, types, loops, and classes. The document includes code snippets and explanations to demonstrate Kotlin syntax and best practices.
Javascript was originally released in 1995 as a scripting language for web browsers. It has since evolved significantly with new versions like ES6/ES7. Javascript is a dynamic, prototype-based language that supports object-oriented, imperative, and functional programming. It is used for both client-side development in browsers and server-side development with Node.js. New features in ES6 include classes, arrow functions, template literals, and modules. Typescript offers additional type safety but compiles to Javascript. Popular Javascript frameworks include React, Angular, and Vue. With nearly 300,000 packages, its large ecosystem and performance have made Javascript one of the most important and widely used programming languages.
The document discusses various Java programming concepts such as Hello World, primitive data types, variables, input/output, and control structures like if/else, switch/case, while loops. It provides examples of declaring and using variables, type casting between primitives, and commenting code. Various Java classes for input/output like Scanner and System.out are demonstrated.
The document provides an overview of the C programming language. It states that C was developed in 1972 by Dennis Ritchie at Bell Labs and was used to develop the UNIX operating system. The document then covers various features of C like it being a mid-level programming language, having structured programming, pointers, loops, functions, arrays, and more. It provides examples to explain concepts like input/output functions, data types, operators, control structures, and pointers.
This document provides an overview of advanced TypeScript concepts and best practices. It discusses the TypeScript toolchain and environment, ES2015+ features like let, modules, and unit testing. It covers the TypeScript type system including type inference, annotations, and strict checking. Other topics include decorators, structural typing, destructuring, and the differences between TypeScript and JavaScript.
1. Swift includes features like subscripts, optional chaining, and error handling that improve safety and flexibility compared to earlier languages.
2. The document discusses Swift concepts like extensions, protocols, and generics that allow code reuse and abstraction. Protocols define requirements that types can conform to through extensions.
3. Generics allow algorithms to work with different types through type parameters like Stack<Element>, avoiding duplicate non-generic code. This makes code cleaner, safer, and more reusable.
TypeScript is a superset of JavaScript that adds static typing and class-based object-oriented programming. It allows developers to migrate existing JavaScript code incrementally by adding type annotations and migrating files to the .ts extension over time. The document discusses TypeScript's architecture, transpilation to JavaScript, typing system, and provides recommendations for migrating JavaScript code to TypeScript.
ReasonML est une syntaxe de OCaml développée par Jordan Walke (le createur de React) au sein de Facebook. Un langage statiquement (bien) typé qui permet notament de mieux raisonner ses applications Reactjs. Je vous propose un tour rapide du langage, une découverte du framework ReasonReact autour d'une application houblonnée et enfin une ouverture sur les perspectives du langage, notamment pour des applications natives.
Similar to Static types on javascript?! Type checking approaches to ensure healthy applications (20)
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.
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.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
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.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
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.
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).
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!
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
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Best 20 SEO Techniques To Improve Website Visibility In SERP
Static types on javascript?! Type checking approaches to ensure healthy applications
1. Static Types on Javascript!?
Type-checking approaches to ensure healthy applications
(Tipos estáticos em Javascript?! Abordagens de type-checking para garantir uma aplicação saudável)
Arthur Puthin
2. About me
Developer at ilegra (think beyond!)
Mostly front-end stuff
Undergraduate at Unisinos
@aputhin
@aputhin_
5. - Types
- JS Types
- Why (or why not) Static Types
- How to Static Types
Agenda
Actually, I just want to give you food for thought on
Javascript typing, dynamic or static, and not champion
any approach in particular
9. Primitive types are basic
data types which are usually
built-in for each language
Composite or complex
types are derived from
more than one primitive,
and can be user-defined
10. Programming languages' type systems may apply:
Static type checking, which
happens at compile time
and validates variables'
types
Dynamic type checking,
which happens at runtime
and validates types for data
itself
12. In JavaScript, variables
don't have types -- values
have types. [...] Another way
to think about JS types is
that JS doesn't have "type
enforcement" [...].
https://github.com/getify/You-Dont-Know-JS/blob/master/types%20%26%20grammar/ch1.md
let a = 42;
typeof a; // "number"
a = true;
typeof a; // "boolean"
13. Primitives
- null
- undefined
- boolean
- number
- string
- symbol (ES2015)
IMMUTABLE
ASSIGN BY COPY
let a = 41;
let b = a;
b++;
console.log(a); // 41
console.log(b); // 42
14. Object Type
- objects of any shape
- functions
- arrays let a = [1, 2];
let b = a;
b.push(3);
console.log(a); // [1, 2, 3]
console.log(b); // [1, 2, 3]
b = [4, 5, 6];
console.log(a); // [1, 2, 3]
console.log(b); // [4, 5, 6]
MUTABLE
ASSIGN BY REFERENCE
let c = { isC: true };
let d = c;
d.isC = false;
console.log(c); // { isC: false }
console.log(d); // { isC: false }
16. Type coercion in Javascript can be:
Implicit, when the runtime
itself performs conversions,
usually engaged to satisfy the
surrounding context
Explicit (a.k.a. type-casting),
when the developer
expresses the intention to
convert between types by
writing the appropriate code
18. Number conversion
https://medium.freecodecamp.org/js-type-coercion-explained-27ba3d9a2839
Number('123') // explicit
+'123' // implicit (unary operator +)
123 != '456' // implicit (loose equality operator == !=)
// except if both operands are strings!
4 > '5' // implicit (comparison operators > < <= >=)
true | 0 // implicit (bitwise operators | & ^ ~)
5/null // implicit (arithmetic operators - + * / %)
// except for + if either operand is a string!
19. Object to Primitive Conversion
1. If input is already a primitive, do nothing and return it.
2. Call input.toString(), if the result is primitive, return it.
3. Call input.valueOf(), if the result is primitive, return it.
4. If neither input.toString() nor input.valueOf() yields
primitive, throw TypeError.
https://medium.freecodecamp.org/js-type-coercion-explained-27ba3d9a2839
20. Be a responsible and mature developer.
Learn how to use the power of coercion
(both explicit and implicit) effectively and
safely. And teach those around you to do the
same.
https://github.com/getify/You-Dont-Know-JS/blob/master/types%20%26%20grammar/ch4.md
23. "The most often-cited rationales for
type systems are that they:
1. Catch errors early
2. Improve readability of code
3. Facilitate tooling
4. Improve runtime performance"
http://www.hammerlab.org/2015/12/09/our-experiences-with-flow/
24. ● It takes time to learn.
● It is an additional layer of complexity.
● It constrains your freedom of expression.
● It does not prevent defects.
● You lose some interactivity and compiling
takes time.
http://2ality.com/2018/03/javascript-typescript-reasonml.html
31. let isDone: boolean = false;
let answer: number = 42; // includes hex, binary and octal
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length; // type casting
let anotherLength: number = (someValue as string).length;
function warnUser(): void { // null or undefined
alert("This is my warning message");
}
32. let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];
let x: [string, number];
x = ["hello", 10]; // OK
x = [10, "hello"]; // Error
enum Color {Red, Green, Blue}
let c: Color = Color.Green; // 2
let colorName: string = Color[2]; // Blue
33. interface Record {
readonly id: number;
label: string;
color?: string; // optional prop
}
class Greeter {
private greeting: string;
public constructor(message: string) {
this.greeting = message;
}
}
let greeter = new Greeter("world");
34. // module exporting types and namespacing
export namespace Validation {
export interface StringValidator {
isAcceptable(s: string): boolean;
}
}
// checking normal js files with --checkJs flag
/** @type {number} */
var x;
x = false; // error
38. // @flow
const identity: { name: string, age: number } = {
name: 'Jack',
age: 15,
};
type Address = { street: string, number: number };
type Email = string; // aliasing
var message: ?string = null; // maybe: type, null or undef
function setValue(value?: string) {/*...*/} // optional: type or undef
39. // @flow
type MyObject<A, B> = { foo: A, bar: B };
const val: MyObject<number, boolean> = { foo: 1, bar: true };
function getColor(name: "success" | "warning" | "danger") {/*...*/}
type Foo = { foo: number };
type Bar = { bar: boolean };
let value: Foo & Bar = { foo: 1, bar: true };
43. divide : Float -> Float -> Float
divide x y =
x / y
type alias User =
{ name : String, bio : String, pic : String }
hasBio : User -> Bool
hasBio user =
String.length user.bio > 0
-- alias auto-generates constructors for you :)
User "Tom" "Friendly Carpenter" "http://example.com/tom.jpg"
44. type Visibility = All | Active | Completed -- union type
keep : Visibility -> List Task -> List Task
keep visibility tasks =
case visibility of -- has to cover all possibilities!
All ->
tasks
Active ->
List.filter (task -> not task.complete) tasks
Completed ->
List.filter (task -> task.complete) tasks
45. toFullName person = person.firstName ++ " " ++ person.lastName
fullName = toFullName { fistName = "Hermann", lastName = "Hesse" }
The argument to function `toFullName` is causing a mismatch.
6│ toFullName { fistName = "Hermann", lastName = "Hesse" }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Function `toFullName` is expecting the argument to be:
{ …, firstName : … }
But it is:
{ …, fistName : … }
Hint: I compared the record fields and found some potential typos.
firstName <-> fistName
49. let myInt = 5; /* inferred integer */
let myInt: int = 5; /* explicit definition */
let myInt = (5: int) + (4: int); /* definition mid-expression */
/* params and return types */
let add = (x: int, y: int) : int => x + y;
let drawCircle = (~radius as r: int, ~color as c: string) => {
setColor(c);
startAt(r, r);
/* ... */
};
50. /* type aliases */
type scoreType = int;
let x: scoreType = 10;
/* parameterized type */
type coordinates('a) = ('a, 'a, 'a);
type intCoordinatesAlias = coordinates(int); /* new type is created */
let buddy: intCoordinatesAlias = (10, 20, 20); /* new type is used */
let buddy: coordinates(float) = (10.5, 20.5, 20.5); /* inline flavor */
/* Mutually Recursive Types */
type student = {taughtBy: teacher} and teacher = {students: list(student)};
52. Despite the tradeoffs that come with types like
verbosity and the upfront investment to master them,
the safety and correctness that types add to our
programs make these “disadvantages” less of an issue
for me personally.
https://medium.freecodecamp.org/why-use-static-types-in-javascript-part-4-b2e1e06a67c9
53. Static typing or not is an emotional topic. My advice is:
● Use whatever makes you happy and productive.
● Do acknowledge both strengths and weaknesses of
what you are using.
http://2ality.com/2018/03/javascript-typescript-reasonml.html
54. Try stuff out, understand how each
approach works and teach people
around you!