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.
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.
Do you have a healthy CI/CD pipeline? Do releases simply flow through? CI, CD, PRs, Pipelines, Releases, Deployments and all that jazz.
Whether you're new to Continuous Delivery or a hardened traveller down that road, this session has something for you. We’ll start with an exploration of branching strategy (releaseflow.org) before walking through a healthy continuous delivery configuration.
We’ll watch a code change make it's way through a pipeline to production and discuss how we can apply such practices to our everyday work.
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.
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDays Riga
Practices of trunk based development and continuous deployment have helped our six vertical slice product delivery teams be able to work together on a single product (and codebase) while maintaining rapid iteration and experimentation. With this talk I hope to inspire more teams to try these practices.
ATO 2014 - So You Think You Know 'Go'? The Go Programming LanguageJohn Potocny
What’s so special about Go? Why do people swear they’ll never develop in any other language again? You’ve probably heard a lot of the stock answers: concurrency, lightweight syntax, speed, blah, blah. What do these things _mean_ to you as an individual developer, to your code and work output, and to your team and company?
Much of Go’s real power is hidden in plain sight, overlooked and unappreciated because it’s too simple to appear significant. I know because I have written a variety of Go code for many different domains, from stats to long-running daemons to API servers and clients. Long after I thought I was good with Go, I continued to experience a-ha moments that made me realize I’m still learning a lot of it. That process continues today.
I am not the world’s best programmer in any language, but I’m pretty self-aware, and if you’re anything like me, sharing my experience with you can hopefully help you shortcut the process of ignoring Go’s true power. I also hope that you’ll gain perspective about common complaints, and perhaps understand how serious those things would be for you after using Go for a while.
Great Android apps only include what's needed to achieve the goals of the product, not enhance the resume of the developer. What’s more, the more maintainable an application is, the more likely it will have increased user satisfaction and decreased time to market.
Don't be a git - the essentials you should know about git to use it correctly
Presentation by Otto Kekäläinen held at Vincit Teatime on Nov 11th 2015
http://www.vincitteatime.fi/
When developing we have a lot of options on how to do it.
From nothing to let us guide by methodologies from the first to the last line of code.
In this slides we will visit which options (among many others) do we have and we will center on TDD, DDD and BDD, their concepts and tools that exist in PHP.
Spend some time working with OpenAPI and gRPC and you’ll notice that these two technologies have a lot in common. Both are open source efforts, both describe APIs, and both promise better experiences for API producers and consumers. So why do we need both? If we do, what value does each provide? What can each project learn from the other? We’ll bring the two together for a side-by-side comparison and pose answers to these and other questions about two API methodologies that will do much to influence the future of networked APIs.
Continuous Delivery for Python Developers – PyCon OttoPeter Bittner
Continuous Delivery sounds easy in theory, but it’s hard to do in practice. There are myriads of things you can and should do to get your code delivered faster, reliably. We look at what we can do as Python developers, or as a small or mid-sized team to make the industrialized software development production chain come true.
Talk given by Michael DeHaan and Greg DeKoenigsberg at All Things Open in October 2014, in which we discussed how we applied open source best practices to grow a large and active community of users and developers.
Do you have a healthy CI/CD pipeline? Do releases simply flow through? CI, CD, PRs, Pipelines, Releases, Deployments and all that jazz.
Whether you're new to Continuous Delivery or a hardened traveller down that road, this session has something for you. We’ll start with an exploration of branching strategy (releaseflow.org) before walking through a healthy continuous delivery configuration.
We’ll watch a code change make it's way through a pipeline to production and discuss how we can apply such practices to our everyday work.
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.
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDays Riga
Practices of trunk based development and continuous deployment have helped our six vertical slice product delivery teams be able to work together on a single product (and codebase) while maintaining rapid iteration and experimentation. With this talk I hope to inspire more teams to try these practices.
ATO 2014 - So You Think You Know 'Go'? The Go Programming LanguageJohn Potocny
What’s so special about Go? Why do people swear they’ll never develop in any other language again? You’ve probably heard a lot of the stock answers: concurrency, lightweight syntax, speed, blah, blah. What do these things _mean_ to you as an individual developer, to your code and work output, and to your team and company?
Much of Go’s real power is hidden in plain sight, overlooked and unappreciated because it’s too simple to appear significant. I know because I have written a variety of Go code for many different domains, from stats to long-running daemons to API servers and clients. Long after I thought I was good with Go, I continued to experience a-ha moments that made me realize I’m still learning a lot of it. That process continues today.
I am not the world’s best programmer in any language, but I’m pretty self-aware, and if you’re anything like me, sharing my experience with you can hopefully help you shortcut the process of ignoring Go’s true power. I also hope that you’ll gain perspective about common complaints, and perhaps understand how serious those things would be for you after using Go for a while.
Great Android apps only include what's needed to achieve the goals of the product, not enhance the resume of the developer. What’s more, the more maintainable an application is, the more likely it will have increased user satisfaction and decreased time to market.
Don't be a git - the essentials you should know about git to use it correctly
Presentation by Otto Kekäläinen held at Vincit Teatime on Nov 11th 2015
http://www.vincitteatime.fi/
When developing we have a lot of options on how to do it.
From nothing to let us guide by methodologies from the first to the last line of code.
In this slides we will visit which options (among many others) do we have and we will center on TDD, DDD and BDD, their concepts and tools that exist in PHP.
Spend some time working with OpenAPI and gRPC and you’ll notice that these two technologies have a lot in common. Both are open source efforts, both describe APIs, and both promise better experiences for API producers and consumers. So why do we need both? If we do, what value does each provide? What can each project learn from the other? We’ll bring the two together for a side-by-side comparison and pose answers to these and other questions about two API methodologies that will do much to influence the future of networked APIs.
Continuous Delivery for Python Developers – PyCon OttoPeter Bittner
Continuous Delivery sounds easy in theory, but it’s hard to do in practice. There are myriads of things you can and should do to get your code delivered faster, reliably. We look at what we can do as Python developers, or as a small or mid-sized team to make the industrialized software development production chain come true.
Talk given by Michael DeHaan and Greg DeKoenigsberg at All Things Open in October 2014, in which we discussed how we applied open source best practices to grow a large and active community of users and developers.
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM
DevOps has been such a buzzword in the IT field nowadays. If you look into job postings, you might be surprised to find terms like "work with DevOps team", "work in an agile team" etc.
What is DevOps? What is agile? And why all these? 樂
Join us on 24 May 2021, where we have a short session to explore on the events that led to the trend nowadays
We will be exploring on the current trends, tech stacks and the existence of DevOps itself! 朗
Mark this date on your calendar and we'll see you there!
* Note: This is an introductory "brief overview" session that gives you context on our upcoming events.
Slides by KwongTN.
'Scikit-project': How open source is empowering open science – and vice versaNathan Shammah
Open-source pipelines are accelerating scientific discovery, by empowering not only reproducibility of research results but also generalizability of methods. I address the rise of open source in scientific research in quantum physics and quantum information and introduce `scikit-project` a cookbook with best practices for (data) scientists.
See also https://github.com/Machine-Learning-Tokyo/MLT_Talks
As more companies have adopted microservices, conventional wisdom on microservices architecture and best practices have started to converge. Based on Datawire's experience with dozens of companies, we’ll discuss the evolution of these key trends, including polyglot architectures, the service mesh, and the role of operations.
This is the Zendcon 2013 version.
At one point in time, I was the technical lead on two different projects. One was an application we were purchasing from a vendor that was being written in Java (and had previously been written in .NET by another vendor, who then switched to Java, and then abandoned the project), and one was being built in-house with PHP on the IBM i. They were the same product for two different product lines that we offered, but time constraints forced us to build two products in tandem. In the end, the PHP application was completed and delivered to end-users in about 7 months from start to finish, while the former project languished. We'll compare the two projects in the tools and technologies that were used to integrated with the IBM i backend as well as programming.
The Development History of PVS-Studio for LinuxPVS-Studio
Earlier this year, we started doing something that we had felt uncertain about for a long time, namely porting PVS-Studio to Linux. In this article, I will tell you how we made the decision to create a product for Linux distributions after 10 years of the Windows version's existence. It's a big job, which, unfortunately, involves much more work than simply compiling the source files for the new platform, as some may think.
Building an Open Source iOS app: lessons learnedWojciech Koszek
Building an Open Source iOS app: lessons learned
Dec 12, 2016, Hacker Dojo (Santa Clara), 6pm
In this talk I'm going to talk about lessons learned from building Sensorama (http://www.sensorama.org), an Open Source sensor platform for data science. The main theme of the talk will be Open Source: what is great about it, what is bad and how you must become a part of the Open Source community to really move quickly and benefit from it. For this project, I did both the code and the design, so you'll have a chance to see how solo-developer deals with time/feature constraints, which tools I've used and what my approach towards development in this mode is. In other words: I'll tell you what I did to stay sane. If the iOS development were a walk in a dark city park, this talk may turn out to be your flashlight. If you like it, star it at GitHub: https://github.com/wkoszek/sensorama-ios
Agenda
https://www.meetup.com/svmobiledev/events/235836893/
Materials
https://github.com/wkoszek/talks/tree/master/svmobiledev2016
Some links from the slides
Fake it till you make it presentation https://developer.apple.com/videos/play/wwdc2014/223
Designing for Future Hardware https://developer.apple.com/videos/play/wwdc2015/801/
References
WWW: http://www.sensorama.org
GitHub (code): https://github.com/wkoszek/sensorama-ios
GitHub (artwork): https://github.com/wkoszek/sensorama-artwork
Author
WWW: http://www.koszek.com
Twitter: https://twitter.com/wkoszek
LinkedIn: https://www.linkedin.com/in/wkoszek/
Email: wojciech (at) koszek.com
This is a retrospective of my 30 year career in Software Engineering. Most of the tools I worked on have to do with Java, Eclipse, Python, visualization, profiling, and people.
Everyone wants (someone else) to do it: writing documentation for open source...Jody Garnett
Many people will cite how their adoption of software was based on the quality of documentation, and yet documentation can be one of the largest gaps in quality with an open source project. This talk will discuss why that is, what you (yes you) can do about it, and how the author has so far managed to avoid burnout by learning to accept less-than-perfect grammar.
A FOSS4G 2015 Presentation
FEI Digital Week Webinar at Innovation Management - October 2019 SmartOrg
Presenter: Ralph Morales III, formerly of HP.
On his innovation journey, Ralph once played the role of controller for an innovative business delivering on its milestones but failing to create enterprise value. It wasn’t tracking the world’s evidence of value. As an innovation scout, he was a witness to HP’s Smartwatch team accomplishing market traction and subsequent de-funding for failing meaningful scaling potential. Incomplete lean methods provided little value of evidence, which led the team astray. In the last chapter of his innovation journey, experience and skill combine to deliver innovation accountability and superior returns in his role as Director of Innovation. A winning formula for Return on Innovation is feasible with the proper framework.
Learn how to sustain innovative spirit in the face of hardship, match the language of innovation to the language of executives, and a missing key to breakthrough growth.
The webinar replay can be watched here: https://bit.ly/2CANrF4
Comic Book: Adventures in Product InnovationSmartOrg
This comic book was created for SmartOrg, Inc. by intern Puneet Sharma in 2015. It captures product sales conversations that go south due to the IT question from hell, "Why can't we build this in-house?"
Embedded DA vs Consultative DA: Audience WorkshopSmartOrg
At DAAG 2014, in the Ubiquitous DA: Embedded DA session on Mar 27, 2014 at Boston, David Matheson facilitated an audience workshop to reflect on the differences between Embedded DA and Consultative DA. The first four slides are a summary of speaker talks in that session, while the rest are the result of audience contributions. The original flipchart photos are also included.
Embedded Decision Analysis: Systems Design PatternsSmartOrg
This deck was presented at INFORMS on Mar 27, 2014 by Somik Raha, for the session "Ubiquitous DA: Embedded Decision Analysis", and looks at design patterns for system design in the context of Embedded DA.
Stanford-SDG Webinar Six critical principles of strategic portfolio managementSmartOrg
Stanford center for professional development and Strategic Decisions Group (SDG) presented this webinar on the six principles of strategic portfolio management. The webinar was led by David Matheson of SmartOrg was a part of the Stanford strategic decision & risk management certificate program.
The three basic dimensions of great portfolio results - How, what and who?
How do you choose your projects, especially when you have too many projects but not enough resources? How do you choose between two good projects? Which approaches produces the best results in your portfolio management?
In this webinar, David Matheson provides key insights and discusses the six critical principles of strategic portfolio management.
A talk given to the Society of Decision Professionals by Somik Raha on Jul 23, 2014
Abstract: When we hear “values,” we interpret it in three different ways: cultural norms, metrics for tradeoffs (if you happen to be a decision analyst), or distinguishing between means and ends (if you’ve read “Value-Focused Thinking”). This talk will share a fourth way of hearing the term “values,” offering an interpretation of values as “meta-strategy” by understanding intrinsic purpose. Exploring intrinsic purpose is unfamiliar territory, and stories will be shared on how such an exercise helped unlock the creative juice of an organization, gave dignity to their work and transformed their frame. Along the way, a $2 million portfolio turned into a $30 million portfolio. That story and other experiments in mapping the values of organizations will be shared. A reformulation of the six elements of decision quality along the head and heart dimensions will also be offered.
A great technology and a compelling customer need are necessary but not sufficient to change the world. What is missing? This workshop on failing forward explores common model of innovation, pivoting and generating insights and results.
Accelerating the deployment of technology to business opportunities-chevron T...SmartOrg
Companies implement good portfolio processes to achieve over 50% gains. These processes helps the company to identify projects that they must focus resources on, cut unneeded ones and maximize returns.
SmartOrg had helped companies like Chevron Texaco to improve performance and accelerate business opportunities.
This presentation gives actionable insight on your innovation project helping you to improve your ability to formulate innovation projects. The presentation provides five must-do's of innovation management and making innovation soar.
Patterns that support agile business development. These patterns can also be called Evaluation Patterns, for they provide the building blocks to take an evaluation-driven approach to funding R&D.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
Honest Reviews of Tim Han LMA Course Program.pptxtimhan337
Personal development courses are widely available today, with each one promising life-changing outcomes. Tim Han’s Life Mastery Achievers (LMA) Course has drawn a lot of interest. In addition to offering my frank assessment of Success Insider’s LMA Course, this piece examines the course’s effects via a variety of Tim Han LMA course reviews and Success Insider comments.
5. Waterfall is a result of human
confusion
5
“Managing the Development of Large Software Systems”, Dr.
Winston W. Royce (Link) - 1970
6. 6
For some mysterious reason, people latched
on to Fig 2, and thought it looked like a
waterfall.
The name caught up and ushered in
“phased” mindset of development.
8. 8
And a Fig. 4! As far back as 1970, Royce
was describing the
beginnings of an agile
mindset, but the Waterfall
religion had already
started, based on a
misunderstanding!
9. Meanwhile, a community of philosophers in
software engineering started forming in the
90’s
9
Ward Cunningham
Founding of the WikiWikiWeb in 1994.
Ward’s wiki became the home for
conversations on Design Patterns.
10. 10
1995, caused a revolution in
Object-Oriented thinking
Book knows as the
“Gang of Four”
11. The false religion of Waterfall was then seriously
challenged in 2000
11
12. 12
Source: agileatlas.org
Barry Boehm’s Cost of Change Curve
We were initially justified in doing high-quality design when
computer time was more expensive than programmer time
13. 13
Aspirational Cost of Change curve
But now, programmer time is much more expensive, and we
would love to flatten the curve
time
costofchange
This is what Extreme Programming
was inviting us to consider
16. XP’s success led to a broader umbrella under a
more neutral-sounding “Agile Software
Development”
16
Core practices like TDD and Refactoring are no longer
controversial - they are a part of a programmer’s foundation.
Martin Fowler’s book is now a classic.
Most conventional IDEs support automated
refactoring.
17. 17
Erich Gamma
One of the Gang of Four, authored
JUnit with Kent Beck, while on a long flight together,
1997
Great Article by Alberto Savoia: Beautiful Tests
History of xUnit by Martin Fowler
“JUnit took off like a rocket - and was essential to supporting
the growing movement of Extreme Programming and Test
Driven Development. I've seen a huge change of attitude
towards testing in the last decade, and I think JUnit played a
big role in that. By being small and simple it encouraged
people to learn and use it. It also proved amenable to others
extending it integrating it into tools.” — Martin Fowler
18. Lots of JUnit ports, generally
referred to as xUnit
18
nUnit - C#
cppUnit - C++
pyunit- Python
24. We will use TypeScript
24
Anders Hejlsberg
Creator of C# and
TypeScript
Superset of Javascript
Supports class-based OO concepts
Takes the tedium out of JS
Keeps you in JS paradigm
(as opposed to coffee script)
25. We will use Testem
25
Continuously runs our unit tests
26. Step 1. git clone https://github.com/behappyrightnow/anagram.git
Step 2. cd anagram
Step 3. git checkout step1
Step 4. Install NodeJS from http://nodejs.org/
Step 5. npm install testem
Let’s start with checking out a basic stub from
Github
26
27. Let’s start by writing tests
27
Come up with 5 English words, jumble them up
Find all other words you can create with those letters
List your tests.
e.g.
INPUT OUTPUT
leppa apple
rodo door, odor
28. Challenge for you
28
Make the following game using existing codebase to help
game show hosts construct a puzzle.
Given an input word, create clues by adding one extra letter.
INPUT OUTPUT
rose horse without “h”
sores without “s”
Game show host can now use this program to construct
their show saying:
Can you find flowers using this clue…
Your web-interface should provide this:
29. PASS 1: Write the code without any tests
PASS 2: Keep your code aside, write tests first and then write code
Reflection: Write an essay on what you learned by comparing Pass 1 and
Pass 2, and in general what you learned from this session
Crack this challenge in the following way:
29