This document summarizes an agenda for a talk on TypeScript and test-driven development. It introduces TypeScript, discusses test-driven development principles and code katas. It then outlines doing a string calculator kata with TypeScript, Visual Studio and Jasmine as an example. The speaker is introduced as a technical lead who enjoys test-driven development, software architecture and TypeScript.
Test-Driven Development with TypeScript+Jasmine+AngularJSSmartOrg
A session held for students at San Jose State University. A live pair-programming session and these slides were used before that session. For the code in the live exercise, follow instructions in the slides.
C++ Unit testing - the good, the bad & the uglyDror Helper
C++ is a powerful language when used by a seasoned developer. It is being used everywhere from operating systems and compilers to cross platform mobile apps development.
But this power comes with a cost - C++ programming is not simple nor easy – with memory leaks, stack overflows and strange exceptions, a software developer needs all of the power he can use.
By harnessing the power of unit tests a software developer can find defects quickly, avoid regression and speed up development time.
In this talk I’ll show how to use the right unit testing tools and practices available that will help you get your C++ code under control and even test legacy code which no one ever want to touch.
A brief introduction on Vagrant and Docker, and how to use them to create portable and distributable development environments. Know why and how to use them for better development and faster deployment, including demonstration and code samples from this presentation.
Test-Driven Development with TypeScript+Jasmine+AngularJSSmartOrg
A session held for students at San Jose State University. A live pair-programming session and these slides were used before that session. For the code in the live exercise, follow instructions in the slides.
C++ Unit testing - the good, the bad & the uglyDror Helper
C++ is a powerful language when used by a seasoned developer. It is being used everywhere from operating systems and compilers to cross platform mobile apps development.
But this power comes with a cost - C++ programming is not simple nor easy – with memory leaks, stack overflows and strange exceptions, a software developer needs all of the power he can use.
By harnessing the power of unit tests a software developer can find defects quickly, avoid regression and speed up development time.
In this talk I’ll show how to use the right unit testing tools and practices available that will help you get your C++ code under control and even test legacy code which no one ever want to touch.
A brief introduction on Vagrant and Docker, and how to use them to create portable and distributable development environments. Know why and how to use them for better development and faster deployment, including demonstration and code samples from this presentation.
Introduction to Spock: A Unit Testing FrameworkKnoldus Inc.
When it comes to true unit tests, having a mocking framework such as Spock for Java is essential. Using a mocking framework ensures that your unit tests are fast, self-contained, and deterministic. A mocking framework can help you fake external systems, pre-program your classes with expected responses, and test hard-to-replicate error conditions.
In this, we will cover the Spock testing framework, an emerging framework that can be used to test both Java and Groovy code. Unlike Mockito, Spock is a complete testing framework that can function on its own (Mockito works in addition to JUnit).
You’ll understand:
~ How Spock tests leverage existing JUnit infrastructure
~ Spock annotations and where they apply
~ Spock mocks and stubs and how to take advantage of them
And you’ll be able to:
~ Set up test fixtures
~ Run testing methods before and after tests and test classes
~ Mock classes and interfaces set expectations, and validate them
JDD2014: Continuous delivery: capitalizing high quality automated tests - Szc...PROIDEA
Mockito is intended to help writing cleaner and easier to maintain tests. Many tools and frameworks have similiar goals. Also, there are practices and methodologies focused around writing test code, TDD being the best example. We have the tooling, we have the methodology, we can start writing high quality test code any day (or continue doing it). The next logical step is to fully capitalize comprehensive and stable automated test coverage, and start delivering continuously. We will discuss it based on your experience and my lessons learned from Mockito, Gradle, and corporate environments I worked in from Europe to Silicon Valley.
Legacy code is the bane of most developers. Even so in C++ where you can find code that was created more than a decade ago.
When a developer needs to add a feature or fix a bug in such codebase he's faced with a problem - how to add code to a mess without creating a bigger mess as well as additional bugs on the way?
In this talk I show what worked for me when working with large, undocumented piles of C++ code, the practices and patterns that I use and how to transform unmaintainable code into code that can be extended and improved.
Effectively Reuse the Code Between PHP ProjectsAndrew Yatsenko
The new project has come, and you need to reuse several libraries from the old one? Or maybe you have added a new microservice and need to reuse a couple of packages from other microservices?
In this report, I'm reviewing methods for reusing code between applications that we have experienced on our projects for several years. I show how to avoid copying the packages, while not spending additional resources on the publication of individual packages.
The talk is about practical usage of git submodules, composer public, private, VCS and "path" repositories, and git subtree splitter; benefits, and cons of each method, and how we used them in practice for multiple projects.
Better Swift from the Foundation up #tryswiftnyc17 09-06Carl Brown
Highlights of some useful Swift coding patterns and ways to avoid common sources of bugs and performance issues. These lessons learned are based on examination of Swift CoreLibs Foundation and other Open Source Swift libraries and projects, as he has contributed to helping bring Swift to the Server.
Introduction to Spock: A Unit Testing FrameworkKnoldus Inc.
When it comes to true unit tests, having a mocking framework such as Spock for Java is essential. Using a mocking framework ensures that your unit tests are fast, self-contained, and deterministic. A mocking framework can help you fake external systems, pre-program your classes with expected responses, and test hard-to-replicate error conditions.
In this, we will cover the Spock testing framework, an emerging framework that can be used to test both Java and Groovy code. Unlike Mockito, Spock is a complete testing framework that can function on its own (Mockito works in addition to JUnit).
You’ll understand:
~ How Spock tests leverage existing JUnit infrastructure
~ Spock annotations and where they apply
~ Spock mocks and stubs and how to take advantage of them
And you’ll be able to:
~ Set up test fixtures
~ Run testing methods before and after tests and test classes
~ Mock classes and interfaces set expectations, and validate them
JDD2014: Continuous delivery: capitalizing high quality automated tests - Szc...PROIDEA
Mockito is intended to help writing cleaner and easier to maintain tests. Many tools and frameworks have similiar goals. Also, there are practices and methodologies focused around writing test code, TDD being the best example. We have the tooling, we have the methodology, we can start writing high quality test code any day (or continue doing it). The next logical step is to fully capitalize comprehensive and stable automated test coverage, and start delivering continuously. We will discuss it based on your experience and my lessons learned from Mockito, Gradle, and corporate environments I worked in from Europe to Silicon Valley.
Legacy code is the bane of most developers. Even so in C++ where you can find code that was created more than a decade ago.
When a developer needs to add a feature or fix a bug in such codebase he's faced with a problem - how to add code to a mess without creating a bigger mess as well as additional bugs on the way?
In this talk I show what worked for me when working with large, undocumented piles of C++ code, the practices and patterns that I use and how to transform unmaintainable code into code that can be extended and improved.
Effectively Reuse the Code Between PHP ProjectsAndrew Yatsenko
The new project has come, and you need to reuse several libraries from the old one? Or maybe you have added a new microservice and need to reuse a couple of packages from other microservices?
In this report, I'm reviewing methods for reusing code between applications that we have experienced on our projects for several years. I show how to avoid copying the packages, while not spending additional resources on the publication of individual packages.
The talk is about practical usage of git submodules, composer public, private, VCS and "path" repositories, and git subtree splitter; benefits, and cons of each method, and how we used them in practice for multiple projects.
Better Swift from the Foundation up #tryswiftnyc17 09-06Carl Brown
Highlights of some useful Swift coding patterns and ways to avoid common sources of bugs and performance issues. These lessons learned are based on examination of Swift CoreLibs Foundation and other Open Source Swift libraries and projects, as he has contributed to helping bring Swift to the Server.
Test driven development and react js application go hand in handKaty Slemon
Importance of Test-Driven Development for ReactJS Application with the best tools to support TDD for ReactJS development. Pros & Cons of TDD and why you should use TDD to React apps.
Learn the fundamental concepts and differences between JavaScript and TypeScript to understand the comparison between the two scripting languages.
For More Information: https://www.albiorixtech.com/blog/typescript-vs-javascript/
The .Net structure is a product improvement platform created by Microsoft. The structure was intended to make applications, which would keep running on the Windows Platform.
These slides were used to teach the module "Introduction to Agile Software Development & Python" as a sub-section of the major course "Software Engineering" for the 3rd year undergraduates of the Department of Computer Engineering, University of Peradeniya in 2010.
xUnit and TDD: Why and How in Enterprise Software, August 2012Justin Gordon
“A comprehensive suite of JUnit tests is one of the most import aspects of a software project because it reduces bugs, facilitates adding new developers, and enables refactoring and performance tuning with confidence. Test-driven development (TDD) is the best way to build a suite of tests. And the Dependent Object Framework is the best way to test against database objects.” This presentation covers the benefits of TDD along with practical advice on how to implement TDD in complex projects.
How to Become a Front-End Developer? Step-by-Step Guide by CareerviraCareervira
A front-end developer creates the front-end of websites and web apps, which is what users view and interact with. In this article, we've created a comprehensive guide to assist you to understand the foundations of Front End development.
Agile & Test Driven Development: The Ampersand Commerce ApproachAmpersand
A presentation to University of Manchester Computer Science graduates about how Ampersand Commerce approaches Agile and Test Driven Development. Also, information about our graduate programme for software engineers
Agile .NET Development with BDD and Continuous IntegrationQuan Truong Anh
Introducing BDD - Behavior Driven Development
Introducing CI - Continuous Integration
Demo using Open Source Software tools (Git, Jenkins, SonarQube) with configuration for .NET (MSBuild)
Agile .NET Development with BDD and Continuous IntegrationTung Nguyen Thanh
Agile .NET Development with BDD and Continuous Integration
Áp dụng CI là một phần không thể thiếu nếu bạn mong muốn nâng cao năng suất và giảm thiểu lỗi lầm khi phát triển cũng như deploy sản phẩm qua việc sử dụng các practices và tools để tự động hóa các khâu
Bài trình bày của anh Trương Anh Quân tại Meetup của Ha Noi .NET Group.
Chi tiết vui lòng xem tại: http://tungnt.net
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Typescript kata The TDD style 2 edition
1. 活字体カタ:テスト駆動開発
TypeScript Kata
The TDD style 2 edition
Ronnie Hegelund
Creator of AutoFixtureTS
http://bit.ly/XYF0Gp
Author of Enterprise development in TypeScript
http://bit.ly/11WyKF8
@ronniedrengen
http://ronniehegelund.blogspot.dk/
2. About me!
Ronnie Hegelund
Technical Lead, Widex A/S
http://ronniehegelund.blogspot.dk/
@ronniedrengen
Love all facets of software development from
Test driven development, Software Architecture, continuous delivery
Focus on
Web, C#, TypeScript and Developer/Team productivity
Latest projects
• TypeScript BCL
• TypeScript weekly
• CommunitySnippets for VisualStudio
• Writing a book. Enterprise development In TypeScript
• Visual Studio Test project templates
7. TypeScript?
TypeScript is JavaScript with high-level language features.
Keyword
Description
Modules
Encapsulation for code and classes
Imports
Import modules
Exports
Export a member from module
Class
Encapsulation for properties, variables and function members
Extends
Extend a class. Used for inheritance
Implements
Implements an interface
Interface
Defines a contract of behavior when implemented by types
Constructor
Provide initialization for classes
Public and Private
Member visibillity modifier
=>
Arrow syntax, also called lambda expressions, used with definitions and functions
:
Seperator between the variable name and the variable type
...
Rest syntax, the same as the C#’s method parameter params
<TypeName>
Casting a type to another types
Generics <T>
Encapsulate operations that are not specific to a particular type
Enum
Used to quickly declare a range of constant or computed values
8. What is TypeScript
Starts with JavaScript
All JavaScript code is TypeScript code, simply copy and paste
All JavaScript libraries work with TypeScript
Optional Static Types, Classes, Modules
Enable scalable application development and excellent tooling
Zero cost: Static types completely disappear at run-time
Ends with JavaScript
Compiles to idiomatic JavaScript
Runs in any browser or host, on any OS
9. What is TypeScript
Library Typings (.d.ts files)
DefinitelyTyped has > 326 community library typings projects
344 contributors
Tools and Build Integration
Rich IDEs: Visual Studio, Eclipse, WebStorm, Cloud9, Brackets
Text Editors: SublimeText, vi, Emacs, JSBin
Build Integration: ASP.NET, node.js, compile-in-client, Ruby, grunt
and more
Open Source
Active development on CodePlex
Thousands of issues/discussions, hundreds of participants
11. Test-Driven Development
We all know that we need to test our code, but do we do it?
9 out of 10 times we skip it over because we just think it's faster.
My conclusion is that I am about 10% faster, and my code tested!
TDD In the simplest form
12. Solution, Testing vs TDD
Testing
Test-Driven Development
Design
Design
Test
Implement
Implement
Test
Test
13. How to do it
Design: figure out what you want
Test: write a test to express the design
It should FAIL
Implement: Write the code
Test againg:
It should PASS
14. Code Kata
Using Code Kata’s to become a better developer
Code kata is an exercise in programming that helps a programmer hone
their skills through practice and repetition.
A kata a day keeps the debugger away
Apply a Kata daily for at least 15 minutes, by coding, refactoring and test-first,.
Before you begin a Kata:
Try not to read ahead.
Do one task at a time. The trick is to learn to work incrementally.
Make sure you only test for correct inputs. there is no need to test for invalid
inputs for this kata
15. Code Katas aren’t effective
Doing the same thing over and over again doesn’t make us better at it
When we first learned from walking it was tuff, now it’s just a repetitive process