Lean DevOps - Lessons Learned from Innovation-driven CompaniesXavier Amatriain
This document summarizes a presentation about lean DevOps practices. It discusses how companies can optimize for innovation through experimentation while balancing factors like cost, availability, scalability, speed, security, and developer happiness. The presentation outlines lessons learned, including that quality pays off by reducing technical debt, metrics are important, and competing priorities like speed and cost can conflict so teams must find the right balance. It concludes that lean approaches benefit companies and DevOps teams by encouraging innovation, but also add risk, so processes are needed to optimize across concerns like customer experience, infrastructure stability, and business outcomes.
The document provides an overview of a coding lesson that teaches students how to program using simple commands. The objectives are for students to solve programming challenges with a constrained set of commands, explain considerations of program efficiency, use App Lab to write turtle graphic programs, and program a turtle task with a partner requiring about 50 lines of code. It introduces pair programming and discusses using App Lab as the programming environment. It provides examples of warm up activities and reviews computer science vocabulary before having students work on turtle programming problems in Code Studio and compare solutions with another pair.
My playbook for when starting a new role as an engineer. If you're new to the industry or new to changing jobs, there's some helpful information and a game plan for how to be successful for your first week. You can find more information about this presentation at https://blog.thesoftwarementor.com/presentations
The document discusses strategies for handling big code refactoring within agile methodologies. It describes various refactoring approaches like "big bang", "divide and conquer", and planned refactoring periods. The best approach emphasized is incremental refactoring as a regular part of work to continuously improve code quality. Agile practices like defining a clear vision, completing work in small batches, and iterating help enable big refactoring. Tools like trunk-based development, branch by abstraction, and feature toggles can also aid refactoring within agile.
Making the Unstable Stable - An Intro To TestingCameron Presley
Does it always seem like bugs you've fixed keep coming back? Does it seem like when you fix one bug, two more crop up? What if I were to tell you there's a better way?
In this presentation, we're going to explore how to make a code base more stable by using automated testing. To start, we'll explore the business case of why you should be writing tests by looking at industry studies and personal experience. From there, we'll look at the fundamentals of testing by talking about the pros/cons of unit, integration, and UI testing. Finally, we'll look at some resources to learn how to write tests.
Intended for developers who are new to testing, by the end of this presentation, you will understand why you should write tests, and will have the concepts and tools to get started.
Prerequisites
Some knowledge with an Object-Oriented language would be beneficial, but not required.
Rollout projects allow controlled distribution of software packages and patches through staged deployments using steps. The workflow processor moves content between steps if exit criteria are met. Steps can perform actions like creating deployment tasks. Project settings configure notifications, user scope, and defaults for all steps. Steps have additional settings for patch-specific actions like changing autofix or vulnerability scan settings. Automating definition downloads adds new content to steps for processing in rollout projects.
TDD involves writing tests before writing code to satisfy requirements. The document discusses TDD, providing:
1. An overview of the TDD process and definitions of its key steps - make a test, make it fail, make it pass.
2. An example walking through writing a test for an "easy button" and implementing the code to pass the test.
3. Reasons for using TDD, including improved code quality, design, discipline, and documentation from maintaining an automated test suite.
Introduction to the fundamentals of eXtreme programming (XP). XP is a software development approach which stresses on improving software quality and respond according to changing business requirements.
Lean DevOps - Lessons Learned from Innovation-driven CompaniesXavier Amatriain
This document summarizes a presentation about lean DevOps practices. It discusses how companies can optimize for innovation through experimentation while balancing factors like cost, availability, scalability, speed, security, and developer happiness. The presentation outlines lessons learned, including that quality pays off by reducing technical debt, metrics are important, and competing priorities like speed and cost can conflict so teams must find the right balance. It concludes that lean approaches benefit companies and DevOps teams by encouraging innovation, but also add risk, so processes are needed to optimize across concerns like customer experience, infrastructure stability, and business outcomes.
The document provides an overview of a coding lesson that teaches students how to program using simple commands. The objectives are for students to solve programming challenges with a constrained set of commands, explain considerations of program efficiency, use App Lab to write turtle graphic programs, and program a turtle task with a partner requiring about 50 lines of code. It introduces pair programming and discusses using App Lab as the programming environment. It provides examples of warm up activities and reviews computer science vocabulary before having students work on turtle programming problems in Code Studio and compare solutions with another pair.
My playbook for when starting a new role as an engineer. If you're new to the industry or new to changing jobs, there's some helpful information and a game plan for how to be successful for your first week. You can find more information about this presentation at https://blog.thesoftwarementor.com/presentations
The document discusses strategies for handling big code refactoring within agile methodologies. It describes various refactoring approaches like "big bang", "divide and conquer", and planned refactoring periods. The best approach emphasized is incremental refactoring as a regular part of work to continuously improve code quality. Agile practices like defining a clear vision, completing work in small batches, and iterating help enable big refactoring. Tools like trunk-based development, branch by abstraction, and feature toggles can also aid refactoring within agile.
Making the Unstable Stable - An Intro To TestingCameron Presley
Does it always seem like bugs you've fixed keep coming back? Does it seem like when you fix one bug, two more crop up? What if I were to tell you there's a better way?
In this presentation, we're going to explore how to make a code base more stable by using automated testing. To start, we'll explore the business case of why you should be writing tests by looking at industry studies and personal experience. From there, we'll look at the fundamentals of testing by talking about the pros/cons of unit, integration, and UI testing. Finally, we'll look at some resources to learn how to write tests.
Intended for developers who are new to testing, by the end of this presentation, you will understand why you should write tests, and will have the concepts and tools to get started.
Prerequisites
Some knowledge with an Object-Oriented language would be beneficial, but not required.
Rollout projects allow controlled distribution of software packages and patches through staged deployments using steps. The workflow processor moves content between steps if exit criteria are met. Steps can perform actions like creating deployment tasks. Project settings configure notifications, user scope, and defaults for all steps. Steps have additional settings for patch-specific actions like changing autofix or vulnerability scan settings. Automating definition downloads adds new content to steps for processing in rollout projects.
TDD involves writing tests before writing code to satisfy requirements. The document discusses TDD, providing:
1. An overview of the TDD process and definitions of its key steps - make a test, make it fail, make it pass.
2. An example walking through writing a test for an "easy button" and implementing the code to pass the test.
3. Reasons for using TDD, including improved code quality, design, discipline, and documentation from maintaining an automated test suite.
Introduction to the fundamentals of eXtreme programming (XP). XP is a software development approach which stresses on improving software quality and respond according to changing business requirements.
ENG101- English Comprehension- Lecture 42Bilal Ahmed
This document discusses verb tenses and passive sentences in English. It begins by explaining that verbs are the most important part of a sentence as they indicate the action and tense. There are six main tenses in English - present, past, future, present perfect, past perfect, and future perfect. The document then explains the four main parts of regular verbs and provides examples of how they are used to form different tenses. It examines each of the six main tenses in more detail and provides examples. It also discusses the progressive and perfect tenses. Finally, it includes some practice exercises for identifying incorrect or inconsistent verb tense usage.
MTH101 - Calculus and Analytical Geometry- Lecture 44Bilal Ahmed
Virtual University
Course MTH101 - Calculus and Analytical Geometry
Lecture No 44
Instructor's Name: Dr. Faisal Shah Khan
Course Email: mth101@vu.edu.pk
ENG101- English Comprehension- Lecture 43Bilal Ahmed
This document provides a lesson on word order in English sentences. It discusses the typical placement of verbs and objects, adverbs, words like "still" and "yet", conjunctions like "although" and "even though", and the use of words like "even", "as", and "like". Examples are given to illustrate correct and incorrect word orders. Multiple practice exercises are included for learners to identify correct and incorrect usages. The document aims to help learners understand and properly apply word order rules in English sentences.
ENG101- English Comprehension- Lecture 35Bilal Ahmed
This document provides instruction on how to write an outline for an essay. It begins by explaining what an outline is and its purpose in both writing and reading. Key points covered include organizing ideas in a logical order with headings and subheadings, using parallel structure, avoiding overlap between headings, and leaving space to add details. Examples of outlines on various topics like Shakespeare's works and books enjoyed are included to illustrate best practices. The document concludes with guidance on writing topic sentences for each heading and subheading in an outline.
ENG101- English Comprehension- Lecture 24Bilal Ahmed
This document provides a lesson on identifying and correcting common sentence errors, specifically sentence fragments. It discusses four types of fragments: dependent word fragments, -ing and to fragments, added-detail fragments, and missing-subject fragments. For each type, it provides examples and guidelines for correcting the errors, such as connecting the fragment to the previous sentence or creating a new sentence. Practice exercises are included for students to identify fragment errors and rewrite the sentences correctly.
This document provides an overview of refactoring legacy code. It discusses the importance of refactoring to maintain and reduce complexity as a system evolves. Refactoring improves code design without changing behavior. Tests are important for refactoring to preserve existing behavior and allow changing code safely. The document outlines a recipe for refactoring legacy code, including identifying change points, adding test points, making code testable, writing tests, and then refactoring and changing code. It emphasizes that legacy code is often not initially testable, requiring changes to break dependencies before adding tests.
Overview of Software Engineering Principles - SCPS311.pptxBypassFrp
The document provides an overview of software engineering principles and concepts. It discusses the software development process, which includes problem analysis, requirements elicitation, software specification, design, implementation, testing, delivery, operation, and maintenance. It defines software engineering and the software process. It also describes the tools used by programmers, including hardware, software tools, and ideaware (knowledge and methodologies). Finally, it discusses the goals of quality software, including that it works, can be modified, is reusable, and is completed on time and within budget. The first step in any programming project is to understand the problem by writing a detailed specification.
ENG101- English Comprehension- Lecture 42Bilal Ahmed
This document discusses verb tenses and passive sentences in English. It begins by explaining that verbs are the most important part of a sentence as they indicate the action and tense. There are six main tenses in English - present, past, future, present perfect, past perfect, and future perfect. The document then explains the four main parts of regular verbs and provides examples of how they are used to form different tenses. It examines each of the six main tenses in more detail and provides examples. It also discusses the progressive and perfect tenses. Finally, it includes some practice exercises for identifying incorrect or inconsistent verb tense usage.
MTH101 - Calculus and Analytical Geometry- Lecture 44Bilal Ahmed
Virtual University
Course MTH101 - Calculus and Analytical Geometry
Lecture No 44
Instructor's Name: Dr. Faisal Shah Khan
Course Email: mth101@vu.edu.pk
ENG101- English Comprehension- Lecture 43Bilal Ahmed
This document provides a lesson on word order in English sentences. It discusses the typical placement of verbs and objects, adverbs, words like "still" and "yet", conjunctions like "although" and "even though", and the use of words like "even", "as", and "like". Examples are given to illustrate correct and incorrect word orders. Multiple practice exercises are included for learners to identify correct and incorrect usages. The document aims to help learners understand and properly apply word order rules in English sentences.
ENG101- English Comprehension- Lecture 35Bilal Ahmed
This document provides instruction on how to write an outline for an essay. It begins by explaining what an outline is and its purpose in both writing and reading. Key points covered include organizing ideas in a logical order with headings and subheadings, using parallel structure, avoiding overlap between headings, and leaving space to add details. Examples of outlines on various topics like Shakespeare's works and books enjoyed are included to illustrate best practices. The document concludes with guidance on writing topic sentences for each heading and subheading in an outline.
ENG101- English Comprehension- Lecture 24Bilal Ahmed
This document provides a lesson on identifying and correcting common sentence errors, specifically sentence fragments. It discusses four types of fragments: dependent word fragments, -ing and to fragments, added-detail fragments, and missing-subject fragments. For each type, it provides examples and guidelines for correcting the errors, such as connecting the fragment to the previous sentence or creating a new sentence. Practice exercises are included for students to identify fragment errors and rewrite the sentences correctly.
This document provides an overview of refactoring legacy code. It discusses the importance of refactoring to maintain and reduce complexity as a system evolves. Refactoring improves code design without changing behavior. Tests are important for refactoring to preserve existing behavior and allow changing code safely. The document outlines a recipe for refactoring legacy code, including identifying change points, adding test points, making code testable, writing tests, and then refactoring and changing code. It emphasizes that legacy code is often not initially testable, requiring changes to break dependencies before adding tests.
Overview of Software Engineering Principles - SCPS311.pptxBypassFrp
The document provides an overview of software engineering principles and concepts. It discusses the software development process, which includes problem analysis, requirements elicitation, software specification, design, implementation, testing, delivery, operation, and maintenance. It defines software engineering and the software process. It also describes the tools used by programmers, including hardware, software tools, and ideaware (knowledge and methodologies). Finally, it discusses the goals of quality software, including that it works, can be modified, is reusable, and is completed on time and within budget. The first step in any programming project is to understand the problem by writing a detailed specification.
This document discusses various programming anti-patterns organized into three sections: programming anti-patterns, methodological anti-patterns, and configuration management anti-patterns. Some of the programming anti-patterns discussed include accidental complexity, blind faith, boat anchor, cargo cult programming, coding by exception, error hiding, hard coding, magic numbers, spaghetti code, and incorrect exceptions usage. Some methodological anti-patterns discussed include copy and paste programming, golden hammer, improbability factor, premature optimization, and premature pessimization.
Growing as a software craftsperson (part 1) From Pune Software Craftsmanship.Dattatray Kale
Presentation on Saturday, April 13, 2019, From Pune Software Craftsmanship.
https://www.meetup.com/punesoftwarecraftsmancommunity/events/260255336/
Introduced Software Craftsmanship manifesto, professionalism for developers, Software engineering code of ethics, boys scout rule, Broken windows theory, Poka-yoke, and Cyclomatic Complexity.
This document provides an introduction and overview of data structures and algorithms. It begins by outlining the topics that will be covered, including data structures, algorithms, abstract data types, and object-oriented programming. It then defines what a data structure is and provides examples. Different types of data structures are discussed, including linear structures like lists, queues, and stacks, as well as non-linear structures like trees, graphs, and hash tables. The document also defines what an algorithm is and discusses why algorithms are important. It provides examples of successful algorithms and discusses the need for correctness and efficiency in algorithms. The relationship between programs, data structures, and algorithms is also briefly explained.
This document discusses software development methodologies like Waterfall and Agile. It emphasizes that while Waterfall is still dominant, Agile is better suited for small organizations because it focuses on delivering working software frequently. It also stresses the importance of good programming practices like using intention-revealing names, avoiding side effects, and test-driven development (TDD) to produce understandable and testable code. Finally, it outlines various tools that can be used for project management, version control, testing, continuous integration, and monitoring in the development process.
The document discusses various aspects of managing software projects and processes. It covers tasks that a project manager would be responsible for, including planning, scheduling, directing teams, and monitoring progress. It also discusses different software development models like the waterfall model and agile development. Project managers play an important role in planning projects, estimating costs and schedules, and building effective teams to complete software work.
1. The document outlines the process and methodology for building a custom content management system (CMS) with Django. It discusses planning the project through iterative sprints, dealing with migrating legacy data from existing systems, and determining when to customize Django versus using or contributing to existing third-party apps.
2. When migrating legacy data, the document notes it is important to make the migration process easy to run frequently as the data model evolves. Tips include using other servers to avoid slowing down development and handling inconsistent or complex legacy data fields.
3. In determining whether to customize Django or use third-party apps, the document recommends starting with app templates and reusable apps but being willing to fork early if
(SPOT205) 5 Lessons for Managing Massive IT Transformation ProjectsAmazon Web Services
Choice Hotels is undertaking a multiyear, $20 million project to recreate our core business engines on AWS. In trying to approach this complex undertaking, we determined that the project itself is a system too. You can apply principles of good architecture and design work in how you approach the project structure and management. Come to this talk by Choice Hotels’ CTO to learn five key lessons and 20 concrete takeaways that you can implement today to help your AWS projects succeed.
CS101- Introduction to Computing- Lecture 45Bilal Ahmed
This lecture provides a review and wrap-up of the CS101 Introduction to Computing course. It summarizes key topics covered over the past 44 lectures such as programming methodology, readable code, algorithm design, testing and debugging. It reviews objectives of the course which were to build an appreciation of fundamental computing concepts, familiarize students with popular productivity software, and achieve beginner proficiency in web development. The lecture concludes by asking for student feedback on how well the course objectives were achieved.
Quality metrics and angular js applicationsnadeembtech
This document discusses various ways to measure and ensure code quality in JavaScript programs. It covers topics like linting, testing, complexity analysis, and static code analysis. Linters like JSHint and ESLint can check for style and syntax issues. Testing tools like Jasmine, Karma, and Protractor allow writing unit and integration tests. Complexity can be measured using metrics related to lines of code, arguments, nesting, and more. Tools like Plato and complexity-report provide metrics and visualizations. Adopting these practices helps reduce bugs and technical debt.
Extreme Programming (XP) is an agile software development framework that focuses on customer satisfaction, rapid and flexible response to change, simplicity, communication, and feedback. The core practices of XP include the planning game, simple design, metaphor, continuous testing, pair programming, collective code ownership, and continuous integration. Tests are written and automated before code is written to ensure customer requirements are met. Customers are involved throughout development providing feedback and acceptance tests. Frequent small releases are made, often multiple times per day, to get working software into customers' hands quickly.
The document describes the twelve core practices of extreme programming (XP). It discusses each practice in 1-2 paragraphs, covering pair programming, refactoring, simple design, collective code ownership, continuous integration, on-site customer, small releases, 40-hour work week, coding standards, system metaphor, planning game, and testing (including unit and acceptance testing). The advantages include customer focus, incremental releases, and continuous testing/integration improving quality. Disadvantages include being suited for a single co-located team and not working as well without customer involvement or for large scalable systems.
Slides from my last presentation at the Cape Town Meteor meetup, on optimising the UI, specifically for Hybrid apps and for Meteor JS hybrid apps.
The main thrust is really more about design patterns, and carefully controlling data management in your mobile app, with great examples of these patterns out in the real world.
see the mobile patterns video here : https://www.youtube.com/watch?v=e6WWX4TF3UI
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
https://youtu.be/KcFCcCsn6mM
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
This document discusses the benefits of polyglot and poly-paradigm programming approaches for building more agile applications. It describes how using multiple languages and programming paradigms can optimize both performance and developer productivity. Specifically, it suggests that statically-typed compiled languages be used for core application components while dynamically-typed scripting languages connect and customize these components. This approach allows optimizing areas that require speed/efficiency separately from those requiring flexibility. The document also advocates aspects and functional programming to address cross-cutting concerns and concurrency challenges that arise in modern applications.
Lecture 7 program development issues (supplementary)alvin567
The document discusses key topics for writing good programs including thinking before programming, writing readable code through naming conventions, comments and formatting, strategies for problem solving like simplifying problems and relaxing, and the importance of testing, debugging, documenting programs to address errors and allow for maintenance. It provides examples and emphasizes practicing programming as the best way to improve problem solving and development skills.
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
Dr. Fahim Arif who is the Director R&D at MCS, principal investigator and GHQ authorized consultant for Nexsource Pak (Pvt) Ltd) discussed the capability of building cyber defense in the Data Protection and Cyber Security event that was hosted recently by Maven Logix. In his session he gave the audience valuable information about the life cycle of a cyber-threat discussing what and how to take measures by performing formal code reviews, code inspections. He discussed essential elements of code review, paired programming and alternatives to treat and tackle cyber-threat
This document discusses practices of agile developers. It covers topics like version control, issue tracking, unit testing, pair programming, refactoring, code reviews, and collaboration tools. The overall message is on continuously improving expertise and productivity through techniques like feedback, testing, refactoring, and 10,000 hours of practice.
Similar to CS101- Introduction to Computing- Lecture 44 (20)
Leveraging Generative AI to Drive Nonprofit InnovationTechSoup
In this webinar, participants learned how to utilize Generative AI to streamline operations and elevate member engagement. Amazon Web Service experts provided a customer specific use cases and dived into low/no-code tools that are quick and easy to deploy through Amazon Web Service (AWS.)
বাংলাদেশের অর্থনৈতিক সমীক্ষা ২০২৪ [Bangladesh Economic Review 2024 Bangla.pdf] কম্পিউটার , ট্যাব ও স্মার্ট ফোন ভার্সন সহ সম্পূর্ণ বাংলা ই-বুক বা pdf বই " সুচিপত্র ...বুকমার্ক মেনু 🔖 ও হাইপার লিংক মেনু 📝👆 যুক্ত ..
আমাদের সবার জন্য খুব খুব গুরুত্বপূর্ণ একটি বই ..বিসিএস, ব্যাংক, ইউনিভার্সিটি ভর্তি ও যে কোন প্রতিযোগিতা মূলক পরীক্ষার জন্য এর খুব ইম্পরট্যান্ট একটি বিষয় ...তাছাড়া বাংলাদেশের সাম্প্রতিক যে কোন ডাটা বা তথ্য এই বইতে পাবেন ...
তাই একজন নাগরিক হিসাবে এই তথ্য গুলো আপনার জানা প্রয়োজন ...।
বিসিএস ও ব্যাংক এর লিখিত পরীক্ষা ...+এছাড়া মাধ্যমিক ও উচ্চমাধ্যমিকের স্টুডেন্টদের জন্য অনেক কাজে আসবে ...
it describes the bony anatomy including the femoral head , acetabulum, labrum . also discusses the capsule , ligaments . muscle that act on the hip joint and the range of motion are outlined. factors affecting hip joint stability and weight transmission through the joint are summarized.
This document provides an overview of wound healing, its functions, stages, mechanisms, factors affecting it, and complications.
A wound is a break in the integrity of the skin or tissues, which may be associated with disruption of the structure and function.
Healing is the body’s response to injury in an attempt to restore normal structure and functions.
Healing can occur in two ways: Regeneration and Repair
There are 4 phases of wound healing: hemostasis, inflammation, proliferation, and remodeling. This document also describes the mechanism of wound healing. Factors that affect healing include infection, uncontrolled diabetes, poor nutrition, age, anemia, the presence of foreign bodies, etc.
Complications of wound healing like infection, hyperpigmentation of scar, contractures, and keloid formation.
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
How to Setup Warehouse & Location in Odoo 17 InventoryCeline George
In this slide, we'll explore how to set up warehouses and locations in Odoo 17 Inventory. This will help us manage our stock effectively, track inventory levels, and streamline warehouse operations.
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...PECB
Denis is a dynamic and results-driven Chief Information Officer (CIO) with a distinguished career spanning information systems analysis and technical project management. With a proven track record of spearheading the design and delivery of cutting-edge Information Management solutions, he has consistently elevated business operations, streamlined reporting functions, and maximized process efficiency.
Certified as an ISO/IEC 27001: Information Security Management Systems (ISMS) Lead Implementer, Data Protection Officer, and Cyber Risks Analyst, Denis brings a heightened focus on data security, privacy, and cyber resilience to every endeavor.
His expertise extends across a diverse spectrum of reporting, database, and web development applications, underpinned by an exceptional grasp of data storage and virtualization technologies. His proficiency in application testing, database administration, and data cleansing ensures seamless execution of complex projects.
What sets Denis apart is his comprehensive understanding of Business and Systems Analysis technologies, honed through involvement in all phases of the Software Development Lifecycle (SDLC). From meticulous requirements gathering to precise analysis, innovative design, rigorous development, thorough testing, and successful implementation, he has consistently delivered exceptional results.
Throughout his career, he has taken on multifaceted roles, from leading technical project management teams to owning solutions that drive operational excellence. His conscientious and proactive approach is unwavering, whether he is working independently or collaboratively within a team. His ability to connect with colleagues on a personal level underscores his commitment to fostering a harmonious and productive workplace environment.
Date: May 29, 2024
Tags: Information Security, ISO/IEC 27001, ISO/IEC 42001, Artificial Intelligence, GDPR
-------------------------------------------------------------------------------
Find out more about ISO training and certification services
Training: ISO/IEC 27001 Information Security Management System - EN | PECB
ISO/IEC 42001 Artificial Intelligence Management System - EN | PECB
General Data Protection Regulation (GDPR) - Training Courses - EN | PECB
Webinars: https://pecb.com/webinars
Article: https://pecb.com/article
-------------------------------------------------------------------------------
For more information about PECB:
Website: https://pecb.com/
LinkedIn: https://www.linkedin.com/company/pecb/
Facebook: https://www.facebook.com/PECBInternational/
Slideshare: http://www.slideshare.net/PECBCERTIFICATION
Communicating effectively and consistently with students can help them feel at ease during their learning experience and provide the instructor with a communication trail to track the course's progress. This workshop will take you through constructing an engaging course container to facilitate effective communication.
How to Make a Field Mandatory in Odoo 17Celine George
In Odoo, making a field required can be done through both Python code and XML views. When you set the required attribute to True in Python code, it makes the field required across all views where it's used. Conversely, when you set the required attribute in XML views, it makes the field required only in the context of that particular view.
Temple of Asclepius in Thrace. Excavation resultsKrassimira Luka
The temple and the sanctuary around were dedicated to Asklepios Zmidrenus. This name has been known since 1875 when an inscription dedicated to him was discovered in Rome. The inscription is dated in 227 AD and was left by soldiers originating from the city of Philippopolis (modern Plovdiv).
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPRAHUL
This Dissertation explores the particular circumstances of Mirzapur, a region located in the
core of India. Mirzapur, with its varied terrains and abundant biodiversity, offers an optimal
environment for investigating the changes in vegetation cover dynamics. Our study utilizes
advanced technologies such as GIS (Geographic Information Systems) and Remote sensing to
analyze the transformations that have taken place over the course of a decade.
The complex relationship between human activities and the environment has been the focus
of extensive research and worry. As the global community grapples with swift urbanization,
population expansion, and economic progress, the effects on natural ecosystems are becoming
more evident. A crucial element of this impact is the alteration of vegetation cover, which plays a
significant role in maintaining the ecological equilibrium of our planet.Land serves as the foundation for all human activities and provides the necessary materials for
these activities. As the most crucial natural resource, its utilization by humans results in different
'Land uses,' which are determined by both human activities and the physical characteristics of the
land.
The utilization of land is impacted by human needs and environmental factors. In countries
like India, rapid population growth and the emphasis on extensive resource exploitation can lead
to significant land degradation, adversely affecting the region's land cover.
Therefore, human intervention has significantly influenced land use patterns over many
centuries, evolving its structure over time and space. In the present era, these changes have
accelerated due to factors such as agriculture and urbanization. Information regarding land use and
cover is essential for various planning and management tasks related to the Earth's surface,
providing crucial environmental data for scientific, resource management, policy purposes, and
diverse human activities.
Accurate understanding of land use and cover is imperative for the development planning
of any area. Consequently, a wide range of professionals, including earth system scientists, land
and water managers, and urban planners, are interested in obtaining data on land use and cover
changes, conversion trends, and other related patterns. The spatial dimensions of land use and
cover support policymakers and scientists in making well-informed decisions, as alterations in
these patterns indicate shifts in economic and social conditions. Monitoring such changes with the
help of Advanced technologies like Remote Sensing and Geographic Information Systems is
crucial for coordinated efforts across different administrative levels. Advanced technologies like
Remote Sensing and Geographic Information Systems
9
Changes in vegetation cover refer to variations in the distribution, composition, and overall
structure of plant communities across different temporal and spatial scales. These changes can
occur natural.
1. 1
CS101 Introduction to Computing
Lecture 44Programming Methodology
(Web Development Lecture 15)
2. 2
During the last lecture we discussed
Graphics & Animation
• We became able to add and manipulate
images and simple animations to a Web page
3. 3
Images in HTML
• It is quite straight forward to include gif and jpg
images in an html Web page using the <IMG>
tag
• Format: <IMG src=URL, alt=text
height=pixels width=pixels
align="bottom|middle|top">
• Plea: Don’t use images just for the sake of it!
4. 4
Images in JavaScript
• Images in JavaScript can be manipulated in
many ways using the built-in object, Image
• Properties: name, border, complete, height,
width, hspace, vspace, lowsrc, src
• Methods: None
• Event handlers: onAbort, onError, onLoad, etc.
5. 5
Image Preloading
• The primary use for an Image object is to
download an image into the cache before it is
actually needed for display
• This technique can be used to create smooth
animations or to display one of several images
based on the requirement
6. 6
The Image Pre-Loading Process
1. An instance of the Image object is created
using the new keyword
2. The src property of this instance is set equal to
the filename of the image to be pre-loaded
3. That step starts the down-loading of the image
into the cache without actually displaying it
4. When a pre-loaded image is required to be
displayed, the src property of the displayed
image is set to the src property of the pre-
fetched image
7. 7
Animated Gifs
• We could have saved the 16 gif images of the
previous example in a single file in the form of
an animated gif, and then used it in a regular
<IMG> tag to display a moving image
• However, JavaScript provides better control
over the sequencing and the gap between the
individual images
• Example
8. 8
Today’s Goals
(Programming Methodology)
• To understand effective programming practices
that result in the development of correct
programs with minimum effort
• To become familiar with testing & debugging
13. 13
swapFlag = true ;
while ( swapFlag == true ) {
swapFlag = false ;
for ( k = 0 ; k < ht.length - 1 ; k++ ) {
if ( ht[ k ] < ht[ k + 1 ] ) {
temp = ht[ k + 1 ] ;
ht[ k + 1 ] = ht[ k ] ;
ht[ k ] = temp ;
swapFlag = true ;
}
}
}
How can we make it more readable?
What is its most complex aspect?
Bubble
Sort
14. 14
for ( j = 0 ; j < 100000 ; j++ ) {
for ( k = 0 ; k < ht.length - 1 ; k++ ) {
if ( ht[ k ] < ht[ k + 1 ] ) {
temp = ht[ k + 1 ] ;
ht[ k + 1 ] = ht[ k ] ;
ht[ k ] = temp ;
}
}
}
17. 17
Design Guidelines
• Break your code down into short and simple
functions (e.g. take the 3 swap statements out
from the last example and put them into a
function of their own)
• Do not use global variables
18. 18
Coding Guidelines
• Always use semicolons to end statements
• Indent blocks of code (2 to 5 spaces)
• Identifiers:
– Use the camelBack scheme
– Make them descriptive but concise
– Variables: nouns
– Functions: verbs
• Comment liberally
20. 20
Guidelines for Developing Short Programs
1. Read, understand
the problem
2. Do you have all the
required data?
No: Get it
Else assume it.
State it explicitly
21. 21
Example: Problem Statement
• Develop a Web page that displays an order
taking form
• It takes the number of items required for each
product, multiplies with the prices, sums them
up, adds the GST, and displays the total value
of the order
22. 22
Guidelines for Developing Short Programs
1. Read, understand
the problem
2. Do you have all the
required data?
No: Get it
Else assume it.
State it explicitly
3. Do the design
24. 24
Developing Short Programs
1. Read, understand
the problem
2. Do you have all the
required data?
No: Get it
Else assume it.
State it explicitly
3. Do the design
4. Write test cases
26. 26
Developing Short Programs
1. Read, understand
the problem
2. Do you have all the
required data?
No: Get it
Else assume it.
State it explicitly
3. Do the design
4. Write test cases
5. Write the code on a
piece of paper
6. Hand-check it
7. Type it in
8. Run & check it on
test cases
9. Errors? fix & redo 9
Done!
27. 27
Design & Code Reviews
• Probably the most efficient way of improving
the a program
• Being humans, at time we see what is
supposed to be there instead of what is actually
there
• Another pair of eyeballs may not have the
same problem, especially if they were not
involved in building the design or code
28. 28
Two Popular Review Methods
1. Give the problem statement, design, and code
(that includes all assumptions) to a peer, and
ask him/her to see if things have been done
properly
2. Walk a peer or a group of peers through the
problem, the design, and the code yourself
Which of the two is better?
30. 30
Is it even advisable
to attempt writing
programs that are
free of defects?
31. 31
Testing & Debugging
• Testing: The tasks performed to determine the
existence of defects
• Debugging: The tasks performed to detect the
exact location of defects
• Defects are also called bugs or errors
• Let us now look at one of their classifications
33. Syntax Errors
• They are caused by the code that somehow
violates the rules of the language
• Easy to detect and fix errors
• The browser stops code interpretation on
detecting one of these
• Examples:
– a = b + * c ;
– receiver = reciever + 2
Syntax
error?
34. 34
Semantic Errors
• Occur when a statement executes and has an
effect not intended by the programmer
• Hard to detect during normal testing
• Often times occur only in unusual & infrequent
circumstances
• The ‘+’ operator often results in unintended
consequences. Remedy: Convert, before use
35. 35
Run-Time Errors
• Occur when the program is running and tries to
do something that is against the rules
• Example: Accessing a non-existent variable,
property, method, object, etc (e.g. a method
name is misspelled)
• Sources of these can be determined by a
careful reading of the code, but unfortunately,
not always!
49. 49
Helpful Editors
• Using smart editors (e.g. DreamWeaver, nedit)
can help in avoiding many types of syntax
errors
• They can, for example:
– Automatically color different parts of statements in
different colors, e.g. comments in Gray, strings in
Green, HTML tags in Blue
– Auto indent
– Visually indicate the presence of mismatched
parentheses, curly braces or square brackets
50. 50
During Today’s Lecture …
• We looked at a few effective programming
practices that result in the development of
correct programs with minimum effort
• We also became familiar with testing &
debugging
51. 51
Final Lecture:
Review & Wrap-Up
• To review a selection from the interesting ideas
that we explored over the last 44 lectures