“An investment in knowledge always pays the best interest.” – Benjamin Franklin. Here is a list of 10 books that I believe that every developer should read. Take a look.
Ganesh Thutte has 4 months of experience as a junior software tester. He has expertise in manual testing and writing test cases. He has tested projects in Windows XP, 7, 8, and 10 environments. His work experience includes testing automatic presentation slide generation and model-based testing projects. Academically, he completed a BE in IT with honors and projects in networking security and HR software testing. He aims to enhance his skills through training and continues to develop personally and professionally.
1) Async and non-blocking mean different things, with async referring to APIs and non-blocking referring to implementations.
2) Async APIs can be implemented with blocking calls, while non-blocking calls cannot have synchronous APIs.
3) Blocking I/O is contagious, so an ExecutionContext helps quarantine it, and separate contexts should be used for blocking and non-blocking I/O.
The document summarizes a presentation about neural machine translation and the Joey NMT toolkit. It introduces neural machine translation using transformer models and the importance of large amounts of training data. It then describes the Joey NMT toolkit, which aims to provide a clean, minimalist and documented interface for neural machine translation that runs on CPU and GPU. The presentation demonstrates Joey NMT and discusses how communities are using it for research on low-resource languages.
This document discusses techniques for fine-tuning large pre-trained language models without access to a supercomputer. It describes the history of transformer models and how transfer learning works. It then outlines several techniques for reducing memory usage during fine-tuning, including reducing batch size, gradient accumulation, gradient checkpointing, mixed precision training, and distributed data parallelism approaches like ZeRO and pipelined parallelism. Resources for implementing these techniques are also provided.
The document discusses several lessons learned about machine learning including:
1) Sometimes more data is not needed and better models can be achieved through feature engineering and appropriate hyperparameters.
2) Models will learn what they are taught through the training data, so training data needs to be thoughtful and free of biases.
3) A combination of supervised and unsupervised learning along with ensemble methods often provides the best results rather than relying on any single approach.
Open source ml systems that need to be builtNikhil Garg
ML Systems that could be broadly useful to a lot of people but don't exist in the open-source community just yet. These are based on my experience of leading Quora's ML Platform team.
This document summarizes the key aspects of a neural machine translation model using sequence-to-sequence with attention. It describes the encoder-decoder architecture using stacked LSTMs, dot product attention, and how the model is trained on WMT'14 English-German data and evaluated on Newstest2013 data. It also provides information on the tokenizer, dataset creation, model configuration, and training utilities.
The Netflix experience is driven by a number of Machine Learning algorithms: personalized ranking, page generation, search, similarity, ratings, etc. On the 6th of January, we simultaneously launched Netflix in 130 new countries around the world, which brings the total to over 190 countries. Preparing for such a rapid expansion while ensuring each algorithm was ready to work seamlessly created new challenges for our recommendation and search teams. In this post, we highlight the four most interesting challenges we’ve encountered in making our algorithms operate globally and, most importantly, how this improved our ability to connect members worldwide with stories they'll love.
The document summarizes Lynn Cherny's work setting up a data science program at emlyon business school. It discusses the courses taught in the first year of the program and plans for the next year. It also describes a student project analyzing job postings using skills extracted from text with word embeddings to identify gaps between teaching and job requirements. Ideas are proposed for improving the curriculum and student job searches.
Presentation slides at RecSys 2016, Boston. At Quora, our mission is to share and grow the world’s knowledge. Recommender systems are at the core of this mission: we need to recommend the most important questions to people most likely to write great answers, and recommend the best answers to people interested in reading them. Driven by the above mission statement, we have a variety of interesting and challenging recommendation problems and a large, rich data set that we can work with to build novel solutions for them. In this talk, we will describe several of these recommendation problems and present our approaches solving them.
A gentle introduction to algorithm complexity analysisLewis Lin 🦊
This document introduces algorithm complexity analysis and "Big O" notation. It aims to help programmers and students understand this theoretical computer science topic in a practical way. The document motivates algorithm complexity analysis by explaining how it allows formal comparison of algorithms' speed independently of implementation details. It then provides an example analysis of finding the maximum value in an array to illustrate counting the number of basic instructions an algorithm requires.
Model Drift Monitoring using Tensorflow Model AnalysisVivek Raja P S
This document discusses model drift monitoring using TensorFlow Model Analysis (TFMA). It begins with an introduction to the presenter and an overview of monitoring machine learning models in production. It then defines model drift as changes in the statistical structure of data over time which can degrade a model's performance. The production point of view for model monitoring is discussed as defining thresholds, detecting violations, and safeguarding systems. TFMA is introduced as a library for evaluating models on large datasets in a distributed manner and comparing metrics over time and across data slices for monitoring model quality and performance. The presentation concludes with a code demo and Q&A.
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016MLconf
mlpack: Or, How I Learned To Stop Worrying and Love C++: mlpack is a cutting-edge C++ machine learning library containing fast implementations of both standard machine learning algorithms and recently-published algorithms. In this talk, I will introduce mlpack, its design philosophy, and discuss how C++ is helpful for making implementations fast, as well as the pros and cons of C++ as a language choice. I will briefly review the capabilities of mlpack, then focus on mlpack’s flexibility by demonstrating the k-means clustering code (and maybe some other algorithms too, like nearest neighbor search), and how it might be used in a production environment. The project website can be found at http://www.mlpack.org/.
Lessons Learned from Building Machine Learning Software at NetflixJustin Basilico
Talk from Software Engineering for Machine Learning Workshop (SW4ML) at the Neural Information Processing Systems (NIPS) 2014 conference in Montreal, Canada on 2014-12-13.
Abstract:
Building a real system that incorporates machine learning as a part can be a difficult effort, both in terms of the algorithmic and engineering challenges involved. In this talk I will focus on the engineering side and discuss some of the practical issues we’ve encountered in developing real machine learning systems at Netflix and some of the lessons we’ve learned over time. I will describe our approach for building machine learning systems and how it comes from a desire to balance many different, and sometimes conflicting, requirements such as handling large volumes of data, choosing and adapting good algorithms, keeping recommendations fresh and accurate, remaining responsive to user actions, and also being flexible to accommodate research and experimentation. I will focus on what it takes to put machine learning into a real system that works in a feedback loop with our users and how that imposes different requirements and a different focus than doing machine learning only within a lab environment. I will address the particular software engineering challenges that we’ve faced in running our algorithms at scale in the cloud. I will also mention some simple design patterns that we’ve fond to be useful across a wide variety of machine-learned systems.
Building A Machine Learning Platform At Quora (1)Nikhil Garg
Nikhil Garg outlines 7 reasons why Quora chose to build their own machine learning platform rather than buy an existing one. He explains that no commercial platform can provide all the capabilities they need, including building end-to-end online production systems, integrating ML experimentation and production, openly using open source algorithms, addressing Quora's specific business needs, and ensuring ML is central to Quora's strategic focus and competitive advantage. He concludes that any company doing serious ML work needs to build an internal platform to sustain innovation at scale.
This document provides an introduction to machine learning. It begins by defining machine learning according to several experts as computational steps that can produce the best answer when applied iteratively to large data sets without being explicitly programmed. It distinguishes machine learning, deep learning, artificial intelligence, and discusses their relationships with data science and big data. The document outlines different types of machine learning including supervised, unsupervised, regression, and classification. It also discusses implementing machine learning solutions, neural networks, and provides suggestions for further research.
The document provides an overview of the Go programming language including its guiding principles, syntax, concurrency model, and examples of usage. It discusses that Go was created at Google in 2007 to have better support for concurrency and scalability compared to other languages. It emphasizes simplicity, readability, and minimalism in design. Go uses goroutines and channels for concurrency where goroutines are lightweight threads and channels allow goroutines to communicate without shared memory. Examples demonstrate basic syntax, goroutines, and using channels for patterns like ping-pong.
Robust and declarative machine learning pipelines for predictive buying at Ba...Gianmario Spacagna
Proof of concept of how to use Scala, Spark and the recent library Sparkz for building production quality machine learning pipelines for predicting buyers of financial products.
The pipelines are implemented through custom declarative APIs that gives us greater control, transparency and testability of the whole process.
The example followed the validation and evaluation principles as defined in The Data Science Manifesto available in beta at www.datasciencemanifesto.org
SDL introduces two groundbreaking TM and MT technologies: 1) upLIFT leverages segment fragments from TM in new ways, and 2) AdaptiveMT self-learns in real time from translators’ output, based on each post-edit sent back to the engine. Carla Schelfhout (SDL)
The document provides an overview of several common programming paradigms, including imperative, functional, logic, object-oriented, and concurrent/distributed programming. For each paradigm, it gives a brief 1-2 sentence description of its characteristics. Imperative programming is described as evolving from machine and assembly language and focusing on non-programming contexts. Functional programming is defined as expression-oriented and close to mathematical specifications. Logic programming is summarized as using logical statements to describe required solution properties. Object-oriented programming views data as objects and has programmers define data types and operations. Concurrent and distributed programming allows for multiple simultaneous operations.
Is that a Time Machine? Some Design Patterns for Real World Machine Learning ...Justin Basilico
Talk from ICML 2016 workshop on Machine Learning Systems about some design patterns we use at Netflix for building machine learning systems. In particular, focusing on avoiding problems that can come up with differences between offline (experimental/lab) and online (live/production) code and data.
This document provides tips for winning data science competitions by summarizing a presentation about strategies and techniques. It discusses the structure of competitions, sources of competitive advantage like feature engineering and the right tools, and validation approaches. It also summarizes three case studies where the speaker applied these lessons, including encoding categorical variables and building diverse blended models. The key lessons are to focus on proper validation, leverage domain knowledge through features, and apply what is learned to real-world problems.
Sherlock is an NLP transfer learning platform that allows users to easily create text classifiers using small datasets. It provides APIs to train models using BERT pre-trained language models and to label datasets with the trained models. The platform addresses common issues in deploying models in production using Docker, TensorFlow, and GPUs. It demonstrates that models using BERT can achieve high accuracy even with small training datasets of 500 samples or less.
Learn why successful leaders are keeping a journal. See the direct benefits of journaling and how it can improve your life.
BONUS: Download this free Journaling Template:
https://lifeboarding.co/bonus-journaling
If you liked this presentation you can download it here:
https://lifeboarding.co/presentation-download-journaling
Energiaa, uusia innovaatioita, rohkeutta uudistua... Dreamforce to You -tapahtuma kokosi Helsinkiin yli 750 asiakasta ja yhteistyökumppania 3.11.2016. Tapahtuman jaettavat esitysmateriaalit koottuna.
This document summarizes the key aspects of a neural machine translation model using sequence-to-sequence with attention. It describes the encoder-decoder architecture using stacked LSTMs, dot product attention, and how the model is trained on WMT'14 English-German data and evaluated on Newstest2013 data. It also provides information on the tokenizer, dataset creation, model configuration, and training utilities.
The Netflix experience is driven by a number of Machine Learning algorithms: personalized ranking, page generation, search, similarity, ratings, etc. On the 6th of January, we simultaneously launched Netflix in 130 new countries around the world, which brings the total to over 190 countries. Preparing for such a rapid expansion while ensuring each algorithm was ready to work seamlessly created new challenges for our recommendation and search teams. In this post, we highlight the four most interesting challenges we’ve encountered in making our algorithms operate globally and, most importantly, how this improved our ability to connect members worldwide with stories they'll love.
The document summarizes Lynn Cherny's work setting up a data science program at emlyon business school. It discusses the courses taught in the first year of the program and plans for the next year. It also describes a student project analyzing job postings using skills extracted from text with word embeddings to identify gaps between teaching and job requirements. Ideas are proposed for improving the curriculum and student job searches.
Presentation slides at RecSys 2016, Boston. At Quora, our mission is to share and grow the world’s knowledge. Recommender systems are at the core of this mission: we need to recommend the most important questions to people most likely to write great answers, and recommend the best answers to people interested in reading them. Driven by the above mission statement, we have a variety of interesting and challenging recommendation problems and a large, rich data set that we can work with to build novel solutions for them. In this talk, we will describe several of these recommendation problems and present our approaches solving them.
A gentle introduction to algorithm complexity analysisLewis Lin 🦊
This document introduces algorithm complexity analysis and "Big O" notation. It aims to help programmers and students understand this theoretical computer science topic in a practical way. The document motivates algorithm complexity analysis by explaining how it allows formal comparison of algorithms' speed independently of implementation details. It then provides an example analysis of finding the maximum value in an array to illustrate counting the number of basic instructions an algorithm requires.
Model Drift Monitoring using Tensorflow Model AnalysisVivek Raja P S
This document discusses model drift monitoring using TensorFlow Model Analysis (TFMA). It begins with an introduction to the presenter and an overview of monitoring machine learning models in production. It then defines model drift as changes in the statistical structure of data over time which can degrade a model's performance. The production point of view for model monitoring is discussed as defining thresholds, detecting violations, and safeguarding systems. TFMA is introduced as a library for evaluating models on large datasets in a distributed manner and comparing metrics over time and across data slices for monitoring model quality and performance. The presentation concludes with a code demo and Q&A.
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016MLconf
mlpack: Or, How I Learned To Stop Worrying and Love C++: mlpack is a cutting-edge C++ machine learning library containing fast implementations of both standard machine learning algorithms and recently-published algorithms. In this talk, I will introduce mlpack, its design philosophy, and discuss how C++ is helpful for making implementations fast, as well as the pros and cons of C++ as a language choice. I will briefly review the capabilities of mlpack, then focus on mlpack’s flexibility by demonstrating the k-means clustering code (and maybe some other algorithms too, like nearest neighbor search), and how it might be used in a production environment. The project website can be found at http://www.mlpack.org/.
Lessons Learned from Building Machine Learning Software at NetflixJustin Basilico
Talk from Software Engineering for Machine Learning Workshop (SW4ML) at the Neural Information Processing Systems (NIPS) 2014 conference in Montreal, Canada on 2014-12-13.
Abstract:
Building a real system that incorporates machine learning as a part can be a difficult effort, both in terms of the algorithmic and engineering challenges involved. In this talk I will focus on the engineering side and discuss some of the practical issues we’ve encountered in developing real machine learning systems at Netflix and some of the lessons we’ve learned over time. I will describe our approach for building machine learning systems and how it comes from a desire to balance many different, and sometimes conflicting, requirements such as handling large volumes of data, choosing and adapting good algorithms, keeping recommendations fresh and accurate, remaining responsive to user actions, and also being flexible to accommodate research and experimentation. I will focus on what it takes to put machine learning into a real system that works in a feedback loop with our users and how that imposes different requirements and a different focus than doing machine learning only within a lab environment. I will address the particular software engineering challenges that we’ve faced in running our algorithms at scale in the cloud. I will also mention some simple design patterns that we’ve fond to be useful across a wide variety of machine-learned systems.
Building A Machine Learning Platform At Quora (1)Nikhil Garg
Nikhil Garg outlines 7 reasons why Quora chose to build their own machine learning platform rather than buy an existing one. He explains that no commercial platform can provide all the capabilities they need, including building end-to-end online production systems, integrating ML experimentation and production, openly using open source algorithms, addressing Quora's specific business needs, and ensuring ML is central to Quora's strategic focus and competitive advantage. He concludes that any company doing serious ML work needs to build an internal platform to sustain innovation at scale.
This document provides an introduction to machine learning. It begins by defining machine learning according to several experts as computational steps that can produce the best answer when applied iteratively to large data sets without being explicitly programmed. It distinguishes machine learning, deep learning, artificial intelligence, and discusses their relationships with data science and big data. The document outlines different types of machine learning including supervised, unsupervised, regression, and classification. It also discusses implementing machine learning solutions, neural networks, and provides suggestions for further research.
The document provides an overview of the Go programming language including its guiding principles, syntax, concurrency model, and examples of usage. It discusses that Go was created at Google in 2007 to have better support for concurrency and scalability compared to other languages. It emphasizes simplicity, readability, and minimalism in design. Go uses goroutines and channels for concurrency where goroutines are lightweight threads and channels allow goroutines to communicate without shared memory. Examples demonstrate basic syntax, goroutines, and using channels for patterns like ping-pong.
Robust and declarative machine learning pipelines for predictive buying at Ba...Gianmario Spacagna
Proof of concept of how to use Scala, Spark and the recent library Sparkz for building production quality machine learning pipelines for predicting buyers of financial products.
The pipelines are implemented through custom declarative APIs that gives us greater control, transparency and testability of the whole process.
The example followed the validation and evaluation principles as defined in The Data Science Manifesto available in beta at www.datasciencemanifesto.org
SDL introduces two groundbreaking TM and MT technologies: 1) upLIFT leverages segment fragments from TM in new ways, and 2) AdaptiveMT self-learns in real time from translators’ output, based on each post-edit sent back to the engine. Carla Schelfhout (SDL)
The document provides an overview of several common programming paradigms, including imperative, functional, logic, object-oriented, and concurrent/distributed programming. For each paradigm, it gives a brief 1-2 sentence description of its characteristics. Imperative programming is described as evolving from machine and assembly language and focusing on non-programming contexts. Functional programming is defined as expression-oriented and close to mathematical specifications. Logic programming is summarized as using logical statements to describe required solution properties. Object-oriented programming views data as objects and has programmers define data types and operations. Concurrent and distributed programming allows for multiple simultaneous operations.
Is that a Time Machine? Some Design Patterns for Real World Machine Learning ...Justin Basilico
Talk from ICML 2016 workshop on Machine Learning Systems about some design patterns we use at Netflix for building machine learning systems. In particular, focusing on avoiding problems that can come up with differences between offline (experimental/lab) and online (live/production) code and data.
This document provides tips for winning data science competitions by summarizing a presentation about strategies and techniques. It discusses the structure of competitions, sources of competitive advantage like feature engineering and the right tools, and validation approaches. It also summarizes three case studies where the speaker applied these lessons, including encoding categorical variables and building diverse blended models. The key lessons are to focus on proper validation, leverage domain knowledge through features, and apply what is learned to real-world problems.
Sherlock is an NLP transfer learning platform that allows users to easily create text classifiers using small datasets. It provides APIs to train models using BERT pre-trained language models and to label datasets with the trained models. The platform addresses common issues in deploying models in production using Docker, TensorFlow, and GPUs. It demonstrates that models using BERT can achieve high accuracy even with small training datasets of 500 samples or less.
Learn why successful leaders are keeping a journal. See the direct benefits of journaling and how it can improve your life.
BONUS: Download this free Journaling Template:
https://lifeboarding.co/bonus-journaling
If you liked this presentation you can download it here:
https://lifeboarding.co/presentation-download-journaling
Energiaa, uusia innovaatioita, rohkeutta uudistua... Dreamforce to You -tapahtuma kokosi Helsinkiin yli 750 asiakasta ja yhteistyökumppania 3.11.2016. Tapahtuman jaettavat esitysmateriaalit koottuna.
This document discusses 20 brands that are using data creatively. It identifies 6 ways that brands can use data creatively: 1) data-driven insights, 2) data-driven messages, 3) data-driven services, 4) data-driven targeting, 5) data-driven planning, and 6) data-driven creation. For each category, there are case studies of brands that demonstrate creative uses of data in their marketing and campaigns. The document was created by the strategic planning team at DigitasLBi Paris to show how data can be used in creative ways beyond just analytics and targeting.
5 Steps for Building an Ideal Company culture (and what to watch out for!)Qualtrics
According to a Columbia University study, job turnover at an organization with rich company culture is 13.9 percent, compared to 48.4 percent at companies with poor culture. So what makes a rich company culture? And how can you build one that works with your core values?
Key Learnings
How to decide what your culture will focus on
Building your culture with your employees
Communicating your culture so it sticks
How to build culture with remote workers
Working with toxic employees
Join Qualtrics and BambooHR as we share our 5 steps to build an ideal culture.
I delivered a TEDx speech, sharing the phonegraphy stories. In past 1001 days, I took a photo via my phone everyday, and I will keep doing this for next 10k days...Everyday there must be at least one moment that is worthy of remember....
My stroke of insight Tedx talk by jill taylorSameer Mathur
Jill Bolte Taylor is a neuroanatomist who experienced a massive stroke at age 37, which damaged the left side of her brain. Over the course of four hours, she watched as her brain deteriorated and lost its ability to process information. It took eight years to fully recover. As a rare case of being able to study her own brain and recovery, she gained valuable insight into the organ. Her experience of losing functions like walking and talking, but gaining an appreciation of life, inspired her work helping others.
The document summarizes new features for Salesforce Sales Cloud, Service Cloud, Marketing Cloud, Community Cloud, and Lightning platform. Key features include predictive lead scoring, Kanban views for records, Lightning Voice, enhanced charts in Salesforce1, and custom left-hand navigation in Sales Cloud. For Service Cloud, features involve Lightning Open CTI, personalized service through Instagram, and Field Service Lightning for Communities. Marketing Cloud highlights include predictive journeys, email capabilities, and Command Center dashboards. Community Cloud and Lightning platform improvements focus on moderation, themes, dashboards, and customization options.
This document discusses how body language and physical posture can influence a person's mindset, hormones, and performance. It notes that high-power poses where individuals expand their physical size are associated with increased testosterone and decreased cortisol in humans and other primates, influencing feelings of confidence and dominance. The document describes an experiment where participants who adopted high-power poses before a stressful job interview experienced these hormonal effects and were perceived as more competent by independent observers compared to those who used low-power poses. It recommends adopting power poses for 2 minutes daily to benefit from these psychological and physiological impacts.
Will the 9th U.N. secretary-general be a woman?Devex
In its 70 years of existence, the U.N. has never been led by a woman. But in 2016, as current Secretary-General Ban Ki-moon enters his last year in office, there’s clamor for change. Here are seven women to consider for secretary-general.
Ideas for Delivering Exceptional Customer Experiences. C-suite executives think four technologies will be
particularly important for marketing success in the near term: cloud computing and services, mobile solutions, the Internet of Things and cognitive computing.
This document discusses living documentation, which aims to keep documentation up-to-date by storing it alongside the code or system it documents. Key principles of living documentation include keeping it reliable, low-effort to maintain, collaborative, and insightful. Examples given include self-documenting code through naming conventions and comments, as well as automatically generating documentation from code. The goal is to make documentation maintenance fun and simple so it is sustained over time as a project evolves.
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
1. Agile development and Extreme Programming (XP) are methodologies that focus on iterative development, collaboration, and adaptability.
2. XP consists of 12 key practices including simple design, test-driven development, pair programming, and small releases. It aims to improve quality, reduce risks, and adapt to changing requirements.
3. While XP works well for some projects and teams, its practices may not be suitable or flexible enough for all situations. Developers should understand the principles behind XP and tailor practices as needed for their specific projects.
This presentation is an introduction to the field of technical writing based on my personal journey and philosophy of documentation, and was presented to the first meeting of Write The Docs Nigeria on February 20, 2021.
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
The document discusses Agile development and Extreme Programming (XP). It provides an overview of 12 key practices of XP, including planning games, small releases, test-driven development, pair programming, collective ownership, continuous integration and 40-hour work weeks. It also discusses how XP aims to solve software engineering problems through intensive teamwork, handling changes and staff turnover, and involving customers.
The document discusses growth and development. In a concise yet informative manner, it touches on the natural process of expanding and increasing in size over time through nourishment and care. While brief, it implies the importance of fostering growth through proper support and conditions.
Exploring the Real Power of Functional ProgrammingKnoldus Inc.
Functional Programming is getting a lot of attention nowadays. Even every mainstream language is now supporting functional style i.e Java, C++, C# etc. Basically, it is one of the paradigms of writing code where we write less code and do more.
This document provides an overview of the key concepts in Scrum, including roles, events, artifacts, backlogs, user stories, estimation techniques, and tools. It describes the product owner, scrum master, and development team roles. It outlines the sprint planning, daily scrum, sprint review, and retrospective events. It also discusses product backlogs, sprint backlogs, and increments as artifacts in Scrum.
You are a bad PHP programmer if you:
1) Don't plan before coding and fail to outline applications or comment code.
2) Sacrifice clarity through unclear naming and omitting syntax like curly braces.
3) Don't follow coding standards which leads to inconsistencies that are hard for others to understand.
4) Duplicate code without refactoring for reuse, violating the DRY principle.
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsRehgan Avon
2018 Women in Analytics Conference
https://www.womeninanalytics.org/
Data analysts create millions of lines of elegant, powerful code every year. However, because software development is not seen as their primary role, best practices of software engineering often fall to the wayside. Many data analysts are self-taught programmers who haven’t been exposed to tools like version control software, unit testing suites, and System Development Life Cycle (SDLC) processes. Popular software engineering concepts such as Don’t Repeat Yourself (DRY), design patterns, and modularization can vastly improve the quality and efficiency of analytics projects. This talk will provide a high-level introduction to these topics, and will focus on providing resources for additional learning.
Дмитро Бузоверя
Директор Cloud Computing департаменту в компанії AMC Bridge
Agile підхід до управління проектами існує вже більше 15 років, він досі є об’єктом багатьох дискусій та вважається інноваційним у деяких областях.
Дмитро Бузоверя, зробить огляд методології Agile у розробці програмного забезпечення. Він розкаже про історію Agile, його принципи та більш детально зупиниться на різних методиках: Extreme Programming (XP), Scrum, Lean та Kanban.
Ця лекція допоможе зібрати пазл з Agile термінології в єдину картинку.
This document provides an introduction to DevOps concepts for beginners. It recommends starting with source code version control using GitHub (Step 1). It emphasizes the need for change, learning new skills, and having an open mind (Step 2). Automating tasks is key to reduce human effort (Step 3). Fundamental concepts include version control, continuous integration, configuration management, monitoring and release management (Step 4). The document assigns building a basic CI/CD pipeline using GitHub, Travis CI, Ansible and Nexus as a learning project. It encourages learners to document their understanding and identify areas for improvement and further automation.
Picking the right architecture and sticking to itPetter Holmström
The document provides guidance on choosing an architecture for a project, sticking to it, and evolving it over time. It emphasizes doing research upfront on project scope, requirements, and potential risks. The initial design should consider experimenting with new approaches but also prototyping risky features. Future changes should be considered but not overdesigned for. The architecture must be documented and explained to the team. Tests and code reviews help ensure the architecture is followed. While 90% of features can be implemented as designed, the architecture must be flexible to handle unexpected changes through open communication and potential compromises.
This document provides guidance for high school and college students on learning to code. It discusses the benefits of coding skills, different types of coding careers, and what coding and software development entail. It then covers considerations for choosing a first programming language, including options for learning functional programming first or starting with Python. The document predicts that Rust will be in high demand in the coming years for developing embedded systems and web applications due to its safety and growing adoption. It recommends students learn foundational concepts in a beginner-friendly language before potentially specializing in Rust.
This document discusses common coding practices and tools, including GNU autotools and design patterns. It provides tutorials on how to use autotools, including running autogen.sh and configure scripts. It also covers the strategy design pattern, explaining how it abstracts algorithms, encapsulates dependencies, and allows new algorithms to be easily added. The strategy pattern is demonstrated with a diagram and code example. Benefits of the strategy pattern include flexibility and minimizing dependencies between classes. The document concludes with a brief mention of advantages in C++14 compared to older versions.
Extreme Programming - to the next-levelLars Thorup
This document discusses taking extreme programming principles to the next level by turning traditional practices "up to 11". It explores several ideas for achieving faster feedback including mob programming, continuous deployment, hypothesis-driven user stories, shared product ownership, monitoring-driven development, and continuous learning. The author asks the reader to consider which ideas may work to implement in their organization this month.
Programming languages and concepts by vivek pariharVivek Parihar
This presentation is concerned with the study of programming language paradigms, that is the various systems of ideas that have been used to guide the design of programming languages. These paradigms are realized to a greater or lesser extent in various computer languages, although the design of a given language may reflect the influence of more than one paradigm.
The document provides an overview of various sea life found underwater, including creatures with fins and tails that feed on seaweed or prey, colorful coral reefs and plants on the ocean floor, sea turtles that lay eggs on beaches, schools of fish that swim together, colorful but sometimes poisonous fish like lionfish, giant whales larger than ships, pink krill that swarm in great numbers, glow in the dark plankton and fish, and sea horses where males give birth to about 150 babies that emerge from their stomachs. The concluding message is that the ocean is vast and should be protected from pollution to celebrate its freedom.
Hi, I am Tanmaye (3rd Grade) and this is my first animals presentation. Here is the youtube link: https://youtu.be/VjdzQpZfXyw
Technical debt refers to design decisions that are suboptimal or incorrect, accruing debt that must be paid back later. It includes code debt from violations of coding standards and design debt from design smells or violations of architecture rules. Refactoring is restructuring code without changing behavior to improve design quality and make future changes easier. A variety of tools can help explore code structure and detect technical debt to prioritize refactoring.
Please check out the workshop "AI meets Blockchain" at HIPC 2018, in Bangalore: http://hipc.org/ai-blockchain/
HIPC is a premier conference and hence getting a paper accepted in HIPC workshop would be quite an accomplishment for any blockchain/AI enthusiast. Check out the details in this poster on submissions.
I have been fortunate to have worked with some geeks with incredible coding skills. I felt amazed at how they can play games with compilers, perform magic with their incantations on the shell, and solve some insanely complex algorithm problems with ease. I naively assumed that they are going to achieve greatness in near future. Alas, I was wrong. Really wrong. [Read the rest of the article ... ]
Many students reach out to me asking for project ideas they can do as a summer project for learning. Here is an interesting project idea - implement your own java disassembler (and expand it to a VM later).
The document discusses various techniques for writing clean code, including formatting code consistently, using meaningful names, writing comments to explain intent, keeping functions focused on single tasks, limiting class and method complexity, and avoiding hardcoded values. It emphasizes habits like adhering to coding standards as a team and writing unit tests. Specific techniques mentioned include consistent formatting, searchable names, avoiding comments as a crutch, limiting function parameters and nesting depth, and preferring classes with cohesive responsibilities. The document recommends several coding standards and style guides.
Design Patterns - Compiler Case Study - Hands-on ExamplesGanesh Samarthyam
This presentation takes a case-study based approach to design patterns. A purposefully simplified example of expression trees is used to explain how different design patterns can be used in practice. Examples are in C#, but is relevant for anyone who is from object oriented background.
This presentation provides an overview of recently concluded Bangalore Container Conference (07-April-2017). See www.containerconf.in for more details.
Bangalore Container Conference 2017 (BCC '17) is the first conference on container technologies in India happening on 07th April. Organizations are increasingly adopting containers and related technologies in production.Hence, the main focus of this conference is “Containers in Production”. This one-day conference sets the perfect stage for container enthusiasts, developers, users and experts to meet together and learn from each others experiences.
Presented in Bangalore Open Java User Group on 21st Jan 2017
Awareness of design smells - Design comes before code. A care at design level can solve lot of problems.
Indicators of common design problems - helps developers or software engineers understand mistakes made while designing and apply design principles for creating high-quality designs. This presentation provides insights gained from performing refactoring in real-world projects to improve refactoring and reduce the time and costs of managing software projects. The talk also presents insightful anecdotes and case studies drawn from the trenches of real-world projects. By attending this talk, you will know pragmatic techniques for refactoring design smells to manage technical debt and to create and maintain high-quality software in practice. All the examples in this talk are in Java.
Bangalore Container Conference 2017 (BCC '17) is the first conference on container technologies in India. Organizations are increasingly adopting containers and related technologies in production. Hence, the main focus of this conference is “Containers in Production”. This one-day conference sets the perfect stage for container enthusiasts, developers, users and experts to meet together and learn from each others experiences.
Let's Go: Introduction to Google's Go Programming LanguageGanesh Samarthyam
This document introduces the Go programming language, which was announced by Google in 2009. It summarizes Go's key features, including being a concurrent, garbage-collected systems programming language. It also provides instructions on installing Go and a simple "Hello World" program example. The document highlights some of Go's novel features like interfaces and goroutines and concludes that Go shows promise as a useful systems language.
This document contains 5 quiz questions about Java generics with the corresponding answers. It was created by Ganesh Samarthyam from CodeOps to test knowledge of Java generics. Additional contact information for Ganesh and CodeOps is provided at the bottom, including email, social media profiles, phone number and website links.
This document provides an overview of Java generics through examples. It begins with simple examples demonstrating how generics can be used to define container classes (BoxPrinter) and pair classes (Pair). It discusses benefits like type safety and avoiding duplication. Further examples show generics with methods and limitations like erasure. Wildcard types are presented as a way to address subtyping issues. In general, generics provide flexibility in coding but their syntax can sometimes be complex to read.
The document describes an application with a pipe-and-filter architecture pattern where sensor data flows through multiple components that each transform the data before passing it to the next component and finally to a modeling and visualization unit. It then asks questions about software architecture patterns and styles like pipe-and-filter, lambda architecture, decorator pattern, Conway's law, architecture drift, REST, event sourcing, and recommends architecture refactoring when dependency analysis finds numerous cycles and tangles.
This presentation covers quiz questions prepared for the Core Java meetup on 1st October in Accion Labs. It has questions from "Java best practices", "bytecodes", and "elastic search".
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Eric D. Schabell
It's time you stopped letting your telemetry data pressure your budgets and get in the way of solving issues with agility! No more I say! Take back control of your telemetry data as we guide you through the open source project Fluent Bit. Learn how to manage your telemetry data from source to destination using the pipeline phases covering collection, parsing, aggregation, transformation, and forwarding from any source to any destination. Buckle up for a fun ride as you learn by exploring how telemetry pipelines work, how to set up your first pipeline, and exploring several common use cases that Fluent Bit helps solve. All this backed by a self-paced, hands-on workshop that attendees can pursue at home after this session (https://o11y-workshops.gitlab.io/workshop-fluentbit).
Get & Download Wondershare Filmora Crack Latest [2025]saniaaftab72555
Copy & Past Link 👉👉
https://dr-up-community.info/
Wondershare Filmora is a video editing software and app designed for both beginners and experienced users. It's known for its user-friendly interface, drag-and-drop functionality, and a wide range of tools and features for creating and editing videos. Filmora is available on Windows, macOS, iOS (iPhone/iPad), and Android platforms.
Interactive Odoo Dashboard for various business needs can provide users with dynamic, visually appealing dashboards tailored to their specific requirements. such a module that could support multiple dashboards for different aspects of a business
✅Visit And Buy Now : https://bit.ly/3VojWza
✅This Interactive Odoo dashboard module allow user to create their own odoo interactive dashboards for various purpose.
App download now :
Odoo 18 : https://bit.ly/3VojWza
Odoo 17 : https://bit.ly/4h9Z47G
Odoo 16 : https://bit.ly/3FJTEA4
Odoo 15 : https://bit.ly/3W7tsEB
Odoo 14 : https://bit.ly/3BqZDHg
Odoo 13 : https://bit.ly/3uNMF2t
Try Our website appointment booking odoo app : https://bit.ly/3SvNvgU
👉Want a Demo ?📧 [email protected]
➡️Contact us for Odoo ERP Set up : 091066 49361
👉Explore more apps: https://bit.ly/3oFIOCF
👉Want to know more : 🌐 https://www.axistechnolabs.com/
#odoo #odoo18 #odoo17 #odoo16 #odoo15 #odooapps #dashboards #dashboardsoftware #odooerp #odooimplementation #odoodashboardapp #bestodoodashboard #dashboardapp #odoodashboard #dashboardmodule #interactivedashboard #bestdashboard #dashboard #odootag #odooservices #odoonewfeatures #newappfeatures #odoodashboardapp #dynamicdashboard #odooapp #odooappstore #TopOdooApps #odooapp #odooexperience #odoodevelopment #businessdashboard #allinonedashboard #odooproducts
F-Secure Freedome VPN 2025 Crack Plus Activation New Versionsaimabibi60507
Copy & Past Link 👉👉
https://dr-up-community.info/
F-Secure Freedome VPN is a virtual private network service developed by F-Secure, a Finnish cybersecurity company. It offers features such as Wi-Fi protection, IP address masking, browsing protection, and a kill switch to enhance online privacy and security .
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)Andre Hora
Software testing plays a crucial role in the contribution process of open-source projects. For example, contributions introducing new features are expected to include tests, and contributions with tests are more likely to be accepted. Although most real-world projects require contributors to write tests, the specific testing practices communicated to contributors remain unclear. In this paper, we present an empirical study to understand better how software testing is approached in contribution guidelines. We analyze the guidelines of 200 Python and JavaScript open-source software projects. We find that 78% of the projects include some form of test documentation for contributors. Test documentation is located in multiple sources, including CONTRIBUTING files (58%), external documentation (24%), and README files (8%). Furthermore, test documentation commonly explains how to run tests (83.5%), but less often provides guidance on how to write tests (37%). It frequently covers unit tests (71%), but rarely addresses integration (20.5%) and end-to-end tests (15.5%). Other key testing aspects are also less frequently discussed: test coverage (25.5%) and mocking (9.5%). We conclude by discussing implications and future research.
Adobe After Effects Crack FREE FRESH version 2025kashifyounis067
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe After Effects is a software application used for creating motion graphics, special effects, and video compositing. It's widely used in TV and film post-production, as well as for creating visuals for online content, presentations, and more. While it can be used to create basic animations and designs, its primary strength lies in adding visual effects and motion to videos and graphics after they have been edited.
Here's a more detailed breakdown:
Motion Graphics:
.
After Effects is powerful for creating animated titles, transitions, and other visual elements to enhance the look of videos and presentations.
Visual Effects:
.
It's used extensively in film and television for creating special effects like green screen compositing, object manipulation, and other visual enhancements.
Video Compositing:
.
After Effects allows users to combine multiple video clips, images, and graphics to create a final, cohesive visual.
Animation:
.
It uses keyframes to create smooth, animated sequences, allowing for precise control over the movement and appearance of objects.
Integration with Adobe Creative Cloud:
.
After Effects is part of the Adobe Creative Cloud, a suite of software that includes other popular applications like Photoshop and Premiere Pro.
Post-Production Tool:
.
After Effects is primarily used in the post-production phase, meaning it's used to enhance the visuals after the initial editing of footage has been completed.
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMaxim Salnikov
Imagine if apps could think, plan, and team up like humans. Welcome to the world of AI agents and agentic user interfaces (UI)! In this session, we'll explore how AI agents make decisions, collaborate with each other, and create more natural and powerful experiences for users.
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AIdanshalev
If we were building a GenAI stack today, we'd start with one question: Can your retrieval system handle multi-hop logic?
Trick question, b/c most can’t. They treat retrieval as nearest-neighbor search.
Today, we discussed scaling #GraphRAG at AWS DevOps Day, and the takeaway is clear: VectorRAG is naive, lacks domain awareness, and can’t handle full dataset retrieval.
GraphRAG builds a knowledge graph from source documents, allowing for a deeper understanding of the data + higher accuracy.
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...Egor Kaleynik
This case study explores how we partnered with a mid-sized U.S. healthcare SaaS provider to help them scale from a successful pilot phase to supporting over 10,000 users—while meeting strict HIPAA compliance requirements.
Faced with slow, manual testing cycles, frequent regression bugs, and looming audit risks, their growth was at risk. Their existing QA processes couldn’t keep up with the complexity of real-time biometric data handling, and earlier automation attempts had failed due to unreliable tools and fragmented workflows.
We stepped in to deliver a full QA and DevOps transformation. Our team replaced their fragile legacy tests with Testim’s self-healing automation, integrated Postman and OWASP ZAP into Jenkins pipelines for continuous API and security validation, and leveraged AWS Device Farm for real-device, region-specific compliance testing. Custom deployment scripts gave them control over rollouts without relying on heavy CI/CD infrastructure.
The result? Test cycle times were reduced from 3 days to just 8 hours, regression bugs dropped by 40%, and they passed their first HIPAA audit without issue—unlocking faster contract signings and enabling them to expand confidently. More than just a technical upgrade, this project embedded compliance into every phase of development, proving that SaaS providers in regulated industries can scale fast and stay secure.
Solidworks Crack 2025 latest new + license codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
The two main methods for installing standalone licenses of SOLIDWORKS are clean installation and parallel installation (the process is different ...
Disable your internet connection to prevent the software from performing online checks during installation
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?steaveroggers
Migrating from Lotus Notes to Outlook can be a complex and time-consuming task, especially when dealing with large volumes of NSF emails. This presentation provides a complete guide on how to batch export Lotus Notes NSF emails to Outlook PST format quickly and securely. It highlights the challenges of manual methods, the benefits of using an automated tool, and introduces eSoftTools NSF to PST Converter Software — a reliable solution designed to handle bulk email migrations efficiently. Learn about the software’s key features, step-by-step export process, system requirements, and how it ensures 100% data accuracy and folder structure preservation during migration. Make your email transition smoother, safer, and faster with the right approach.
Read More:- https://www.esofttools.com/nsf-to-pst-converter.html
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Andre Hora
Exceptions allow developers to handle error cases expected to occur infrequently. Ideally, good test suites should test both normal and exceptional behaviors to catch more bugs and avoid regressions. While current research analyzes exceptions that propagate to tests, it does not explore other exceptions that do not reach the tests. In this paper, we provide an empirical study to explore how frequently exceptional behaviors are tested in real-world systems. We consider both exceptions that propagate to tests and the ones that do not reach the tests. For this purpose, we run an instrumented version of test suites, monitor their execution, and collect information about the exceptions raised at runtime. We analyze the test suites of 25 Python systems, covering 5,372 executed methods, 17.9M calls, and 1.4M raised exceptions. We find that 21.4% of the executed methods do raise exceptions at runtime. In methods that raise exceptions, on the median, 1 in 10 calls exercise exceptional behaviors. Close to 80% of the methods that raise exceptions do so infrequently, but about 20% raise exceptions more frequently. Finally, we provide implications for researchers and practitioners. We suggest developing novel tools to support exercising exceptional behaviors and refactoring expensive try/except blocks. We also call attention to the fact that exception-raising behaviors are not necessarily “abnormal” or rare.
Explaining GitHub Actions Failures with Large Language Models Challenges, In...ssuserb14185
GitHub Actions (GA) has become the de facto tool that developers use to automate software workflows, seamlessly building, testing, and deploying code. Yet when GA fails, it disrupts development, causing delays and driving up costs. Diagnosing failures becomes especially challenging because error logs are often long, complex and unstructured. Given these difficulties, this study explores the potential of large language models (LLMs) to generate correct, clear, concise, and actionable contextual descriptions (or summaries) for GA failures, focusing on developers’ perceptions of their feasibility and usefulness. Our results show that over 80% of developers rated LLM explanations positively in terms of correctness for simpler/small logs. Overall, our findings suggest that LLMs can feasibly assist developers in understanding common GA errors, thus, potentially reducing manual analysis. However, we also found that improved reasoning abilities are needed to support more complex CI/CD scenarios. For instance, less experienced developers tend to be more positive on the described context, while seasoned developers prefer concise summaries. Overall, our work offers key insights for researchers enhancing LLM reasoning, particularly in adapting explanations to user expertise.
https://arxiv.org/abs/2501.16495
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Ranjan Baisak
As software complexity grows, traditional static analysis tools struggle to detect vulnerabilities with both precision and context—often triggering high false positive rates and developer fatigue. This article explores how Graph Neural Networks (GNNs), when applied to source code representations like Abstract Syntax Trees (ASTs), Control Flow Graphs (CFGs), and Data Flow Graphs (DFGs), can revolutionize vulnerability detection. We break down how GNNs model code semantics more effectively than flat token sequences, and how techniques like attention mechanisms, hybrid graph construction, and feedback loops significantly reduce false positives. With insights from real-world datasets and recent research, this guide shows how to build more reliable, proactive, and interpretable vulnerability detection systems using GNNs.
Why Orangescrum Is a Game Changer for Construction Companies in 2025Orangescrum
Orangescrum revolutionizes construction project management in 2025 with real-time collaboration, resource planning, task tracking, and workflow automation, boosting efficiency, transparency, and on-time project delivery.
⭕️➡️ FOR DOWNLOAD LINK : http://drfiles.net/ ⬅️⭕️
Maxon Cinema 4D 2025 is the latest version of the Maxon's 3D software, released in September 2024, and it builds upon previous versions with new tools for procedural modeling and animation, as well as enhancements to particle, Pyro, and rigid body simulations. CG Channel also mentions that Cinema 4D 2025.2, released in April 2025, focuses on spline tools and unified simulation enhancements.
Key improvements and features of Cinema 4D 2025 include:
Procedural Modeling: New tools and workflows for creating models procedurally, including fabric weave and constellation generators.
Procedural Animation: Field Driver tag for procedural animation.
Simulation Enhancements: Improved particle, Pyro, and rigid body simulations.
Spline Tools: Enhanced spline tools for motion graphics and animation, including spline modifiers from Rocket Lasso now included for all subscribers.
Unified Simulation & Particles: Refined physics-based effects and improved particle systems.
Boolean System: Modernized boolean system for precise 3D modeling.
Particle Node Modifier: New particle node modifier for creating particle scenes.
Learning Panel: Intuitive learning panel for new users.
Redshift Integration: Maxon now includes access to the full power of Redshift rendering for all new subscriptions.
In essence, Cinema 4D 2025 is a major update that provides artists with more powerful tools and workflows for creating 3D content, particularly in the fields of motion graphics, VFX, and visualization.
Adobe Master Collection CC Crack Advance Version 2025kashifyounis067
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe Master Collection CC (Creative Cloud) is a comprehensive subscription-based package that bundles virtually all of Adobe's creative software applications. It provides access to a wide range of tools for graphic design, video editing, web development, photography, and more. Essentially, it's a one-stop-shop for creatives needing a broad set of professional tools.
Key Features and Benefits:
All-in-one access:
The Master Collection includes apps like Photoshop, Illustrator, InDesign, Premiere Pro, After Effects, Audition, and many others.
Subscription-based:
You pay a recurring fee for access to the latest versions of all the software, including new features and updates.
Comprehensive suite:
It offers tools for a wide variety of creative tasks, from photo editing and illustration to video editing and web development.
Cloud integration:
Creative Cloud provides cloud storage, asset sharing, and collaboration features.
Comparison to CS6:
While Adobe Creative Suite 6 (CS6) was a one-time purchase version of the software, Adobe Creative Cloud (CC) is a subscription service. CC offers access to the latest versions, regular updates, and cloud integration, while CS6 is no longer updated.
Examples of included software:
Adobe Photoshop: For image editing and manipulation.
Adobe Illustrator: For vector graphics and illustration.
Adobe InDesign: For page layout and desktop publishing.
Adobe Premiere Pro: For video editing and post-production.
Adobe After Effects: For visual effects and motion graphics.
Adobe Audition: For audio editing and mixing.
PDF Reader Pro Crack Latest Version FREE Download 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
PDF Reader Pro is a software application, often referred to as an AI-powered PDF editor and converter, designed for viewing, editing, annotating, and managing PDF files. It supports various PDF functionalities like merging, splitting, converting, and protecting PDFs. Additionally, it can handle tasks such as creating fillable forms, adding digital signatures, and performing optical character recognition (OCR).
2. PROGRAMMING PEARLS
➤ Commitment to continuous
learning and focusing on
foundational aspects is an
important characteristic of an
excellent developer
➤ Programming pearls brings us
back-to-the-basics and helps us
revisit key topics such as
algorithm design in specific
and writing high-performance
code in general
➤ This is yet another timeless
classic that should be in every
developers bookshelfhttp://amzn.com/0201657880
3. CODE COMPLETE
➤ In programming, it is difficult
to make even the smallest of
decisions
➤ Which variable name or
control structure to use? To
comment or not to
comment? Should I refactor
this code?
➤ This book covers provides a
big-picture for software
development and also delves
into minute details
http://amzn.com/0735619670
4. THE PRAGMATIC PROGRAMMER
➤ This classic book provides
valuable and practical advice
to programmers
➤ Not specific to any language
or technology
➤ Provides specific “tips”
➤ My favourite: Tip 35 -
“Finish what you start”
➤ I got exposed to concepts such
as “broken window theory”
from this book
http://amzn.com/020161622X
5. DESIGN PATTERNS
➤ Classic work on patterns
➤ Provides insights on
creating effective object
oriented designs
➤ Generic “reusable” design
knowledge
➤ This is not a book that you can
read from front to back cover
➤ I come back to reading it for
getting inspiration from time-
to-time (e.g., the initial
chapter is a “treatise” on OO)
http://amzn.com/020163361
6. REFACTORING
➤ Classic work on refactoring
➤ Provides insights on
emergent design and how
to create and evolve quality
software
➤ This book covers foundational
aspects, process and
mechanics of refactoring
➤ Written in a free-flowing and
easy-to-read style
➤ Inspiration for writers like
me
http://amzn.com/0201485672
7. OBJECT ORIENTED SOFTWARE CONSTRUCTION
➤ Excellent book on object
oriented programming and
design
➤ Learning OO features is easy,
but mastering OO design is
difficult
➤ Explicitly mentions “Dos
and Don’t’s”
➤ Universal principles on OO
design encapsulated in
pithy statements (also
cross-referenced and
summarized in the end)http://amzn.com/0136291554
8. THE MYTHICAL MAN-MONTH
➤ In my first-job, I understood
that software development is
much more than programming
➤ Mythical man-month is a old
book (1975!) but what it
discusses still remains relevant
➤ Few years back I came
across a project where the
project manager was adding
people to a late project
➤ Wanted to tell him: "adding
manpower to a late software
project makes it later"
http://amzn.com/0201835959
9. EXTREME PROGRAMMING EXPLAINED
➤ Kent Beck is one of those
amazing programmers
➤ He explains his approach
towards software development
in XP (Extreme Programming)
➤ Many practices such as writing
tests before code (TDD), pair
programming, etc are now
widely accepted (aside: XP is
still evolving)
➤ I like this book because of its
pragmatic view on software
development practices
http://amzn.com/0321278658
10. AGILE SOFTWARE DEVELOPMENT
➤ Robert C Martin is another
programmer that I greatly
admire
➤ His important contribution:
documenting key design
principles such as Single
Responsibility Principle
(SRP), Dependency Inversion
Principle (DIP), and Interface
Segregation Principle (DSP)
➤ This book provides his
perspective towards software
design and development
http://amzn.com/0135974445
12. SHAMELESS SELF-PROMOTION
➤ Check out our book on
refactoring
➤ Why care about software design
viewed from the perspective of
technical debt
➤ Covers 25 design smells
classified as violation of the
principles of abstraction,
encapsulation, modularization,
or hierarchy
➤ Interesting anecdotes and case
studies reported from the
trenches working in real-world
projectshttp://amzn.com/0128013974
www.designsmells.com