With the evolution of software, starts an evolution of the software developer and how things are approached. A different and more responsible mindset is now required and with that comes the use of the Engineering Cycle that will provide not only the basic skill set but also the core base for a Software Engineer to handle any type of project.
Architecting Solutions and Systems – Randy’s Secrets to SuccessRandy Williams
This session will provide background and guidance on how Randy has architected software solutions for the past 20+ years. This will cover a range of mostly technical topics, including infrastructure planning, trade-off considerations, performance and scalability, and separation of tiers. Expect to hear plenty of stories from real projects over his career, along with numerous tips on his secrets to success.
Test automation: do we still need test specialists?Håkan Rönngren
Automatic tests are fundamental in a continuous delivery pipeline, but exactly what do you want to achieve? How should you prioritize? How will you handle all the test results you get? Without a test strategy, you will soon be lost, but this slide show gives you some hints on the way and some questions to which you will have to find your own answers. Listen to the presentation on YouTube: Praqma Channel.
Erste Bank — How to Cut off Development Times & Get Feedback From Real Users,...Agile Austria Conference
The talk will be showing through examples how to get immediate feedback from real users while skipping the development period and use Design Sprints and prototyping for it. It shows the benefits of getting user experience first and how to incorporate this in real products development life while living the Scrum cycles.
Architecting Solutions and Systems – Randy’s Secrets to SuccessRandy Williams
This session will provide background and guidance on how Randy has architected software solutions for the past 20+ years. This will cover a range of mostly technical topics, including infrastructure planning, trade-off considerations, performance and scalability, and separation of tiers. Expect to hear plenty of stories from real projects over his career, along with numerous tips on his secrets to success.
Test automation: do we still need test specialists?Håkan Rönngren
Automatic tests are fundamental in a continuous delivery pipeline, but exactly what do you want to achieve? How should you prioritize? How will you handle all the test results you get? Without a test strategy, you will soon be lost, but this slide show gives you some hints on the way and some questions to which you will have to find your own answers. Listen to the presentation on YouTube: Praqma Channel.
Erste Bank — How to Cut off Development Times & Get Feedback From Real Users,...Agile Austria Conference
The talk will be showing through examples how to get immediate feedback from real users while skipping the development period and use Design Sprints and prototyping for it. It shows the benefits of getting user experience first and how to incorporate this in real products development life while living the Scrum cycles.
A brief insight into an Agile Software Development framework - Extreme Programming. A brief description of extreme programming, It's various practices, values, and roles of various people indulged in extreme programming and also a insight into pair programming and its various benefits.
This talk describes my way from a lead test engineer to a senior product manager. I am also sharing information about my book Hands-On Mobile App Testing and the testing community.
Id camp x dicoding live : persiapan jadi software engineer hebat 101DicodingEvent
Apakah seorang software engineer hebat adalah yang menguasai banyak bahasa pemrograman? Yang serba semua bisa? atau yang menguasai teknologi kekinian? Walaupun setiap individu memiliki standar hebat yang berbeda-beda tergantung dengan goals, passion, dan career path yang akan diambil. Tapi satu yang pasti untuk menjadi software engineer yang hebat ada cara dan langkah yang bisa dipelajari. Apa saja tips dan cara yang bisa kita lakukan untuk menjadi software engineer yang hebat? Hal ini akan kita bahas tips oleh Sidiq Permana (Co-Founder dan CIO - Nusantara Beta Studio) pada Dicoding LIVE x IDCamp dengan tema "Persiapan Jadi Software Engineer Hebat 101".
Tips sukses berkarir sebagai developer dan programmer 2021DicodingEvent
Tetap kembangkan skill mu di era pandemi. Jadikan hari-harimu lebih produktif dengan asah pengetahuan dan skill di Dicoding Event. Kali ini Dicoding LIVE disponsori oleh IDCamp dengan tema "Tips Sukses Berkarir sebagai Developer dan Programmer 2021"
Developer dan programmer kini menjadi salah satu pekerjaan yang paling diminati. Jadi, tidak heran jika banyak orang yang tertarik mencoba profesi ini untuk berkarir. Sayangnya masih banyak orang berpikir bahwa bekerja menjadi developer dan programmer hanya berhubungan dengan hal-hal yang bersifat technical, padahal tidak. Banyak hal yang harus dipersiapkan dan diketahui saat ingin mulai berkarier di dunia kerja seperti tools apa yang bisa membantu produktivitas, cara berkomunikasi dengan tim, sampai problem solving masalah dalam tim. Kali ini bersama dengan Andri Suranta Ginting (Mobile Engineer, Gojek) akan kita bahas tips dari pengalaman beliau dalam berkarir sebagai developer dan programmer juga menyiapkan hal technical dan non-technical untuk dikuasai di dunia kerja.
Software Test Engineering - A guide to becoming successful testerAsim Kazmi
An slide deck for advising modern day software test engineering individuals on how to train your self to stay above the competition. Testing is not just automation or conformance with the requirements. Its much more than that and practicing the mentioned traits will help become a top notch testing professional.
Find out top reasons to hire php developers for your business critical projects. It is highly profitable, reliable & less time consuming to hire web developers.
A design sprint is a five-phase framework that helps answer critical business questions through rapid prototyping and user testing. Sprints let your team reach clearly defined goals and deliverables and gain key learnings, quickly. The process helps spark innovation, encourage user-centered thinking, align your team under a shared vision, and get you to product launch faster.
Pragmatic guide to AB testing - Agile and Automation days 2019Jakub Kurcek
The best agile practices are a waste, if you build the wrong product. Making decision on what is the right product is a huge challenge. With so many options and good ideas available it is impossible to guess what will work and what will flop.
You will go through end-to-end journey. Starting with how a good hypothesis should look like. When to use A/B test and where not to. How to set up the test to avoid common pitfalls. How to check if results are meaningful. How to plan a follow up and what to do if there are no results after implementing the learning on production.
You will learn not only about the math and craft of setting the test. But also about psychology of decision process around AB testing.
Together we have more than twelve years of experience in managing consumer products. Dozens of features, hundreds of experiments, millions of users, and zillions of mistakes. But at the end a few diamonds were worth all the effort. You will learn how to get to results faster without making all the mistakes yourself.
Takeaways
* How define good hypothesis for AB test
* When to avoid using A/B test framework
* The math behind defining A/B test
* How to interpret the results to get the most out of them
This presentation outlines principles and thoughts that guide me in my pursuit of creating high quality complex software
I will also try to give concrete examples at the end of the presentation of what this looks like in practice
Extreme Programming (also termed as XP) is an agile software development methodology. XP focuses on coding of the software. XP has four core values and fourteen principles.
Code Coverage for Total Security in Application MigrationsDana Luther
So the time has come to take the leap and upgrade your application to a new major version of the underlying framework, or, perhaps, to an entirely different framework... how do you ensure that none of your functionality or usability is impacted by a potentially drastic rewrite of the underlying systems? How can you move forward with 100% confidence in your migrated codebase? Testing, testing and more testing. Using a combination of unit, functional and acceptance tests can give you the certainty you need. In this talk, we will go over key strategies for ensuring that you begin with full code coverage and move forward with confidence.
A brief insight into an Agile Software Development framework - Extreme Programming. A brief description of extreme programming, It's various practices, values, and roles of various people indulged in extreme programming and also a insight into pair programming and its various benefits.
This talk describes my way from a lead test engineer to a senior product manager. I am also sharing information about my book Hands-On Mobile App Testing and the testing community.
Id camp x dicoding live : persiapan jadi software engineer hebat 101DicodingEvent
Apakah seorang software engineer hebat adalah yang menguasai banyak bahasa pemrograman? Yang serba semua bisa? atau yang menguasai teknologi kekinian? Walaupun setiap individu memiliki standar hebat yang berbeda-beda tergantung dengan goals, passion, dan career path yang akan diambil. Tapi satu yang pasti untuk menjadi software engineer yang hebat ada cara dan langkah yang bisa dipelajari. Apa saja tips dan cara yang bisa kita lakukan untuk menjadi software engineer yang hebat? Hal ini akan kita bahas tips oleh Sidiq Permana (Co-Founder dan CIO - Nusantara Beta Studio) pada Dicoding LIVE x IDCamp dengan tema "Persiapan Jadi Software Engineer Hebat 101".
Tips sukses berkarir sebagai developer dan programmer 2021DicodingEvent
Tetap kembangkan skill mu di era pandemi. Jadikan hari-harimu lebih produktif dengan asah pengetahuan dan skill di Dicoding Event. Kali ini Dicoding LIVE disponsori oleh IDCamp dengan tema "Tips Sukses Berkarir sebagai Developer dan Programmer 2021"
Developer dan programmer kini menjadi salah satu pekerjaan yang paling diminati. Jadi, tidak heran jika banyak orang yang tertarik mencoba profesi ini untuk berkarir. Sayangnya masih banyak orang berpikir bahwa bekerja menjadi developer dan programmer hanya berhubungan dengan hal-hal yang bersifat technical, padahal tidak. Banyak hal yang harus dipersiapkan dan diketahui saat ingin mulai berkarier di dunia kerja seperti tools apa yang bisa membantu produktivitas, cara berkomunikasi dengan tim, sampai problem solving masalah dalam tim. Kali ini bersama dengan Andri Suranta Ginting (Mobile Engineer, Gojek) akan kita bahas tips dari pengalaman beliau dalam berkarir sebagai developer dan programmer juga menyiapkan hal technical dan non-technical untuk dikuasai di dunia kerja.
Software Test Engineering - A guide to becoming successful testerAsim Kazmi
An slide deck for advising modern day software test engineering individuals on how to train your self to stay above the competition. Testing is not just automation or conformance with the requirements. Its much more than that and practicing the mentioned traits will help become a top notch testing professional.
Find out top reasons to hire php developers for your business critical projects. It is highly profitable, reliable & less time consuming to hire web developers.
A design sprint is a five-phase framework that helps answer critical business questions through rapid prototyping and user testing. Sprints let your team reach clearly defined goals and deliverables and gain key learnings, quickly. The process helps spark innovation, encourage user-centered thinking, align your team under a shared vision, and get you to product launch faster.
Pragmatic guide to AB testing - Agile and Automation days 2019Jakub Kurcek
The best agile practices are a waste, if you build the wrong product. Making decision on what is the right product is a huge challenge. With so many options and good ideas available it is impossible to guess what will work and what will flop.
You will go through end-to-end journey. Starting with how a good hypothesis should look like. When to use A/B test and where not to. How to set up the test to avoid common pitfalls. How to check if results are meaningful. How to plan a follow up and what to do if there are no results after implementing the learning on production.
You will learn not only about the math and craft of setting the test. But also about psychology of decision process around AB testing.
Together we have more than twelve years of experience in managing consumer products. Dozens of features, hundreds of experiments, millions of users, and zillions of mistakes. But at the end a few diamonds were worth all the effort. You will learn how to get to results faster without making all the mistakes yourself.
Takeaways
* How define good hypothesis for AB test
* When to avoid using A/B test framework
* The math behind defining A/B test
* How to interpret the results to get the most out of them
This presentation outlines principles and thoughts that guide me in my pursuit of creating high quality complex software
I will also try to give concrete examples at the end of the presentation of what this looks like in practice
Extreme Programming (also termed as XP) is an agile software development methodology. XP focuses on coding of the software. XP has four core values and fourteen principles.
Code Coverage for Total Security in Application MigrationsDana Luther
So the time has come to take the leap and upgrade your application to a new major version of the underlying framework, or, perhaps, to an entirely different framework... how do you ensure that none of your functionality or usability is impacted by a potentially drastic rewrite of the underlying systems? How can you move forward with 100% confidence in your migrated codebase? Testing, testing and more testing. Using a combination of unit, functional and acceptance tests can give you the certainty you need. In this talk, we will go over key strategies for ensuring that you begin with full code coverage and move forward with confidence.
Security is an enormous topic, and it’s really, really complicated. If you’re not careful, you’ll find yourself vulnerable to any number of attacks which you definitely don’t want to be on the receiving end of. This talk will give you just a taster of the vast array of things there is to know about security in modern web applications, such as writing secure PHP web applications and securing a Linux server. Whether you are writing anything beyond a basic brochure website, or even developing a complicated business web application, this talk will give you insights to some of the things you need to be aware of.
The new JSON fields are some of the most talking about new features in MySQL 5.7. But they are by no means the only awesome things this version has to offer. MySQL 5.7 is a year old, so this talk won't be an introduction to this version. We will be digging into 5.7 to see how to make the most of the tools available in it. Want to tackle important practical problem solving for your data, make your query performance analysis more efficient or look at how virtual columns can help you index data? This talk is for you!
Software bugs are inevitable; some are especially difficult to track down, causing you to waste countless hours before throwing your hands up in defeat. It doesn't have to be this way! The mental fatigue and wasted time can be avoided by using strategies like identifying the most-appropriate tool, taking a logical & objective approach, challenging assumptions, listening to variables, isolating the code path, and reinforcing code with automated tests. Attendees will learn how to combine these techniques with the right mindset and attitude in order to debug their code quickly and effectively.
Imagine a world in which your career, the careers of your friends and coworkers, and the businesses and industries built on PHP vanished overnight, or never existed at all. No Facebook. No Wordpress. Billions of dollars in online commerce, all gone. Flickr, Tumblr, MailChimp: poof!
This talk presents a dystopian world in which we are stuck updating each other via SMS or (gasp!) MySpace, reading content on corporate portals, and buying everything from just a handful of online marketplaces.
Talk given at PHP World 2015 about the Hack language released by Facebook. A short history and look at it's key features as well as how Hack and PHP are evolving together.
Have you been working with other frameworks and feel ready to try something new? Why not try Zend Framework? Not only can you use it for the full stack of your application, but you can pull out the individual components into your existing application. Get ready for a course on how to build an ZF2 application from the ground up — from the basics of an MVC app to the more advanced components. When you leave this tutorial, you will have a great grasp on how the framework is structured
Adding 1.21 Gigawatts to Applications with RabbitMQ (Bulgaria PHP 2016 - Tuto...James Titcumb
As your application grows, you soon realise you need to break up your application into smaller chunks that talk to each other. You could just use web services to interact, or you could take a more robust approach and use the message broker RabbitMQ. In this tutorial, I will introduce RabbitMQ as a solution to scalable, interoperable and flexible applications.
This tutorial is perfect for those who would like a deep dive into RabbitMQ with little or no pre-existing knowledge about message queuing systems. Once you’ve finished the tutorial, you will have learnt how to set up basic publish/subscribe message queues, control the flow of messages using various exchanges, and understand various features of RabbitMQ such as RPC, TTL, and DLX.
php[world] 2015 Training - Laravel from the Ground UpJoe Ferguson
Most of this training was code samples which are not included here.
Ready to jump into Laravel and start building applications and more? Ready to explore more than just Adventures in Laravel 5? Come learn the best practices for local development, building real world applications, and deploying your applications to production. Join us and learn how to leverage modern development practices so build powerful and robust applications. We will also cover how to test your application's functionality so you can be more confident in deployments and upgrades. Laravel 5.1 will be the framework's first "LTS" (Long term support) version so you can be certain there will be community and support for the life of your application.
If you build web applications you now have a huge responsibility: everything must be tested and secured. But how do you test and secure legacy applications or how do you get started with a new project using test-driven techniques to maximise quality and security without investing too much time in it.
In this workshop we will start with a clean project and build a simple catalogue application using test-driven and security-hardened techniques to achieve our goal. Once we have achieved our goal, we're going to apply the same on a legacy application.
Sure, you could improve yourself or promote your project the normal way, with hard work and years of slow, incremental progress. Or you could use some of the brain’s built-in cheat codes to level up on your way to success.
Along with learning, our brains are plagued by a raft of bugs and unwanted features that we have been unable to remove. Use these “features” to your advantage to teach, learn and persuade. Join us in a tour of some of the most amusing bugs and exploits that allow you to play with the interface between our brains and the world.
Laravel is a great framework to use for web applications but what if you need to do more? Come learn how to harness the power of the console in your Laravel applications to do various tasks such as caching data from 3rd party APIs, Expire old content from S3 or other data store, and batch process huge data sets without users having to wait for results. You can even automate tasks such as backing up your remote databases before you run migrations with artisan commands.
By using a comprehensive feature-filled framework we can build software fast. On the other hand, by decoupling our applications we can build sofware that is independent of our framework and infrastructure choices, and therefore longer lasting.
We can't do both, is one approach always right?
In this talk we'll look at different decoupling techniques, what problems they solve, and when they make sense. We will learn some concrete techniques to discover where we should be investing in decoupling, and when we should let the framework maintainers do the work for us.
For beginners who want to go to the next level of OOP in PHP, we talk about magic methods, iterators, filters, some parts of the SPL, the subject/observer pattern and how you can build classes that have a lot of power and responsibility by implementing interfaces and then type-hinting and using just methods that are defined in the interface. Prefer composition over inheritance.
PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix ItMatt Toigo
A talk I gave at the 2015 PHPWorld Conference. PDF Version of the slides at www.matt-toigo.com/files/phpworld_2015_presentation.pdf
Agile and Scrum are often pitched together as the definitive silver bullet for eliminating pain from software development, but they include their own sets of problems that commonly drag down development teams. Whether an agile team is executing an internal project or doing work for a client, a very similar set of problems begins to afflict all the members of such teams, regardless of their roles. The common root causes of these problems can be quickly identified, and complementary solutions can be easily implemented to ensure a happy team that continues to deliver high-quality work.
An Engineer’s Essential Tool in Agile: Design ThinkingSoniaMayPatlan
Many engineers are not connected to customers, resulting in solutions that lack high impact and benefit. But by combining design thinking with Agile, we create innovations that delight our customers. Find out, how a design thinking model called Design for Delight is applied within Agile frameworks to deliver thoughtful and inclusive solutions that can change the world.
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.
Development Projects Failing? What can the Business Analyst Do?CTE Solutions Inc.
This seminar strives to explore why development projects often fail to deliver and what the BA can do about it. Though there are no magic solutions that will fix development challenges, there are industry recognized practices that can help the BA or PM strive to keep the work on track and deliver value to the client on time. The first half of the presentation explores the cause of development project failures and the second half presents practical and applicable solutions that any BA or PM can bring back to their team.
Book: Software Architecture and Decision-MakingSrinath Perera
Uncertainty is the leading cause of mistakes made by practicing software architects. The primary goal of architecture is to handle uncertainty arising from user cases as well as architectural techniques. The book discusses how to make architectural decisions and manage uncertainty. From the book, You will learn common problems while designing a system, a default solution for each, more complex alternatives, and 5Q & 7P (Five Questions and Seven Principles) that help you choose.
Book, https://amzn.to/3v1MfZX
Blog: http://tinyurl.com/swdmblog
Six min video - https://youtu.be/jtnuHvPWlYU
Managing a team and project are quite synonymous. Especially, teams require effective distribution of responsibility / roles. Once that is setup, a proper process guides people to make progress. All this fits into a product lifecycle, which is essential to develop the right product, in the right way, and deliver it at the right time.
Effective Quality Facilitation | Beyond NormalSPIN Chennai
The presentation gives a glance on the software quality analysts who has to take up the full responsibility to ensure compliance. It inspires the analysts with different methods and examples for a successful delivery.
Software development myths that block your careerPiotr Horzycki
During 15 years of my software development career, I was a victim of numerous myths and fads of the IT industry. "We must have Scrum", "Rewrite everything", Hype-Driven Development, 100% test coverage - just to name a few. You'll learn where do these myths come from, why they're wrong and what are the real-world, battle-tested alternatives. You can skyrocket your career just by focusing on the right things!
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
5. Spoon
Manufacturing
As a business owner I want to expand my
business by manufacturing spoons.
These should be made of plastic,
lightweight and will be distributed in small
boxes of 25, 50 and 100 units.
6. Ask the right questions
● Who is your target audience
● What are the project goals
● How the project will be distributed
● What are the project requirements
● What are the project restrictions
● etc
9. Digital Sign
If you had to build a digital sign by
hooking up a computer and a tv,
what languages, frameworks would
you use to build it?
10. Development
tools
Step back and put it on paper.
Can it be diagramed in a flow chart
Can it be broken down into more stories
Pros and cons of the selected language
Pros and cons of the selected database
What is the learning curve, if any, for development
Are there any risks with the chosen path for development
etc
13. It is not only about code
anymore
● Standards
● Reviews
● Instructing other Engineers
● Tests
14. Management Skills
Not people management, Risk management!
Everyone has probably faced some sort of scope
creep
Need to understand and manage the risk of a
change set
“Doing it live” is the same as risk management not
being important.
15. [Risk] Management Skills
Consider the scenario:
The application is completed, fully tested and in
the a week before the release day, business
decides to change the default payment
authorizer to one that the application doesn’t
support yet.
How do you manage this scenario and what
would be your recommendations as an
engineer?
19. Cabin in the
Woods
Consider the scenario:
You are walking lost on the florest, it is cold,
foggy, dark and with some bit of luck you find a
cabin in the woods.
You manage to get inside and, once inside,
you see:
A gas stove
A fireplace with some wood on it
A kerosene lamp
What do you light up first ?
21. Troubleshooting
It is more important that usually is given
credit for
Requires a detailed and yet abroad vision
Good troubleshooting skills can help
during development phase
26. Mindset It is not about only code anymore...
It is a dynamic exchange of thoughts that fiddles
between an architect and a experienced software
developer.
31. Now I’m ready for
questions and
answers ...
I mean I guess
32. About me
Cristiano Diniz da Silva
Soft. Engineer, techie, geek, nerd, enthusiast
photographer... proud father of two girls and happily
ever married.
Working with PHP since it’s 3.2 version
@mcloide
https://github.com/mcloide
mcloide.com
Engineering & Photography
https://joind.in/talk/47c87
Editor's Notes
Today I will tell you a quick story about engineering; about how software engineering to be more precise will completely transform the way you work, the way you think and the perception of your peers to you. It all started in a galaxy far far away when a jedi ... wait .. sorry .. wrong story. Anyways ... Engineering has many forms and software is just one form of it. My name is Cristiano Silva and I’m here to not only tell you this story but also to guide you through all of this. In fact how about a little challenge.
The goal of this is provide a challenge, how can we power this tricycle with these 2 power drills. Obviously it needs to be capable of being driven by one of us and to gain speed. Don’t answer now, this was just to get you guys thinking.
In our line of work what we do the most is to find solutions for problems that are usually presented by business and takes in a form of software but we are smart people so we can solve any kind of problem right ? How about solving this one. Here we got a tricycle and battery operated drills. The goal here is to use the drills as an accelerator to the tricycle.
If you are wondering why ? Simple why not ? Seems fun, dangerous, require some skills to engineer something like this, and again, we are all smart people. If we are capable of developing software we are certainly capable of solving this right ?
Now that I got your curiosity, let’s move on. I will get back to this challenge later on, for now, please just think about it a little bit.
Just like SDLC (software development life cycle), engineering a software has a cycle of it’s own and it consists basically of: Analysis, development and troubleshooting. Where one of this phases usually takes longer than the other. If there is no time being properly spent in any of these phases, it will consequently affect the following phase. If you don’t take proper time during analysis and development, you will surely take time with troubleshooting. These 3 cycles can be also expressed as: Analysis, Development and Troubleshooting / Bug Fixing.
I believe this shows how most of the user stories that you will be getting out there truly reflect. All that states is a “want” or intention. It doesn’t really tell all the information that you will need to prepare a project that will in fact generate the spoons and set them in the boxes as specified.
The interesting thing about this little project is the questions that you should make. A spoon is used for eating. Usually to eat both cold and hot
foods. Usually to eat both solid and liquid foods, even knowing that liquids might be tricky. These are in fact the most common uses of a spoon. So if a client calls in saying that the spoon does works well for him, then you got understand why. Obviously if someone is using a plastic spoon
to dig up a tunnel to escape from prison, that is not the goal of the use of the spoon.
The point is that by doing analysis and research you should be able to figure out what is the best path of development for what is being asked. By doing analysis important development paths such as what languages to use and how to implement will be answered. Along with that other aspects such as missing information from the user story will also be found and this is what will avoid issues after development. Who here has never found a missing requirement after it was developed ? It is understandable that most of us will believe that these should be answered by a business analyst, but in fact, these should be asked by an engineer to begin with. It is from the most interest of the engineer to find out how to properly approach a given project. Knowing all possible aspects of the project will help identifying possible pitfalls during development time. A great example of this is backlog-grooming where the team or the responsible parties go over the features to be developed and pieces of feature are defined little by little till there is a solid definition and understanding of what needs to be done.
This is probably one of the most quoted quotes I have heard during my career as an engineer. All that it says is that usually if you can’t visualize it on a piece of paper you won't be able to visualize it during development phase. If you can see it you can build it right? More importantly if you can see it, you will be able to define what tools you will need to use. What path you will need to take to correctly develop that project.
Although these are all hammers in some form, or, would belong into a hammer category, each of of them have a unique use. The rubber hammer (mallet) is generally used to place tiles, while the common hammer is used place nails. Thor hammer, well you shouldn’t .. just shouldn’t.
Although the tools are pretty much the same they don't necessary perform the same operation and that specific is what makes the tool selection important and how relevant will be to build your own tool versus getting one of the shelf.
This was in fact a little project that I have been playing for the past month. I have used a raspberry pi and a small tv and the goal was to rotate ads, images, something that I could control, on the tv without showing anything from the desktop from the raspberry pi at all. Considering what needed to be done, the first thing to do was to research. Find out if with HTML I could rotate some images in fullscreen. The answer is yes, bootstrap carousel can do this to for you. The 2nd step is to load a browser in fullscreen. This took a lot longer as research, but there are browsers on Raspbian that can open a page in fullscreen and both of them can be executed through command line. Now that I knew what to do, all that was necessary was to properly select my tools, that, in this case could been anything from HTML with JQuery and Bootstrap to a full blown Symfony application. Truth is that opting for simplicity is usually the best path and simple can be really sophisticated.
Although analysis is considered to be a necessity in most of the software development houses, not all and not everyone does it, but it can save a really good amount of time during development and adjustment phases.
By the end of research phase you should be able to have a really good definition of what would be a minimal viable product. MVP is nothing more as the definition of what is the minimal necessary for the project to deployed to production. A great example of this is a subway system. What is the MVP of a subway system: A station, a line and a train. By the end of research you should have a clear view of what needs to be delivered, how long it will take to deliver, what is necessary to deliver it and what is next following the delivery.
Any developer can place code and make it work, but fact is, now coding is also about how other developers / engineers will perceive your work. You gotta make it work, make it fast and then make it perfect. When you submit your code to review it got bet understandable and efficient, gotta pass the build and gotta work. The decisions that you take during development time will directly reflect on the time that will be spent for adjustments or how we call it, bug fixing. Today there are tools to help us with that, for example, PSR’s , GitHub and GitLab does have a form of code review, there are unit tests and if all is properly done you won't have any issues on instructing other engineers about your code or another path their code should be taking.
The idea is that this part of the daily life of a software engineer. When you are developing code you must be able to determine how risky or how impactful is a given code change / introduction. Can that feature be safely introduced without impacting other parts of the application or without breaking backwards compatibility ? Can that code be removed safely ? A nice example is the case where the maintainer of the left-pad, a npm package, removed it and millions of projects that had that dependency were broken because of the missing package. It is true that the risk assestment should be done in analysis as well, but most of the times it appears during the development phase.
Understanding how risk the change will be for the given application will provide a more detailed and more focused answer to business that can help deciding on how to perform the change. Will it be as a follow up improvement. Will the release the held for a long period of time until the request is done and tested? Understanding what is being asked and how impactful it can be will give you better room to negotiate with business and to prepare to develop the request.
During the ending phase of development you want the most visibility and feedback possible. You will gain visibility by providing unit tests with a reasonable code coverage (and be realistic on this portion here) and you should collaborate as much possible with business and QA to see if goal of the project has been reached. As an engineer your goal here is to reach the 80/20 rule. While you will spend 20% of your time developing a piece of software that works for 80% of your target audience, you will spend 80% of the time developing the software to work for 20% of your target audience. This rule is extremely useful especially when developing because, if you did spend your time wisely during research, you should be able to a software that will work for anything between 80 to 99% of your target audience. Honestly, if you manage to get 85%, that is amazing.
At this point you will have already researched and developed the project/application. This is usually the point that is decided if the project will be extended to full feature or if it will be placed out in production for an early feedback. In product development there is something called the “bell curve”. If you are developing a brand new product that will be placed on market and all your lifetime investments are on it, then you must understand this curve. It basically says that, once you overcome the Early Adopters gap and gain about 18% of the market share your product will be widely adopted by the majority of the users. Why this matters for you as an engineer? This curve will dictate how much adjustments you will be doing to overcome the 18% threshold. Anything past that is mainly business and new product development.
The idea is to show how you must see outside of the box to troubleshoot something. It doesn’t mean that something that needs to be fixed is right on your front. Bug / Defect fixes can be simple at times and they can be really silent in a way that the condition that is being informed as a bug, defect is simply a reflection of some other, and possibly, major issue. In the case of the scenario presented by the Cabin in the Woods, the underlying issue was that you needed light to match in order to light up the one of the options presented. A follow up question from this would be once the match is lit, what should be the first thing to light up. The answer to this will be different from engineer to engineer and it determines how one think and approaches troubleshooting. In the end, after the match is lit, any other thing could be lit with the same end result. I would preferably start with the kerosene lamp because it is most likely to be the one that has both enough kerosene to start a fire and could be shared to the gas stove and fireplace.
There are 3 distinct types of adjustments and all of these occur after development is done and by different reasons. Improvement, which usually means that something was missing during phase of analysis either by business or by the engineer responsible. Fix which are what we know better as bugs, defects and logic issues. Necessary code changes that were not caught during development time. And there is hotfix, my favorite. This usually happens when the application is sent to production without either proper test or proper risk analysis. During this phase having good troubleshooting skills helps with the last 2 of these types that are coincidently the more common ones.
As engineers fixing bugs / defects is just part of our daily routine but not spending a lot of time by having a clear understanding of what the issue really is at the first place will avoid that the fix implemented doesn’t generate other issues.
Hotfix, production fix, critical fix or any type of fix that has to be quickly deployed to production because it does break the application or causes damage to business and users it is something that has to be dealt carefully but yet quickly. Critical fixes are disruptive. When dealing with a fix of this type you are in fact stopping whatever you are doing and working on this. They are also costly and, like in the example of this slide, it costed Amazon.com a good $4.8M usd. If you consider that maybe it took 10 minutes to fix the issue, another 15 minutes to QA it (assuming that most was automated), 10 minutes to get everyone that is required for a deployment / informed to deploy and another 5 minutes to deploy the code, there you go, you got a 40 minutes nightmare in large scale. I think is fair that a critical fix has to be planned and that is exactly the reason for it.
This should be a list that should be kept in all times with names and phone numbers in case of a hotfix to happen. There is in fact a talk that explains this very well (try to find it out) but this is the very short version of it. Know who will be handling the release as keeping people informed about the status of the issue and that will manage the process of release the fix to production; The engineer that will fix the issue or will point out who is more capable of fixing that issue; The QA engineer that will test the issue or will point out who should test what it was fixed; Dev-Ops to actually deploy the fix to production. Unfortunately hotfixes doesn’t happen in a planned time. They happen and having a good planning helps avoiding them. As an engineer you must know how to quickly troubleshoot the issue and fix it, but more importantly is also part of the role to prepare a hotfix contigency plan if there is nothing done for it. After the hotfix is deployed then a meeting should be done and a path to a definitive fix should be set.
I wish that every improvement was something as change the font to something else, but most of the times, a improvement happens because there is a need that the application / project has not met. Improvements are not always complicated but it would be naive to say that they are easy. Every improvement will require the engineering cycle (as well the Software Development Life Cycle). It will require some risk assessment because now it is not simply adding to the project it can also be adjusting a feature that is just not right. There is not a lot that can be said by improvements but the idea is the same, once the application / project is deployed it will require adjustments and if all was done properly then you should be doing a lot more of these than fixing bugs / defects.
Let’s talk a bit about what will your role going forward and hopefully you won't have to go through the same issues as this engineer has gone through. It is part of the engineer role to be critical especially of his work. Constantly learning and improvements are expected and not only in your favorite language of choice. The reason why an engineer is so critical from his and his peers works is because is a way to not only improve his skills but also of his peers (if they let).
When you think about impact, risk, what approach to develop that project, what frameworks to use, what programming language to use, etc, you automatically create a different mindset that is not only, let’s sit down, code and make sure that it works. How many here have at least once rewritten a whole project because the initial path taken for it was bad or the whole coding on it was not scalable ? Explain that an architect will probably go further than an engineer and should have a holistic view of the whole project and not only portions of it.
The idea here is that a Software Engineer will go much further than simply developing a solution. He will check the solution that will be built, he will choose the correct tools for it and will address adjust whenever it is necessary. If you consider that you are building an application on your own for a client and every second that you can spare is a profit done, wouldn’t you be more careful or wanted to do it properly to begin with? That is where the fiddl
1st let’s present this in a better way. As a business owner I want to be able to accelerate and drive a given tricycle with the help of one or more battery operated power drills. As a business owner I want to be able to use the battery operated drills to accelerate the tricycle while being able to drive. So the objective here is to be able to use the drills to accelerate the tricycle while a driver is actually driving it. This gives us a good idea of restrictions and variables that can be used to properly develop this project. So, considering this, how would you solve this challenge ? What would be your approach ?
There is a fun story about this video. While following Adam Savage on Twitter a mother was showing how her 6 year old built a go kart based on inspiration from a talk from Adam Savage which resulted in this. If this 6 year old was creative enough and applied all the engineering concepts necessary to build and pilot this go kart, so can you.
Try to avoid to overthink things. Most of the solutions that does more than one thing they aren’t really good on doing those things at all. Think about all the utensils that you have on your kitchen, the ones that function the best are the ones that are made to one simple task, like forks for instance. Manu Prakash is an Bioengineering teacher from Stanford that have created the Foldscope ( a paper microscope that can be folded as an origami ) and now he created the Paperfuge that is a centrifuge made out of paper and strings and it is based on a very very old toy. It is not because the solution is simple that it isn’t sophisticated. I hope that this story told will help you to approach software development differently and to start engineering even greater and cooler things. Thank you all.